Всем привет! Я Толя Потапов, MLE в Т-Банке. Руковожу командой разработки фундаментальных моделей. 

Почти два года мы плотно работаем с LLM, развиваем продукты на базе больших языковых моделей. Например, Вселенную ассистентов, которая входит Gen-T — семейство собственных специализированных языковых моделей. 

Сегодня мы открываем две большие языковые модели — T-Lite и T-Pro, над которыми работали последние полгода, их можно скачать с huggingface. Они распространяются под лицензией Apache 2.0. Для адаптации моделей под бизнес-кейсы рекомендуем воспользоваться нашей библиотекой turbo-alignment с инструментами для полного цикла работы над LLM. 

Сегодня я дам общие характеристики моделей и расскажу, что у нас получилось в новом релизе. Без сложностей тоже не обошлось, но об этом будет позже в отдельной статье.

Подход к дообучению и бенчмарки

T-Lite и T-Pro — модели на 7 и 32 млрд параметров соответственно, построенные на базе моделей Qwen 2.5 и дообученные на русский язык. 

Технологически мы дообучали модель через несколько стадий:

  • Pre-train stage 1. 100B токенов, дообучение на разнообразные русскоязычные данные из Common Crawl, книг, кода и проприетарных датасетов, смешанных с re-play на английском языке (добавили часть данных на английском языке, поскольку это основной язык для базовой модели).

  • Pre-train stage 2. 40B токенов, дообучение на смеси инструктивных и претрейн данных.

  • SFT. 1B токенов. учим модель следовать разнообразным инструкциям.

  • Preference tuning. 1B токенов, тонкая настройка, обучаем модель быть полезной.

После дообучения позиции моделей:

  • T-Lite 7B модель. Лучшая русскоязычная опенсорс-модель по ряду индустриальных бенчмарков (в том числе MERA) в классе «до 10 млрд параметров». Модель заточена под дообучение на различные бизнес-задачи (fine-tuning). 

  • T-Pro 32B модель. Лучшая русскоязычная опенсорс-модель по широкому ряду индустриальных бенчмарков. Модель может быть использована в режиме дообучения под бизнес-задачу (fine-tuning) и для использования в режиме «промптинга».

Замеряли на MERA, MaMuRAMu, ruMMLU, ruMMLU-Pro, ruMATH, ruGSM8k, ruMBPP, Ru Arena Hard, MT Bench и AlpacaEval. Модели обгоняют все открытые и большинство проприетарных моделей на русскоязычных бенчмарках, проверяющих как знания базовой модели, так и на диалоговых и инструктивных датасетах, проверяющих способности модели решать практические задачи (даты замеров от 10.12.2024).

ruMMLU-Pro. За основу был взят англоязычный бенчмарк MMLU-Pro, содержащий 12 032 вопроса по 14 доменам, и переведен с помощью GPT-4, сохраняя методологию оценивания, замер производился в 5-shot-режиме.

MERA

MaMuRAMu

ruMMLU

ruMMLU-Pro

T-Lite

0.552

0.775

0.664

0.497

GigaChat Pro *

0.512

0.77

0.617

-

Gemma-2-9B-it **

0.505

0.724

0.618

0.405

Qwen2.5-7B-Instruct *

0.482

0.711

0.61

0.481

Vikhr-Nemo-12B-Instruct-R-21-09-24

0.478

0.689

0.564

0.328

RuadaptQwen2.5-7B-Instruct

0.468

0.7

0.595

0.448

IlyaGusev/saiga_nemo_12b_v3

0.428

0.648

0.528

0.386

allenai-Llama-3.1-Tulu-8B

0.409

0.628

0.509

0.354

MERA

MaMuRAMu

ruMMLU

ruMMLU-pro

GPT-4o *

0.642

0.874

0.792

0.713

T-Pro

0.629

0.841

0.768

0.665

RuadaptQwen2.5-32B-Instruct *

0.615

0.812

0.737

0.631

Nexusflow-Athene-V2-Chat (72B)

