
Всем привет! На связи Толя Потапов, MLE в Т-Банке. Мы продолжаем развивать собственную линейку моделей GEN-T и внутренние продукты на основе своих моделей: агенты в саппорте, внутренние копилоты для сотрудников и Вселенную ассистентов.
Мы уже делились большими языковыми моделями T-lite 0.1, T-lite 1.0 и T-pro 1.0. Модели завоевали популярность и скачиваются суммарно более 15к раз в месяц.
Сегодня делимся новой моделью T-pro 2.0, обученной на основе модели Qwen3 32B, но с более плотной токенизацией на русском языке. Модель поддерживает гибридный ризонинг и позволяет сгенерировать рассуждение перед тем как отвечать. Это помогает в сложных задачах, где требуется несколько последовательных выводов, таких как математика.
Мы дообучали модель в несколько этапов, чтобы прокачать общее качество решения задач на русском и улучшить генерацию рассуждений.
Расскажу общие детали процесса обучения модели, основные характеристики и результаты замеров качества. Поделюсь, какие сложности у нас возникали и на чем планируем сосредоточиться.
Процесс дообучения
Cоздание нового токенизатора и его адаптация: мы получили улучшенный токенизатор для мультилингвальных моделей с фокусом на кириллические языки, взяв за основу токенизатор Qwen3 и расширив его кириллическую часть более чем в пять раз.
При этом некириллические и нелатинские токены сократили на основании оценки частотности по нашему корпусу предобучения. Такой подход позволяет модели лучше работать с малоресурсными кириллическими языками при сохранении размера словаря как у оригинальной модели. Итоговый токенизатор на 30% более эффективен для русского языка.

Ускорение инференса за счет токенизатора. Мы замерили ускорения инференса за счет более плотного токенизатора на двух доменах — чатовые запросы из ru-arena-hard и олимпиадные математические задачи из T-Math.


