Книга: Инжиниринг искусственного интеллекта
Назад: 3. ИСТОРИЯ РАЗВИТИЯ НЕЙРОСЕТЕЙ: ОТ МЕЧТЫ К ПОВСЕДНЕВНОСТИ
Дальше: 5. ПРАКТИЧЕСКИЕ ПРИМЕРЫ: (псевдо-)КОД И ИНСТРУКЦИИ

4. МНОГОЯЗЫЧНЫЕ МОДЕЛИ: КАК ОДИН ТРАНСФОРМЕР МОЖЕТ ГОВОРИТЬ НА ВСЕХ ЯЗЫКАХ

Разные языки «весят» по-разному. Как показано в Главе 1.1, английский текст требует 1.0–1.5 токена на слово, русский - 1.5–2.0, а китайский - 2.0–3.0. Это не лингвистическое превосходство английского, а исторический артефакт: подавляющее большинство токенизаторов обучались на англоцентричных корпусах.

Если вы строите систему под русский язык (или мультиязычную), вот что работает в 2025–2026.



4.1 Выбор модели под язык

Самый простой способ сэкономить на токенах - сразу взять модель, оптимизированную под ваш язык. GigaChat, YandexGPT и Saiga имеют коэффициент токенизации для русского языка 1.0–1.3 - то есть русский текст стоит столько же, сколько английский, или даже дешевле. Качество на русском у них отличное. Если ваши пользователи говорят по-русски - это лучший выбор.

Китайские модели Qwen и DeepSeek тоже показывают хорошие результаты. Их коэффициент для русского языка - 1.3–1.6, что приемлемо, а качество - хорошее. Они особенно полезны, если ваша система работает одновременно с русским, английским и китайским.

А вот stock-версии LLaMA и Mistral без дообучения - самый дорогой вариант. Их коэффициент для русского языка достигает 1.8–2.2, а качество оставляет желать лучшего. Использовать их для русского текста без доработок - значит переплачивать за токены в полтора-два раза и получать посредственный результат. Но если дообучить их на русском (о чём ниже), коэффициент падает до 1.2–1.5, а качество становится хорошим.



Практический вывод:

если 80% ваших пользователей говорят по-русски - берите GigaChat или дообученную LLaMA. Экономия на токенах окупит всё.



4.2 Дообучение английской модели на русском (continued pre-training)



Если вы хотите использовать LLaMA или Mistral, но получить русский «вес» как у GigaChat, потребуется дообучение.



Первый шаг - расширение токенизатора. У LLaMA словарь на 32 тысячи токенов, и он плохо представляет русские биграммы (сочетания вроде «ст», «но», «то»). Нужно добавить 5–10 процентов новых токенов: частотные русские биграммы, корни слов («соба», «кош»), типичные окончания. Для этого используется библиотека sentencepiece, которую дообучают на русском корпусе.



Второй шаг - сбор данных. Потребуется 10–20 миллиардов токенов качественного русского текста. Источники: новости, книги, форумы (с тщательной фильтрацией), Википедия, государственные сайты. Обязательно удалить персональные данные (PII), токсичный контент и дубликаты - дедупликацию нужно делать на уровне целых документов, абзацев и даже предложений.



Третий шаг - само дообучение (continued pre-training). Берётся предобученная модель (например, LLaMA-3-8B или 70B) и дообучается 1–2 эпохи на русских данных. Скорость обучения (learning rate) нужно снизить в 10 раз по сравнению с обучением с нуля - чтобы модель не забыла английский. Затраты: для модели на 8 миллиардов параметров - примерно 5–10 тысяч долларов (4 видеокарты A100, две недели), для модели на 70 миллиардов - 50–100 тысяч долларов (16 видеокарт H100, 3–4 недели).



Результат: коэффициент токенизации падает с 1.8–2.2 до 1.2–1.5. Качество на русском вырастает на 10–15 процентов (измеряется по ROUGE, BERTScore и человеческой оценке). Английский может чуть деградировать - на 1–3 процента - но для большинства задач это приемлемо.



4.3 RAG с переводом (без дообучения)



Если у вас нет бюджета на дообучение, но нужна работа с русским, можно использовать схему с переводом.

Она выглядит так: русский запрос переводится на английский маленькой моделью (например, M2M100 или NLLB-200, или даже GPT-4o-mini). Затем английский запрос отправляется в любую LLM - GPT-4o, Claude или LLaMA. Полученный ответ переводится обратно на русский.

Цена вопроса на примере GPT-4o. Без перевода (LLM напрямую на русском): русский запрос в 100 токенов и ответ в 200 токенов дают 300 токенов. С переводом: запрос 100 токенов плюс перевод запроса (около 50 токенов), затем LLM на английском генерирует ответ в 150 токенов, и наконец перевод ответа (около 100 токенов). Итого около 400 токенов - на 33 процента больше. Кроме того, добавляются 2–5 секунд латенси на два дополнительных вызова LLM для перевода.

Когда эта схема выгодна? Во-первых, если вы уже платите за GPT-4o API и не хотите подключать отдельную русскую модель. Во-вторых, если вы работаете с редкими языками (арабский, вьетнамский, суахили), для которых просто нет хороших локальных моделей - перевод через английский становится единственным практичным решением.



4.4 Мультиязычный роутер (production - решение)



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

Детектор языка можно выбрать разный. Для прототипов и простых случаев (русский и английский) достаточно fasttext-langdetect - он даёт точность около 95 процентов при латенси менее 10 миллисекунд. Для офлайн-систем подойдёт библиотека langdetect (Python) с точностью около 90 процентов. А для сложных случаев - когда пользователи пишут на смешанных языках или диалектах - лучше использовать маленькую языковую модель на 3 миллиарда параметров с промтом «определи язык». Точность достигает 99 процентов, но латенси вырастает до 200–500 миллисекунд.

Диспетчер направляет запросы по простому правилу. Русский язык - на GigaChat, YandexGPT или дообученную LLaMA. Английский - на GPT-4o, Claude или LLaMA-3. Китайский - на Qwen или DeepSeek (они оптимизированы под китайский). Другие европейские языки - на GPT-4o или Claude (английская модель справляется). А редкие языки - сначала переводятся на английский маленькой моделью, а затем отправляются в GPT-4o.

Обязательно добавьте fallback на случай ошибки детектора. Например, если детектор ошибся и украинский текст определил как русский, модель может выдать странный ответ. Простое решение - добавить в промт проверку: «Если пользователь написал не на русском, скажи "я не понимаю этот язык"». Это спасёт от глупых ошибок.



4.5 Чего ожидать от будущих моделей (2026–2028)



Первый тренд - мультиязычные словари становятся стандартом. Qwen и DeepSeek уже показывают, что можно сделать один словарь, хорошо работающий с китайским, английским и русским одновременно. В ближайшие 2–3 года коэффициент токенизации для русского языка у таких моделей снизится до 1.2–1.5 даже без дообучения.



Второй тренд - специализированные русские модели (GigaChat, YandexGPT) продолжат улучшать качество. Для локальных задач, где важны юридические тонкости, культурный контекст и работа с государственными форматами, они останутся лучшим выбором.



Третий тренд - модели с поддержкой 100+ языков (вроде NLLB от Meta) будут интегрироваться прямо в LLM. Это значит, что перевод станет встроенной функцией, а не отдельным вызовом. Вы просто пишете промт на русском, а модель сама решает, переводить его внутри или обрабатывать напрямую.



Четвёртый тренд - роутеры станут умнее. Они будут выбирать модель не только по языку, но и по типу задачи (код, юриспруденция, творчество), по длине контекста и даже по бюджету запроса. Это потребует использования LLM-as-a-judge - маленькой модели, которая оценивает запрос и принимает решение.



Что не изменится:

универсальной «модели на всех языках» не существует. Вы всегда будете выбирать компромисс: либо платить за токены (используя английскую модель для русского текста), либо вложиться в дообучение один раз, либо поддерживать роутер с несколькими моделями.



4.6 Инженерный чек-лист для мультиязычной системы



Перед запуском мультиязычной системы проверьте следующее.

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

Посчитали ли вы TCO для трёх вариантов: прямая работа через API (токены), дообучение open-source модели, роутер с несколькими моделями? Часто роутер оказывается дешевле, чем кажется на первый взгляд.

Выбрали ли детектор языка? Для старта подойдёт fasttext, для сложных кейсов - маленькая LLM.

Если вы решили дообучать модель - расширили ли токенизатор и собрали ли 10+ миллиардов токенов качественного русского текста?

Если вы решили использовать перевод - заложили ли в бюджет дополнительные 30 процентов токенов и 2–5 секунд латенси?

Если вы строите роутер - добавили ли fallback на английскую модель при ошибке детекции языка? Протестировали ли систему на смешанных запросах вроде «Как сказать "привет" по-китайски?»



4.7 Краткий итог



Хотите дёшево и качественно на русском - берите GigaChat или YandexGPT. Это самый простой путь с минимальными затратами на токены.

Хотите open-source и русский - дообучайте LLaMA или Mistral на 10–20 миллиардах токенов. Это потребует инвестиций (5–100 тысяч долларов в зависимости от размера модели), но окупится на больших объёмах.

Хотите универсальность без дообучения - ставьте роутер перед моделями: детектор языка + диспетчер. Это требует поддержки нескольких моделей, но даёт гибкость.

Чистая LLaMA или Mistral без дообучения на русском - самый дорогой вариант и по токенам, и по качеству. Избегайте его, если только вы не работаете исключительно с английским.

Подробнее о том, почему токенизаторы так работают и как токены получают свои номера - см. Главу 1.1, разделы «Токенизация разных языков» и «Как токен получает свой номер».



Назад: 3. ИСТОРИЯ РАЗВИТИЯ НЕЙРОСЕТЕЙ: ОТ МЕЧТЫ К ПОВСЕДНЕВНОСТИ
Дальше: 5. ПРАКТИЧЕСКИЕ ПРИМЕРЫ: (псевдо-)КОД И ИНСТРУКЦИИ