Никита Сушко рассказал, как команда Сбер преодолела серьёзные технические вызовы и выпустила обновлённые версии GigaChat-3.1-Ultra и GigaChat-3.1-Lightning. Модели уже доступны в open source под лицензией MIT на Hugging Face и GitVerse.
В ноябре прошлого года Сбер открыл preview-версии GigaChat-3-Ultra (702B MoE) и GigaChat-3-Lightning (10B MoE). За эти месяцы команда провела огромную работу и теперь представляет финальные GigaChat-3.1-Ultra и GigaChat-3.1-Lightning.
По внутренним замерам Ultra превосходит non-reasoning Qwen3-235B-A22B и DeepSeek-V3-0324 в математике и общем reasoning. Lightning с всего 1,8 млрд активных параметров на аренах с судьёй GPT-4.1 показывает уровень GPT-4o.
Но этот релиз — не только про цифры. Переход с Dense на MoE-архитектуру вскрыл целый ряд скрытых проблем, о которых раньше не задумывались. Сбер полностью победил зацикливание генераций (и даже придумал для этого специальную метрику на основе BPE-сжатия), перевёл этап DPO в нативный FP8 (качество выше bf16 при вдвое меньшем расходе памяти), нашёл критический баг в SGLang при dp > 1 и выяснил, что GPT-OSS-120b отлично заменяет проприетарных судей на аренах.
Главная проблема — зацикливание
Релиз был запланирован на конец января. Модели уже были готовы, но на валидации выяснилось: вся линейка сильно «циклит». Это проявлялось и на аренах, и на внутренних метриках Сбера. Циклы были разные — от простого повторения одного слова до сложных шаблонных конструкций.
Выпускать такое было невозможно, поэтому релиз отложили и начали глубокий разбор.
Новая метрика циклов
Сначала нужно было уметь точно измерять проблему. Старая метрика CYCLES (на основе z-функции) работала медленно и не отражала всей картины.
Команда Сбера придумала BPE_CYCLES — быстрый и более чувствительный показатель. Идея простая: если хвост генерации зациклен, он отлично сжимается по принципу BPE. Берётся хвост последовательности, итеративно объединяются самые частые пары токенов и считается compression_ratio (отношение длины после сжатия к исходной).
Чем ниже значение — тем сильнее повторения. Метрика ловит не только очевидные петли, но и скрытые: повторяющиеся синтаксические шаблоны, списки, фрагменты кода.
Сбер учитывал не только наличие циклов, но и длину генерации — короткий повтор в конце и полностью развалившийся длинный хвост — это разные по тяжести проблемы.
Где именно ломалось
Команда разбила пайплайн на этапы и проверила каждый:
- Данные — всё чисто. В DPO даже были «антицикличные» семплы, которые помогали.
- Предсказание EOS-токена — модель в принципе умеет останавливаться, но в зацикленных траекториях сигнал EOS слишком слабый и не перебивает повторения.
- Балансировка экспертов — гипотеза не подтвердилась. На SFT баланс нарушался, но эксперименты показали, что дополнительные deepseek-подобные потери только ухудшают качество. Модель сама быстро адаптируется к новому распределению данных.
Ключевой инсайт: корень проблемы — этап расширения контекста на претренировке. SFT на 4096 токенах почти не циклит, а на 32k уже заметно. Дальнейшие этапы (SFT → DPO) проблему только смягчают.
Критический баг в SGLang
Во время отладки заметили: при dp > 1 количество циклов растёт, а скорость падает. Оказалось, команда нашла серьёзный баг в SGLang (версии 0.5.3–0.5.9) при batched-запросах. Он проявляется у всех моделей, включая Qwen3-8B: HumanEval падает с 0,63 до 0,43.
Сбер подготовил pull request в репозиторий. Пока фикс не влит, рекомендуется откатываться на версии старше 0.5.3.
Тонкая настройка гиперпараметров
MoE требует совершенно других scaling laws. Команда перебрала LR, шедулеры, batch size и количество эпох.
Главные находки:
- Для MoE оптимально увеличить learning rate и сделать scheduler менее затухающим.
- На DPO большой global batch size (512–1024) сильно улучшает и арены, и метрики циклов.
- Чем сильнее вклад DPO (больше LR или beta), тем меньше циклов, но тем легче «сломать» модель.
В итоге Сбер поднял CYCLES до 97,6, а BPE_CYCLES — с 0,75 до 0,9. Зацикливания практически исчезли.
Ускорение обучения в три раза
Команда применила sequence packing для коротких и средних диалогов (до 32k токенов) и dynamic sequence parallel — адаптивное распараллеливание в зависимости от реальной длины пакета.
Дополнительно отказались от длинных dev-system промптов (1000 → 300 токенов). В результате обучение ускорилось примерно в три раза, а на контексте 256k — до десятикратно.
Улучшенный DPO и нативный FP8
Команда вернулась к DPO с доработками:
- Обучение MTP-голов на этапе DPO для консистентности.
- Weighted gamma — экспоненциальное затухание весов по длине последовательности (начинается только с первого различающегося токена).
Самое важное — DPO полностью в нативном FP8. Качество не только не просело по сравнению с bf16, но в некоторых местах даже выросло, при этом память сократилась в два раза.
Локальные арены и быстрый фидбек
Чтобы быстро оценивать кандидатов, Сбер построил собственный оркестратор арен. Вместо дорогих GPT-4.1 через API теперь используется GPT-OSS-120b — она быстрая, помещается в одну карту и отлично коррелирует с эталонным судьёй.
Качество данных подняли на новый уровень
- Расширили покрытие математики, физики, финансов, биологии, химии и медицины.
- Внедрили систему «Ревизор» с проверкой Markdown, LaTeX и форматов.
- Для DPO генерировали пары on-policy на preview-моделях.
- Улучшили B2C-сценарии, кодовый интерпретатор, поиск, цитирование и персонализацию (память о пользователе).
- Отдельный пайплайн для агентских диалогов с реальными вызовами функций.
- Полностью переработали правила грамотности и стиля вместе с профессиональными редакторами.
Итоговые результаты
GigaChat-3.1-Ultra:
- Значительно лучше в математике, general reasoning и вызове функций.
- На аренах обходит DeepSeek-V3-0324 и почти догоняет Qwen3-235B-A22B-Non-Thinking.
GigaChat-3.1-Lightning:
- Одна из лучших моделей своего размера.
- По alignment почти на уровне GPT-4o.
- Благодаря MoE + MTP + FP8 стала ещё быстрее и в два раза компактнее.
Вот как выглядит ускорение Lightning (замеры на 1×H100, vLLM):
| Конфигурация | Output tps | Total tps | TPOT | Прирост vs BF16 |
|---|---|---|---|---|
| BF16 | 2 866 | 5 832 | 9.52 | 0 % |
| BF16 + MTP | 3 346 | 6 810 | 8.25 | +16,7 % |
| FP8 | 3 382 | 6 883 | 7.63 | +18,0 % |
| FP8 + MTP | 3 958 | 8 054 | 6.92 | +38,1 % |
Что дальше
За четыре месяца Сбер полностью перестроил пост-тренировочный пайплайн, устранил зацикливание, поднял качество на всех фронтах и сделал модели ещё быстрее и эффективнее.
Модели уже лежат в открытом доступе. А впереди — новые релизы и ещё больше открытого кода.
Если хотите учить по-настоящему большие модели и решать сложные инженерные задачи — присоединяйтесь к команде Сбера. У них всегда есть, что починить.
Источник: https://habr.com/