Как мы считали ускорение
В качестве фреймворка генерации мы использовали SGLang с параметрами генерации temperature=0.9 и presence_penalty=1.0 для обеих моделей. В результате оценили медианное количество токенов генерации для обеих моделей и медианную задержку (latency) при пакетной обработке запросов с max_concurrent_workers=100. Как видно из графиков, на более длинных ответах получается значительно большее ускорение, связанное с квадратичной сложностью вычисления механизма внимания.
Дообучение на большом русскоязычном инструктивном корпусе: в первом релизе наш рецепт состоял из нескольких стадий продолжающегося предобучения с суммарным токен-бюджетом 140B. Дообучение гибридно-ризонинговых моделей потребовало существенной переработки рецепта: датамикс второй стадии теперь состоит из 40B инструктивных данных, где треть составляют ризонинг данные.
Дообучение на более чистом SFT-сете: SFT-датасет сформирован из разнообразных промптов, собранных из открытых источников и качественных переводов англоязычных наборов данных.
Основная цель — усилить ключевые способности модели: от решения алгоритмических задач и математики до диалоговости, логического мышления и режима рассуждений.
Общий размер датасета составляет около 500 тысяч инструкций на русском языке. Мы применяли многоэтапный пайплайн фильтрации, чтобы обеспечить высокое качество и разнообразие.
General-данные:
Устранение дубликатов. Мы удалили дубликаты в близких по смыслу сэмплах, рассматривая схожесть на основе эмбеддингов и LSH.
Контроль разнообразия с #InsTag — использовали теги инструкций для балансировки тем и стилей, избегая доминирования одних типов данных над другими.
Фильтрация по RM-score — оценивали качество инструкций с помощью reward model (RM), отсеивая низкокачественные примеры.
IFD для фокуса на сложности — на финальном этапе применяли Instruction-Following Difficulty (IFD) для отбора примеров со сбалансированной сложностью, чтобы избежать как слишком простых и неинформативных, так и чрезмерно сложных и шумных случаев.
Финальный выбор ответа. В завершение мы генерировали по 8 вариантов ответа на каждый запрос с помощью более мощной модели и выбирали лучший вариант по RM-score.
В general-часть мы добавили 1% семплов с длинным контекстом до 32к токенов.
Дополнительно для reasoning-данных:
Отбор на основе KL-дивергенции. Мы оценили KL-дивергенцию между распределениями RM-score генераций учителя и ученика и сохраняли только те запросы, у которых значения KL находились в среднем диапазоне. Это позволило нам выбрать примеры, сбалансированные по сложности.
Финальный выбор ответа. Для верифицируемых запросов мы проверили верность ответа. Окончательным ответом выбирался самый короткий по длине рассуждений среди топ-3 вариантов, полученных от модели-учителя и отсортированных по RM-score. Таким образом мы достигли баланса между краткостью и качеством.
Для формирования итогового датасета ответы на инструкции генерировались с помощью более мощных моделей, таких как DeepSeek-V3 0324 и Qwen3-235B-A22B, что обеспечивает высокий уровень точности и релевантности.
Preference tuning. Для обучения DPO сформировали набор данных — с фильтрацией по длине и типу для general-инструкций и сохранением баланса доменов для reasoning-инструкций.
Для создания обучающих пар из 16 генераций выбирались лучший и худший кандидаты по оценке качества. При этом неполные генерации исключались, а среди трех лучших по качеству выбирался самый короткий ответ.
Для оценки качества генераций обучили собственную reward-модель на базе Qwen3 32B. Обучение проводилось по турнирной схеме, где модели сравнивались попарно как в плей-офф, при этом модели схожего уровня ставились рядом друг с другом. Такой подход позволил reward-модели научиться различать тонкие различия между похожими по качеству ответами, а не только очевидные случаи.
Speculative decoding. В качестве драфт-модели выбрали EAGLE 1 с генерацией драфта во время инференса с помощью tree attention согласно EAGLE 2.
Обучили одну эпоху на семпле SFT-сета с инкрементом ризонинга, который использовался для обучения T-Pro 2.0, как результат получили ускорение до двух раз на распределении внутренних данных при использовании нулевой температуры и батча размера 1. При увеличении размера батча прирост становился менее ощутимым и при размере батча 8 пропадал.
Драфт-модель с более подробной информацией и рекомендуемые настройки с примерами использования выложили на нашу страницу в huggingface.
Диалоговые бенчмарки
Для оценки способностей моделей к ведению диалога, следованию инструкциям и решению задач мы использовали LLM-as-a-judge-арены: Arena Hard Ru, Arena Hard 2 и арену, основанную на данных, отобранных автором репозитория WildChat Hard Ru из реальных запросов пользователей. В последней мы использовали в качестве бейзлайна ответы модели o3-mini. В качестве судьи для всех арен используется DeepSeek V3 0324.
Результаты замеров на аренах. Для моделей, поддерживающих режим рассуждений, представлены замеры в /think- и /no_think-режимах. Рекомендованные параметры генерации можно посмотреть в карточке модели.
Model |
Arena Hard Ru |
Arena Hard 2 (Hard) |
Arena Hard 2 (Creative) |
WildChat Hard Ru |
T-pro 2.0 |
87.6 / 86.28 |
64.3 / 56.8 |
83.1 / 82.2 |
75 / 76.6 |
Claude 4 Sonnet * |
81.04 |
44.9 |
61.8 |
60.4 |
Claude 3.7 Sonnet * |
82.58 |
36.7 |
61.8 |
56.5 |
Claude 3.5 Sonnet * |
69.12 |
29.8 |
26.5 |
39.6 |
DeepSeek V3 |
91.32 |
50.9 |
77.4 |
76 |
DeepSeek R1 |
90.88 |
67.8 |
95.1 |
83 |
Qwen3 32B |
83.6 / 82.58 |
56.4 / 42 |
73.6 / 63.6 |
66.1 / 59.2 |
T-pro 1.0 |
64.78 |
14.6 |
26.8 |
35.4 |
RuadaptQwen3-32B-Instruct-v2 |
65.01 / 65.99 |
17 / 19.1 |
31.2 / 26.4 |
47.5 / 50.4 |
Gemma3-27B |
75.88 |
25.6 |
78.6 |
52.7 |
* Claude замерены в режиме без рассуждений
Common-knowledge-бенчмарки. В качестве бенчмарков для оценки знаний о мире и общим логическим способностям моделей на русском языке мы использовали следующие бенчмарки: MERA, MaMuRAMu, ruMMLU, ruMMLU-Pro.
Все замеры представлены в /no_think-режиме.
Модель |
MERA |
MaMuRAMu |
ruMMLU |
ruMMLU-Pro |
T-pro 2.0 |
0.66 |
0.851 |
0.790 |
0.697 |
Claude 3.7 Sonnet |
0.682 |
0.89 |
0.845 |
- |
DeepSeek V3 |
0.677 |
0.882 |
0.8 |
- |
Qwen3 32B |
0.584 |
0.833 |
0.740 |
0.677 |
DeepSeek-R1-Distill-Qwen-32B |
0.508 |
0.787 |
0.702 |
0.537 |
T-pro 1.0 |
0.629 |
0.841 |
0.769 |
0.663 |
RuadaptQwen3-32B-Instruct-v2 |
0.574 |
0.823 |
0.737 |
0.652 |
Gemma3-27B |
0.577 |
0.797 |
0.695 |
0.665 |
Mistral Small 3.1 24B |
0.526 |
0.813 |
0.714 |
0.617 |
Reasoning-бенчмарки. Мы взяли несколько популярных академических и индустриальных бенчмарков, чтобы объективно оценить способности модели к рассуждениям и решению сложных задач: AIME, MATH-500, GPQA Diamond, Vikhr Math, Vikhr Physics, LiveCodeBench v4_v5.
Для Vikhr Math и Vikhr Physics замеры производились кодом на основе Math-Verify. Англоязычные бенчмарки были целиком локализованы на русский язык ИИ-тренерами: ruAIME, ruMATH-500, ru GPQA Diamond, ruLCB.
Мы собрали свой бенчмарк Т-Math, чтобы расширить оценку математических способностей на русском языке.
Для составления T-Math мы использовали математические задачи из Всероссийской и Московской олимпиад школьников. Все задачи автоматически извлечены и проверены людьми на корректность. В итоге собрали 331 задачу с 1998 по 2025 год. Подробное описание процесса сбора данных можно найти в карточке бенчмарка на huggingface.
Датасет |
Область |
Размер |
Метрика |
AIME2024, AIME2025 |
Олимпиадная математика |
2 × 30 |
Acc avg@16 |
MATH-500 |
Олимпиадная математика |
500 |
pass@1 |
GPQA Diamond |
Химия, биология, физика (уровень эксперта) |
198 |
pass@1 |
LCB, ruLCB |
Код |
268 |
pass@1 |
Vikhr Math |
Олимпиадная математика |
199 |
pass@1 |
Vikhr Physics |
Олимпиадная физика |
98 |
pass@1 |
T-MATH |
Олимпиадная математика |
331 |
pass@1 |
Метрики на английском языке. Для ризонинг-моделей все замеры производились в think-режиме.
Модель |
AIME2024 |
AIME2025 |
MATH-500 |
GPQA Diamond |
LCB |
T-pro 2.0 |
0.765 |
0.679 |
0.966 |
0.641 |
0.556 |
DeepSeek V3 |
0.52 |
0.285 |
0.942 |
0.655 |
0.405 |
DeepSeek R1 |
0.914 |
0.875 |
0.983 |
0.813 |
0.77 |
Qwen3 32B |
0.808 |
0.725 |
0.961 |
0.668 |
0.546 |
DeepSeek-R1-Distill-Qwen-32B |
0.706 |
0.573 |
0.950 |
0.621 |
0.572 |
T-pro 1.0 |
0.085 |
0.052 |
0.744 |
0.530 |
0.243 |
RuadaptQwen3-32B-Instruct-v2 |
0.692 |
0.604 |
0.948 |
0.596 |
0.489 |
Gemma 3 27B |
0.260 |
0.221 |
0.882 |
0.515 |
0.246 |
Метрики на русском языке. Для ризонинг-моделей все замеры производились в think-режиме.
Модель |
ruAIME |
ruAIME |
ruMATH-500 |
ru GPQA Diamond |
ruLCB |
T-Math |
Vikhr Math |
Vikhr Physics |
T-pro 2.0 |
0.704 |
0.646 |
0.94 |
0.591 |
0.563 |
0.541 |
0.799 |
0.51 |
DeepSeek V3 |
0.319 |
0.285 |
0.882 |
0.657 |
0.444 |
0.278 |
0.613 |
0.367 |
DeepSeek R1 |
0.8 |
0.8 |
0.972 |
0.763 |
0.69 |
0.619 |
0.864 |
0.469 |
Qwen3 32B |
0.706 |
0.625 |
0.938 |
0.606 |
0.537 |
0.529 |
0.809 |
0.531 |
DeepSeek-R1-Distill-Qwen-32B |
0.510 |
0.402 |
0.898 |
0.631 |
0.493 |
0.254 |
0.462 |
0.286 |
T-pro 1.0 |
0.144 |
0.133 |
0.788 |
0.465 |
0.235 |
0.163 |
0.422 |
0.316 |
RuadaptQwen3-32B-Instruct-v2 |
0.575 |
0.450 |
0.926 |
0.591 |
0.500 |
0.444 |
0.528 |
0.337 |
Gemma 3 27B |
0.248 |
0.231 |
0.860 |
0.439 |
0.261 |
0.208 |
0.548 |
0.276 |
Зачем мы этим занимаемся
За последний год open-source-модели проделали большой путь; разрыв между проприетарными и открытыми моделями сокращается. По крайней мере пока.
Модели Deepseek V3/R1 и Qwen3 235B A22B сделали возможным запуск модели уровня gpt4 локально в контуре.
Для нас важно уметь дообучать самые продвинутые (в том числе ризонинговые) LLM и не терять в общих способностях моделей, в то же время решая важные для нас задачи:
Управление стоимостью инференса и скоростью генерации.
Дообучение на важные для нас домены. Например, домен саппорта или распределение внутреннего промптинга.
Уменьшение количества артефактов и проблем с русским языком.
В то же время в прикладных задачах стандартный файнтюнинг нас все еще не устраивает, нам нужно закладывать факты и умения в гораздо более ранние фазы обучения. Наш опыт показывает, что это невозможно сделать без воспроизведения в какой-то степени всех этапов обучения современных LLM с подмешиванием своих данных и очень тонкого процесса наслоения этого обучения поверх существующих моделей.
Внутренние линейки моделей, которые мы используем в своих продуктах, проходят похожий на T-Pro 2.0 процесс дообучения, но с использованием различных внутренних данных, которыми мы по понятным причинам поделиться не можем.
Модель T-pro 2.0 дообучена только на открытых данных и является для нас результатом работы над рецептом дообучения и артефактом, которым мы можем поделиться с комьюнити. Модель можно использовать как для решения задач в промптинге, так и для дообучения на свои задачи.
Мы впервые решили поделиться большим инструктивным датасетом T-Wix, датасет содержит около 500k примеров, включает в себя ризонинговую и неризонинговую часть. Примеры в датасете прошли многостадийный процесс очистки и балансировки. Его можно использовать для дообучения открытых и внутренних LLM как самостоятельно, так и с домешиванием доменных или внутренних данных.
Надеемся, что наличие такого датасета в открытом доступе позволит большему числу энтузиастов и компаний делать свои крутые продукты на основе LLM!
Ограничения модели
Длина контекста. Все стадии обучения модель прошла с длиной контекста, равной 32к токенов, как и оригинальная модель Qwen, поэтому контекст до 128k токенов должен нормально работать с RoPE scaling.
Function calling и MCP. Мы не занимались улучшением function calling и работой с MCP, поэтому это должно работать на уровне оригинальной модели Qwen или несколько хуже — планируем сосредоточиться на этом в следующих релизах.
Выводы
T-pro 2.0:
Гибридно-ризонинговая модель, лидирующая среди открытых моделей ≤35B параметров в русскоязычных бенчмарках.
Генерирует текст до 2 раз быстрее, чем оригинальная модель Qwen, за счет более плотной токенизации и спекулятивного декодирования.
Как и любая LLM, T-pro 2.0 может допускать галлюцинации, поэтому для production-сценариев рекомендуем RAG, тонкий fine-tune и внешние механизмы безопасности.
Детальный разбор пайплайна дообучения будет в следующей статье. А пока нам важно ваше мнение — открывайте репозиторий, заводите issues и делитесь кейсами использования.
Полезные ссылки: