
Всем привет! На связи Толя Потапов, 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 и делитесь кейсами использования.
Полезные ссылки: