Кириллица в LLM: токенизация, проблемы и как тестировать модели на русском
Почему один и тот же запрос на английском и русском обрабатывается по-разному. Как токенизаторы режут русские слова, что выбирать для русского AI и как тестировать.
Кириллица в 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.3 | 1.8 |
| Llama 4 (новая) | 1.5 |
| Qwen 3 | 1.4 |
| DeepSeek R1 | 1.6 |
| GigaChat | 1.3 |
| YandexGPT | 1.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 под бизнес.