0.606

0.85

0.784

0.692

Qwen-2.5-72B-Instruct *

0.601

0.849

0.782

0.677

GigaChat Max *

0.588

0.824

0.718

0.535

Qwen2.5-32B-Instruct

0.578

0.824

0.747

0.637

Gemma-2-27B-it **

0.574

0.768

0.673

0.470

GPT-4o mini *

0.57

0.779

0.652

0.573

Meta-Llama-3.3-70B-Instruct

0.567

0.818

0.762

0.653

GigaChat Pro *

0.512

0.77

0.617

-

allenai-Llama-3.1-Tulu-3-70B

0.574

0.805

0.709

0.579

Пояснение к таблице: 

* Значения метрик были взяты из лидерборда MERA бенчмарка.
** Для семейства Gemma-2 значения метрик посчитаны без опций multi-turn, системной инструкции и чатового шаблона.

Математические и кодовые бенчмарки

ru MATH. Бенчмарк основан на англоязычном MATH, содержит 5 000 задач по различным предметам: алгебра, геометрия, теория вероятностей, теория чисел. Сложность варьируется от 1 до 5 в соответствии с AoPS. Перевели с помощью GPT-4, замеряли в 4-shot-режиме.

ru GSM8K. Бенчмарк, созданный на основе англоязычного датасета GSM8K, включает 1 319 задач со средней сложностью для школьников. Переводили с использованием модели GPT-4, а оценивали в режиме 8-shot.

ru MBPP (sanitized). Для проверки способностей модели генерировать код мы также перевели MBPP бенчмарк на русский язык с помощью GPT-4. Замеряли на очищенном (sanitized) подмножестве из 257 примеров кодовых задач в 0-shot-режиме.

В таблице — результаты измерений по перечисленным бенчмаркам. Так как ruMBPP, на наш взгляд, содержит достаточно мало примеров для оценивания кодовых возможностей моделей, дополнительно в таблицу вынесли ruCodeEval из бенчмарка MERA для более комплексной оценки.

Model

ruGSM8K

ruMATH

ruMBPP

ruCodeEval *

T-pro (ours)

94.1

77.6

0.805

0.432 / 0.626 / 0.677

Nexusflow-Athene-V2-Chat (72B)

93.6

81.4

0.82

0 / 0 / 0

Qwen-2.5-72B-Instruct

93.5

79.5

0.825

0 / 0 / 0

Qwen-2.5-32B-Instruct

92.6

72.7

0.825

0.06 / 0.098 / 0.116

RuAdaptQwen-2.5-32B-Instruct

92.3

74.2

0.813

0.426 / 0.561 / 0.598

GPT-4o 2024-08-06

93.1

77.1

0.802

0.529 / 0.649 / 0.683

allenai-Llama-3.1-Tulu-3-70B

89.8

65.0

0.735

0.073 / 0.237 / 0.341

Gemma-2-27B-it

89.4

53.8

0.708

0.259 / 0.586 / 0.689

GigaChat Max 1.0.26.20

89.2

58.9

0.626

0.077 / 0.093 / 0.098

GPT-4o mini 2024-07-18

88.8

72.4

0.790

0.704 / 0.753 / 0.768

Meta-Llama-3.3-70B-Instruct

93.4

63.6

0.77

0.112 / 0.166 / 0.189

T-lite (ours)

85.6

67.9

0.693

0.082 / 0.168 / 0.226

Qwen-2.5-7B-Instruct

83.2

67.1

0.685

0.025 / 0.071 / 0.098

Gemma-2-9B-it

82.3

47.3

0.63

0.215 / 0.494 / 0.561

RuAdaptQwen-2.5-7B-Instruct-v1

79.5

60.7

0.696

0.018 / 0.064 / 0.11

Vikhr-Nemo-12B-Instruct-R-21-09-24

78.5

36.6

0.56

0.165 / 0.42 / 0.506

allenai-Llama-3.1-Tulu-8B

75.6

39.9

0.49

0 / 0 / 0

GigaChat Pro 1.0.26.15

75.2

41.8

0.412

0.056 / 0.068 / 0.073

IlyaGusev/saiga_nemo_12b_v3

72.3

37.0

0.440

0.006 / 0.027 / 0.049

YandexGPT 4 Pro 23.10.24

76.7

28.8

0.510

-

Пояснение к таблице:

* Значения метрик были взяты из лидерборда MERA бенчмарка

Диалоговые бенчмарки

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


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

Во всех диалоговых бенчмарках использовали методологию и код оригинального бенчмарка, а датасеты перевели на русский язык с помощью GPT-4. Ошибки и неточности переводов исправили асессорами.

Arena Hard Ru. Бенчмарк основан на англоязычном Arena Hard Auto, содержит 500 вопросов, в основном технического характера, полученных из запросов пользователей LMSYS Arena. 

Модель-судья сравнивает генерации двух моделей и отдает предпочтение одной из моделей (похожим образом происходит в человеческой арене). На основе оценок строится ELO-рейтинг. 

В качестве судьи используется GPT-4-0613.

Model

Score

95% CI

Avg tokens

Nexusflow-Athene-V2-Chat (72B)

91.36

(-1.4, 1.1)

1199

T-pro (ours)

90.17

(-1.3, 1.5)

906

Qwen-2.5-72B-Instruct

86.08

(-1.6, 1.4)

1119

allenai-Llama-3.1-Tulu-3-70B

85.35

(-1.5, 1.7)

952

GPT-4o 2024-08-06

84.87

(-1.8, 1.6)

786

GPT-4o mini 2024-07-18

81

(-2.0, 1.7)

841

RuAdaptQwen-2.5-32B-Instruct

80.23

(-1.9, 1.8)

896

Meta-Llama-3.3-70B-Instruct

76.51

(-1.9, 2.3)

1113

Qwen-2.5-32B-Instruct

74.54

(-1.8, 2.2)

793

GigaChat-Max-wo_filter *

-

-

-

Gemma-2-27B-it

66.4

(-2.5, 2.4)

806

T-lite (ours)

64.38

(-2.1, 2.5)

1116

IlyaGusev/saiga_nemo_12b_v3

64.3

(-2.2, 2.3)

1016

Qwen-2.5-7B-Instruct

54.29

(-2.0, 2.1)

934

RuAdaptQwen-2.5-7B-Instruct-v1

52.77

(-2.8, 3.1)

981

allenai-Llama-3.1-Tulu-8B

51.99

(-2.6, 2.6)

1010

T-lite-0.1 

50.43

(-2.2, 2.5)

1117

GPT-4-0613

50

(0.0, 0.0)

518

GigaChat-Pro-wo_filter *

-

-

-

Vikhr-Nemo-12B-Instruct-R-21-09-24

42.79

(-2.9, 3.1)

947

YandexGPT 4 Pro 23.10.24

25.5

(-1.8, 1.9)

702

Пояснение к таблице:

* Для моделей GigaChat метрики будут дополнены, когда вместе с командой разработчиков произведем замер без фильтров.

MT Bench Ru. Бенчмарк на основе статьи, используется для оценки способностей модели поддерживать диалог и следовать инструкциям. Состоит из 80 вопросов с несколькими репликами, поделенные на 8 доменов, в каждом из которых по 10 вопросов. 

В разделах математики код-судья сравнивает ответ модели с golden-ответом и оценивает от 0 до 10. В остальных разделах судья оценивает только ответ модели также от 0 до 10. Итоговая оценка — усреднение оценок по всем доменам

Модель-судья — GPT-4o:

Model

Score

GPT-4o 2024-08-06

8.706

T-pro

8.7

GigaChat-Max-wo_filter

8.53*

GPT-4o mini 2024-07-18

8.45

RuAdapt-Qwen-2.5-32B-Instruct

8.39

Meta-Llama-3.3-70B-Instruct

8.26

GigaChat-Pro-wo_filter

8.21*

allenai-Llama-3.1-Tulu–3-70B

8.19

Qwen-2.5-32B-Instruct

8.15

Gemma-2-27B-it

7.96

T-lite

7.87

RuAdapt-Qwen-2.5-7B–Instruct-v1

7.62

Vikhr-Nemo-12B-Instruct-R-21-09-24

7.55

YandexGPT 4 Pro 23.10.24

7.54

IlyaGusev/saiga_nemo_12b_v3

7.48

Gemma-2-9B-it

7.4

Qwen-2.5-7B-Instruct

7.33

T-lite-0.1

7.21

allenai-Llama-3.1-Tulu-3-8B

6.77

Пояснение к таблице

* Для моделей GigaChat скор взят из хабр-статьи GigaChat MAX. Методология бенчмарка и модель судья совпадает с нашей конфигурацией, однако перевод оригинального датасета может отличаться

Alpaca Eval Ru. Синтетическая арена на основе оригинального бенчмарка Alpaca Eval. Отличительная особенность Alpaca Eval — поддержка контроля длины при подсчете рейтинга и высокая корреляцией с чатбот-ареной.

К недостаткам человеческих и автоматических арен можно отнести смещение предпочтений к более длинным ответам. Из-за этого модели, которые выдают более короткий, но правильный ответ, будут недооценены. Такому смещению подвержены как люди, так и сильные модели-судьи. Но в бенчмарке Alpaca Eval процент побед рассчитывается с учетом длины ответа за счет добавления линейной модели в расчет вероятностей побед.

Модель-судья — GPT-4o:

Model

Length-Controlled win-rate

win-rate

Avg symbols

GPT-4o 2024-08-06

50

50

1666

T-Pro

47.61

56.15

1586

GPT-4o mini 2024-07-18

45.51

45.1

1336

RuAdapt-Qwen-2.5-32B-Instruct-v1

43.15

45.4

1776

Qwen-2.5-72B-Instruct

42.07

48.07

1591

T-lite

39.61

45.95

1898

Gemma-2-27B-it

38.82

39.37

1328

GigaChat Max 1.0.26.20

38.13

43.58

1498

Gemma-2-9B-it

36.87

36.26

1281

IlyaGusev/saiga_nemo_12b_v3

35.56

47.06

1858

Qwen-2.5-32B-Instruct

35.01

46.3

1942

GigaChat Pro 1.0.26.15

29.83

27.94

1173

RuAdapt-Qwen-2.5-7B-Instruct-v1

28.43

33

1736

Nexusflow-Athene-V2-Chat

26.31

13.34

504

T-lite-0.1

27.12

47.72

2266

Qwen-2.5-7B-Instruct

25.61

28.55

1486

Vikhr-Nemo-12B-Instruct-R-21-09-24

23.26

32.61

1723

YandexGPT 4 Pro 23.10.24

22.65

20.58

1144

Философия нашего подхода

Мы всегда стремились делать самые качественные продукты для наших пользователей.

Несмотря на то что открытые LLM с каждым следующим поколением становятся все лучше, их качество из коробки нас не устраивало. Даже идея, что можно запускать продукты поверх sota проприетарных моделей с промптингом вроде GPT-4, имеет множество ограничений.

Мы бы хотели уметь влиять на свойства LLM:

  • Иметь модель с правильным русским языком, которая не переходит непроизвольно на английский, не делает грамматические ошибки, правильно понимает устойчивые выражения и термины, не страдает англицизмами и артефактами дословного перевода.

  • У модели должны быть знания в доменах, которые важны для нас (домен поддержки, домен ecom, etc.).

  • Иметь возможность управлять плотностью токенизацией, чтобы оптимизировать эффективность инференса.

  • Закладывать в модель любые нужные нам навыки (например, tool calling, reasoning, классификация, суммаризация).

Обычно знания LLM закладываются на этапе pre-training, а обучение конкретным навыкам в instruct-режиме делается во время глубокого алаймента. Влиять на такие свойства модели только на этапе файн-тюнинга под задачу часто оказывается невозможно. 

