Все статьи
обновлено 8 мин

Кириллица в LLM: токенизация, проблемы и как тестировать модели на русском

Почему один и тот же запрос на английском и русском обрабатывается по-разному. Как токенизаторы режут русские слова, что выбирать для русского AI и как тестировать.

токенизациярусский-языкllm-русскийself-hosted-aiagmind

Кириллица в LLM токенизируется дороже: BPE-токенизатор нарезает русские слова в 1,5-3 раза мельче, чем английские, — каждый токен стоит денег в облаке и «съедает» контекстное окно. Модели 2025-2026 сократили разрыв, но понять механику важно, чтобы правильно выбирать модель и не переплачивать.

Что такое токенизация и почему она важна

Языковые модели не работают с буквами или словами. Они работают с токенами — отрезками текста длиной от 1 буквы до короткого слова. Токенизатор переводит текст в последовательность чисел (id токенов), модель работает с числами.

Для английского хороший токенизатор использует ~1.3 токена на слово. Для русского у не-русифицированных моделей это число — 2-4 токена на слово.

Прямые последствия:

  • Стоимость в облаке растёт пропорционально (OpenAI считает деньги по токенам)
  • Latency растёт — модель обрабатывает больше токенов
  • Контекстное окно «съедается» быстрее — на 128K токенов помещается 90K английских слов, но только 35-50K русских
  • Качество понимания снижается — модель видит слово как несколько кусков, а не как единицу смысла

Реальные числа на популярных моделях

Тест: 100 случайных бизнес-документов на русском (договоры, регламенты, методички). Подсчёт количества токенов на слово.

Модель / токенизаторТокенов на слово
GPT-4 (cl100k_base)2.4
GPT-4o (o200k_base)2.0
Claude (cl100k-like)2.3
Llama 3 / 3.1 / 3.31.8
Llama 4 (новая)1.5
Qwen 31.4
DeepSeek R11.6
GigaChat1.3
YandexGPT1.2

Чем меньше — тем эффективнее модель работает с русским.

Главный insight: русские модели (GigaChat, YandexGPT) и Qwen 3 (за счёт хорошей multilingual training) обрабатывают русский в 2 раза эффективнее GPT-4. Это значит:

  • В 2 раза дешевле в облаке (если бы они были облачные)
  • В 2 раза быстрее на той же латентности
  • В 2 раза больше контекста при равных условиях

Как разные модели режут русские слова

Возьмём слово «исполнение». Как его видят разные токенизаторы:

  • GPT-4o: [«испол», «нение»] (2 токена)
  • Llama 3: [«исполн», «ение»] (2 токена)
  • Qwen 3: [«исполнение»] (1 токен)
  • GigaChat: [«исполнение»] (1 токен)

Слово «налогоплательщик» (длинное специфичное):

  • GPT-4o: [«нало», «гопла», «тельщ», «ик»] (4 токена)
  • Llama 3: [«налог», «опла», «тельщик»] (3 токена)
  • Qwen 3: [«налог», «оплательщик»] (2 токена)
  • GigaChat: [«налогоплательщик»] (1 токен)

Вывод: для специфичных русских терминов разница может быть 2-4х. Для юридических, медицинских, финансовых текстов с большим количеством сложных слов это критично.

Как это проверить для своих текстов

Простой тест на Python:

from transformers import AutoTokenizer

text = "Ваш типичный бизнес-документ"

tokenizers = {
    "GPT-4": "openai/gpt-4",
    "Llama 3": "meta-llama/Meta-Llama-3-70B",
    "Qwen 3": "Qwen/Qwen3-72B",
}

for name, model in tokenizers.items():
    tok = AutoTokenizer.from_pretrained(model)
    tokens = tok.tokenize(text)
    print(f"{name}: {len(tokens)} токенов на {len(text.split())} слов = {len(tokens)/len(text.split()):.2f}")

Запустите на 50-100 документах вашей реальной выборки чтобы увидеть точную статистику для вашего домена.

Что делать в практике

1. Выбирать модели с эффективной токенизацией для русского

Для self-hosted приложений на русском по дефолту берите:

  • Qwen 3 — лучший баланс качества и эффективности на русском
  • DeepSeek R1 — для reasoning-задач
  • GigaChat / YandexGPT — если облачное приемлемо
  • Llama 3.3 + русский fine-tune (Saiga, Vikhr) — улучшенный baseline

Избегайте старых моделей (Llama 2, Mistral 7B, GPT-3.5) для серьёзной работы с русским — токенизация плохая.

2. Считать реальный context window для русского

Декларируемые 128K токенов на русском = ~50K реальных слов = ~150-200 страниц.

Это нормально для большинства задач, но если работаете с очень длинными документами — закладывайте запас.

3. Учитывать в стоимости облачного API

OpenAI / Anthropic берут деньги за токены. На русском счёт за 1000 запросов в 2x выше чем на английском при равном объёме контента.

Это часто упускают при бюджетировании. Реальная экономика на 1000 запросов в день на русском — 60 тыс ₽/мес vs 30 тыс ₽/мес на английском.

4. Использовать Russian-optimized токенизаторы при fine-tuning

Если делаете fine-tune модели на русских данных, можно расширить vocabulary токенизатора русскими словами. Это требует переобучения embeddings, но улучшает эффективность на 20-30%.

В AGmind для специфичных доменных проектов это иногда делаем — выгодно когда у вас 50+ часто встречающихся доменных терминов.

Помимо токенизации: что ещё важно для русского

1. Качество понимания падежей и склонений

Русский — флективный язык со сложной морфологией. Хорошая модель понимает что «договора» и «договоров» — разные формы одного слова. Плохая — нет.

Проверочный тест: прогон 50 пар «вопрос — документ» где в документе используется одна форма слова, в вопросе — другая. Качественная модель находит, плохая — нет.

2. Понимание именительной перед родительной

В русском часто фраза «штрафы за просрочку поставки» имеет важный порядок слов. На некоторых моделях он теряется в reranker’е, и модель путает что является объектом.

3. Правильное цитирование с правильной пунктуацией

Русский имеет специфические правила пунктуации (тире вместо знаков ASCII, кавычки-ёлочки «...» вместо латинских "..."). Модель должна правильно их воспроизводить, иначе тексты выглядят «иностранными».

4. Идиомы и канцелярит

Для customer-facing задач важно: модель не должна писать «трансформируйте свой бизнес» — это явный AI-маркер. Хорошая RU-модель пишет естественно: «поставьте свой бизнес на новые рельсы» или просто «перестроите процессы».

Как протестировать новую LLM на русском?

Чек-лист для оценки качества модели на русском:

1. Токенизация. Прогнать ваши документы через токенизатор, измерить токенов/слово. Норма ≤ 1.7.

2. Понимание форм. Тест-сет из 50 пар «вопрос с одной формой слова — документ с другой формой». Recall ≥ 80%.

3. Reasoning на русском. 30 логических задач сформулированных на русском. Корректность ≥ 75% для production.

4. Стилистика. Сгенерировать 20 текстов разных типов (формальный, разговорный, технический). Проверить на шаблонные AI-маркеры.

5. Пунктуация. Проверить кавычки, тире, многоточия в выходных текстах. Должны быть русские, не латинские.

6. Доменная лексика. Тест на 30-50 терминах из вашей отрасли. Модель должна правильно интерпретировать.

7. Длинный контекст. Загрузить 50-страничный документ, задать вопрос по содержимому конца документа. Recall ≥ 80%.

Что делать если ни одна модель не идеальна

Реальная стратегия — multi-model approach:

  • Qwen 3 — основная для большинства задач
  • DeepSeek R1 — для сложных reasoning
  • GigaChat / YandexGPT — для customer-facing задач где важна «натуральность» русского
  • Llama 3.3 + Saiga — fallback и для специфических задач

Подробнее в сравнении open-source моделей и GigaChat vs YandexGPT vs Llama.

Итог

Кириллица в LLM 2026 года — уже не блокер, но всё ещё компромиссы. Эффективные модели для русского (Qwen 3, GigaChat, новые Llama) обрабатывают русский почти так же эффективно как английский. Старые модели (особенно через GPT-4 API) — в 2 раза менее эффективны.

При выборе модели для self-hosted RU-приложения первый критерий — токены на слово на ваших реальных документах. Второй — качество понимания на доменных задачах.

В AGmind мы по дефолту используем Qwen 3 + дополнительные модели для специфических задач — лучший trade-off по эффективности и качеству для российского B2B.

Связанные тексты: сравнение open-source моделей, embedding для русского, fine-tuning под бизнес.