Современные LLM предобучаются на >15T токенов что составляет примерно 90 дней на 256H100 для 7B-модели, и это для одного эксперимента без учета падений, подбора гиперпараметров и т. д. В практических реалиях это оказывается чрезмерно дорого, особенно если планируется обучать модели больших размеров (30—70 млрд и более параметров).

Нам нужно было найти правильный баланс между полным предобучением своих LLM-моделей с нуля и использованием самых последних opensource-моделей. Обучение с нуля дает возможность полной кастомизации, но избыточно, сложно и дорого. Открытые модели могут не удовлетворять желаемым свойствам, но постоянно улучшаются и сокращают отставание от своих проприетарных аналогов.

Наша система ценностей в компании привела к созданию и развитию технологии continual-pretraining + general alignment, позволяющей брать открытые большие языковые модели и дообучать их на русский язык, на интересующие нас домены и навыки.

Подробнее об этом подходе я рассказывал на Turbo ML Conf в своем докладе и Никита Сурначев в докладе «Как делать LLM Alignment без тысячи ИИ-тренеров».

Наш подход, с одной стороны, позволяет использовать наработки мирового сообщества и тратить на 80—90% меньше, чем компании, сделавшие ставку на обучение с нуля. С другой стороны — получать лучшее качество в своих продуктах на русском языке.

Ограничения моделей. На всех стадиях тренировка проходила с базовой длиной контекста 8k. Мы не изучали, как себя поведет базовая модель на задачах, которые имеют длину контекста >8k токенов, хотя базовые модели Qwen 2.5 имеют базовую длину контекста 32k токенов.

В этом релизе мы не модифицировали оригинальный токенизатор базовой модели, поэтому плотность токенизации осталась как у моделей Qwen 2.5. Но вы можете самостоятельно адаптировать расширенный токенизатор поверх уже обученной модели с помощью техник, примененных авторами моделей RuAdapt.

Мы не фокусировались на задаче tool calling, планируем добавить это в наши следующие релизы. 

Выводы 

T-Lite — небольшая и эффективная в инференсе модель с отличными метриками, ее можно использовать для базовых задач или файнтюнинга на целевую задачу.

T-Pro подойдет для решения более широкого класса задач в промптинге или для решения более сложных задач в режиме файнтюнинга, где модели меньшего размера не справляются.

Любые LLM-модели склонны галлюцинировать факты, которые они не знают. Поэтому при создании продуктов на основе LLM используйте RAG или файнтюн модели под вашу целевую задачу.

Ответственность за безопасность моделей лежит на тех, кто открывает доступ модели конечным пользователям. На этой поверхности гораздо проще организовать вдумчивую защиту. Это можно делать и дообучением модели, и внешними контурами безопасности, и, в конце концов, модерацией ответов модели живым человеком. 

Больше технологических деталей и сам «рецепт» дообучения подробнее раскроем в следующей статье. А пока — нам будет полезно получить от вас обратную связь в виде issues в hf. Напоминаю ссылки: 

Комментарии (25)


  1. anatolii-potapov Автор
    11.12.2024 09:06

    .


  1. dailydaniel
    11.12.2024 09:06

    правильно понимаю, что брали базовую qwen2.5, а не instruct?


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Сравнивали оба варианта и выбрали поверх instruct моделей учить


  1. pav5000
    11.12.2024 09:06

    Сколько видеопамяти нужно, чтобы локально погонять лайт и про версии?


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Для инференса в bf16, 4k токенов в контексте с батчом 1 нужно:

      1. T-lite ~ 27GB (3090/4090 должно хватать с чуть меньшим контекстом)

      2. T-pro ~ 81GB (1 A100/H100 80gb)

      Для того, чтобы рассчитать необходимое количество памяти под свою задачу, можете использовать калькуляторы типа этого: https://github.com/manuelescobar-dev/LLM-Tools

      Кванты для инференса на более слабом железе выложим позже


      1. timru
        11.12.2024 09:06

        Как обучаются такие системы? Можно ли им просто передавать текстовые документы?
        Можно ли на основании такой модели создать справочную систему?


        1. anatolii-potapov Автор
          11.12.2024 09:06

          Для понимания ограничений проще воспользоваться моделями к которым можно получить доступ через API например YandexGPT, GigaChat, Openai

          Этот релиз скорее предназначен для компаний которые хотят запускать продукты на LLM и обладают инженерным ресурсом чтобы такое запустить, замерить качество и дообучить при необходимости

          Хотя ничего не мешает энтузиастам пробовать эти модели для своих задач


      1. Displacer
        11.12.2024 09:06

        А на 72B планируете дообучить модельку? Что скажете по llama 3.3 72B, по идее у неё тоже хороший потенциал. В ходе дообучения добавился ecom и важные для вас задачи, а знания базовой модели при этом не потерялись? При формировании квантов будете специализированную матрицу русскую использовать?


    1. Arch4Arts
      11.12.2024 09:06

      Я регулярно запускаю разные зарубежные модели, Qwen 32B (32ktx), Gemma 27B (24ktx), Command R 35B 08.2024 (32-60ktx), всё это умещается в 24 ГБ видеопамяти с квантом Q4 для GUFF или 4-4.65bpw для EXL2.

      Ориентироваться можно на условный размер модели в ГБ, и ± 1 ГБ, это примерное число нужной вам VRAM.

      Соответственно, для запуска Т-Про понадобится 24ГБ памяти с квантом Q4_K_M.

      А лайт скорее всего запросто поместится в 8ГБ с квантом Q6.


  1. janvarev
    11.12.2024 09:06

    .


  1. Doman
    11.12.2024 09:06

    Спасибо. Не думали сделать кванты, хотя бы q8?


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Кванты будут
      В конце этой недели или на следующей


  1. zloishavrin
    11.12.2024 09:06

    Круто. API для интеграции планируется?


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Веса моделей выложены в открытый доступ
      Вы можете самостоятельно запустить на своих мощностях
      Или на своем любимом облачном провайдере


      1. anatolii-potapov Автор
        11.12.2024 09:06

        Возможно интеграции появятся от каких-нибудь российских облаков


  1. achekalin
    11.12.2024 09:06

    А в каком-нибудь GGUF нельзя эти модели попросить?


  1. SlavikF
    11.12.2024 09:06

    Когда будут кванты, то очень интересно было бы посмотреть, как будет работать суммаризация (конспекты) с длинной контекста 32k или 64k.


  1. RunFMe
    11.12.2024 09:06

    Привет! Для Макс модели гигачата, кажется, не те метрики в таблице про ру арену


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Если я правильно понял из скрина - это арена вихрей arena-general-auto. В своей статье мы репортим другую метрику - arena-hard-auto, она основана на другом наборе промптов


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Пока решили поставить прочерки и вместе с командой Гигачата перепрогнать корректно для них, обновим метрику чуть позже


  1. nocmep
    11.12.2024 09:06

    Скажите, а чтобы дотюнить ее на свой домен, и не потерять в ризонинге, то как лучше:
    тюнить в bf16 весах, а потом квантизовать для инференса; или сразу квантизованную тюнить?


    1. anatolii-potapov Автор
      11.12.2024 09:06

      Мы не тюним модели в квантованном виде, если есть ресурсы возможно лучше тюнить в полной точности, если нет то уже как получится


  1. Shannon
    11.12.2024 09:06

    1. fermentum
      11.12.2024 09:06

      Вот lite Q8 всего 8Гб: https://huggingface.co/tmplife/T-lite-it-1.0_gguf/tree/main

      Вообще, Qwen на удивление хорошо русским владеет. Еще бы на иероглифы не переключалась спонтанно.


  1. IlyaOsipov
    11.12.2024 09:06

    А подскажите пожалуйста какая лучше LLM для формирования документов из транскрибации локально?