300 классов, 400 сэмплов и никакого промптинга: ЛЛМ как энкодер для классификации. bert.. bert. gemma.. bert. gemma. llm.. bert. gemma. llm. ml.. bert. gemma. llm. ml. Natural Language Processing.. bert. gemma. llm. ml. Natural Language Processing. nlp.. bert. gemma. llm. ml. Natural Language Processing. nlp. nlp-модели.. bert. gemma. llm. ml. Natural Language Processing. nlp. nlp-модели. qwen3.. bert. gemma. llm. ml. Natural Language Processing. nlp. nlp-модели. qwen3. Блог компании Альфа-Банк.. bert. gemma. llm. ml. Natural Language Processing. nlp. nlp-модели. qwen3. Блог компании Альфа-Банк. Машинное обучение.

Когда речь заходит о ЛЛМ и классификации, первая мысль — попросить модель сгенерировать класс через промптирование модели с описанием правил и добавлением примеров. Для небольшого количества классов это работает. Но для 100+ классов (или даже 20-30) — уже нет: контекст раздувается, модель галлюцинирует, а инференс может занимать десятки секунд. Мы решили использовать ЛЛМ иначе: не как генератор текста, а как энкодер, прикрутив сверху обычную классификационную голову.

В статье расскажу про нашу мотивацию использовать ЛЛМ как энкодер и покажу результаты на четырёх разных доменах банка, в рамках которых сравню генеративные модели с классическими энкодерами

Зачем мы вообще полезли в ЛЛМ, если есть BERT?

В Альфа-Банке мы давно и много решаем задачи классификации текстов. Например: 

Во всех этих решениях рабочим бэкбоном были и остаются BERT-подобные архитектуры: быстрые, дешёвые при обучении и не требующие GPU в проде. И BERT’ы нас всё еще устраивают. Однако захотелось посмотреть в сторону чего-то нового.

Если посмотреть на релизы последних двух лет, то можно заметить, что экосистема BERT-моделей частично стагнирует, особенно в русскоязычном сегменте. Последние значимые релизы русскоязычных энкодеров — это RuModernBERT и USER-bge-m3 от VK, FRIDA от Сбера и ее дистиллят BERTA. Причем FRIDA и USER-bge-m3 скорее заточены под решение ретрив задач. В то же время экосистема ЛЛМ развивается взрывными темпами: каждые несколько месяцев выходят новые open-souce модели — семейство Qwen (3.5, 3.6, 3.8), семейство Gemma4 и даже неожиданный апдейт моделей Llama в лице Muse-Glimmer — все с растущим контекстным окном, архитектурными обновлениями и улучшенным претрейном.

При этом  ЛЛМ во время претрейна и последующих фаз элаймента впитывают колоссальный объём данных — на порядки больше, чем любой BERT. А значит логично предположить, что их внутренние представления потенциально богаче и лучше переносятся на задачи, где нужно понимать текст, а не просто выучивать паттерны в данных. Отсюда возникает вопрос: можно ли как-то использовать этот потенциал для классификации?

Самая очевидная мысль — просто запромптить ЛЛМ. Что может быть проще: даём модели текст, описание классов с парой few-shots и просим определить класс. И для бинарной задачи или небольшого количества категорий это действительно сработает. Но попробуйте проделать то же самое в задаче классификации на 300+ классов.

Получаем:

  • Раздутый контекст. Промпт с описаниями 300+ классов занимает десятки тысяч токенов. TTFT уже будет занимать N секунд.

  • Галлюцинации. Модель начинает «придумывать» несуществующие классы, забывать имеющиеся или путать похожие, особенно когда описания пересекаются.

  • Долгий инференс. Авторегрессионная генерация на каждый запрос — это секунды, а то и десятки. При высоком потоке запросов, например, как в чат-боте это критично.

  • Обязательное GPU в проде. Инференс генеративной модели на CPU считай невозможен.

Т.е. промптинг на большом количестве классов просто не масштабируется. Но это не значит, что ЛЛМ бесполезна для классификации. Это значит, что использовать её нужно иначе — не как генератор текста, а как источник получения вектора текста (энкодер), который мы хотим классифицировать.

Поэтому мы пришли к следующей гипотезе: а что, если перестать просить ЛЛМ генерировать текст ответа и вместо этого взять её скрытое состояние с последнего слоя, прикрутив сверху обычную классификационную голову? Так мы получим и богатые репрезентации ЛЛМ, уйдем от раздувания контекста, и, как бонус, вероятности на выходе, относительно которых можно легко калибровать модель.

Скрытые состояния ЛЛМ как фичи: что про это уже известно?

Идея использовать ЛЛМ не по прямому назначению, а как энкодер — не оригинальная. За последние пару лет вышло немало статей и адапитрованных моделей вокруг этого направления.

Одна из самых ранних статей, которую смог найти — LLM2Vec (BehnamGhader et al., 2024, arXiv:2404.05961). Авторы показывают, что декодерные ЛЛМ можно превратить в сильные текстовые энкодеры без полного переобучения архитектуры. Рецепт состоит из трёх шагов:

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

  2. Чтобы модель перестроилась под новое внимание, её дообучают на маскированном предсказании токенов — по аналогии с оригинальным BERT, но поверх уже обученной ЛЛМ.

  3. Контрастивное обучение. Финальный шаг — учим модель сближать эмбеддинги семантически близких текстов и отдалять далёкие, используя InfoNCE loss на парах (запрос, релевантный документ).

После этой трёхшаговой адаптации линейный классификатор поверх скрытых состояний показывает конкурентное качество на задачах классификации и ретрива.

Второй источник вдохновения — дообученные эмбеддинг-модели на базе ЛЛМ. Если сначала такие работы как E5-Mistral (Jiang et al., 2023, arXiv:2312.15166) и GritLM (Muennighoff et al., 2024, arXiv:2402.09906) только показывали саму возможность, то к 2026 году сформировался полноценный класс моделей, которые готовы «из коробки» давать качественные эмбеддинги без ручной адаптации. Процесс их обучения обычно выглядит так:

  1. База — предобученная генеративная ЛЛМ (например, Mistral, Qwen или любая другая), у которой мы также включаем двунаправленное внимание.

  2. Синтетические данные для дообучения — пары (запрос, релевантный ответ) часто генерируются самими ЛЛМ, что позволяет покрыть огромное количество доменов, языков и стилей без ручной разметки.

  3. Контрастивное обучение на парах с хард негативами в дополнения к позитивам (по аналогии с обучением модели E5).  Часто при этом во время обучения к запросу добавляют специальный префикс Instruct:, чтобы модель лучше понимала, какую именно задачу она решает.

  4. Пулинг последнего токена или усреднение всех токенов для извлечения финального вектора текста.

В русскоязычном сегменте наиболее интересные представители этого класса — Qwen3-Embedding и Giga-Embedding. Причем Giga-Embedding получил апдейт буквально на днях.

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

Смена головы у ЛЛМ

Смена головы у ЛЛМ

Следующий вопрос, на который мы хотели ответить: в каких условиях ЛЛМ-классификатор реально обходит BERT, а когда лучше оставить классику? Ответ мы попробовали дать, обучив различные ЛЛМ на внутренних доменах Альфы.

Четыре домена, четыре разных сценария

Чтобы не делать выводов по одной задаче, мы отобрали четыре домена, которые покрывают принципиально разные сценарии использования классификатора: от коротких сообщений на 20 токенов до длинных транскриптов звонков на 3000+ токенов, от бинарной классификации до мультикласса на 300+ классов.

  1. QMS — система контроля качества работы операторов в различных бизнес-линиях банка. После каждого звонка модель проверяет, соблюдает ли оператор установленные критерии: представился ли, аргументировал ли возражение клиента, предложил ли подходящее решение, озвучил ли выгоду. В эксперименте используем два сегмента: телемаркетинг (исходящие звонки ФЛ и ЮЛ) и коллекшн (исходящие звонки ФЛ по взысканию задолженности).

  2. Чат-бот 1-й линии — классификация интентов в классическом чат-боте поддержки. Когда клиент пишет сообщение, модель определяет, к какому из 300 интентов относится запрос (перевыпуск карты, уточнение баланса, подключение услуги, жалоба и т.д.), чтобы маршрутизировать диалог на нужный сценарий. Самая крупная задача в эксперименте — более 300 тысяч размеченных сэмплов.

  3. Открытые комментарии клиентов — классификация текстовых комментариев из отзывов клиентов (карточки VoC — Voice of Customer) для отслеживания динамики негатива по продуктам и каналам. Модель определяет тематику жалобы (31 мультилейбл-класс) и три бинарных флага: тональность, необходимость обратного звонка клиенту, необходимость направления алерта в случае ошибки в процессах/обслуживании.

Сводная таблица:

Домен

Сегмент

Объем разметки

Решаемая задача

Длина текста в токенах 

p50/p95/p99

QMS телемаркетинг

Исходящие звонки ФЛ/ЮЛ

440

Мультитаск: 7 бинарных таргетов

234/1310/1750

QMS коллекшн

Исходящие звонки ФЛ

1320

Мультитаск: 3 бинарных таргета

650/2236/3320

Чат-бот 1-й линии

Входящие сообщения ФЛ

303 000

Мультикласс: 302 интента

25/405/590

Открытые комментарии

Карточки VoC, ФЛ+ЮЛ

12460

Мультитаск: 31 мультилейбл + 3 бинарных

28/86/150

Каждый домен является уникальным: мало данных и длинные транскрипты со сложной семантикой (QMS коллекшн и телемаркетинг), большой размеченный датасет и сотни классов (чат-бот), мультилейбл с короткими комментариями (открытые комментарии). Если подход с классификацией ЛЛМ будет работать везде (получаем уровень классификации на уровне берта или выше) — значит, он действительно полезен

Сетап обучения: общий рецепт

Оптимизатор и шедьюлер. Во всех экспериментах использовали AdamW с дефолтными параметрами из библиотеки transformers. В качестве шедьюлера — linear_schedule_with_warmup с прогревом на 5% шагов.

Адаптивный Layer-wise Learning Rate Decay. К нижним слоям модели применяем маленький learning rate, к верхним — большой, а для классификационной головы — ещё в 10 раз больше. Идея в том, что нижние слои кодируют общую семантику языка, которую мы не хотим сильно разрушать, а верхние слои и голова должны активнее подстраиваться под конкретную задачу.

Батч и разбиение. Эффективный батч сайз — 32. Разбиение на трейн и валидацию — стратифицированное, чтобы сохранить баланс классов.

Порог. Для задач с бинарным таргетом оставляем фиксированный порог 0.5 — предсказание считается позитивным, если вероятность выше. Убираем шаг с перебором порогов, т.к. проводим эксперименты по обучению ЛЛМ, а не оптимизируем бизнес метрику.

Важный дисклеймер. Мы сознательно не ставили целью выжать максимум из каждой модели и перебрать все возможные гиперпараметры. Задача была другой — сделать proof of concept и понять, сам подход работает или нет. Поэтому тюнинг ограничился количеством эпох и learning rate, а остальные параметры взяли «из коробки». Если потратить больше времени на это, то вполне возможно, что можно выбить еще большие метрики.

Эксперименты

Перейдём к самому интересному — что получилось. Для каждого домена мы прогнали следующий набор моделей:

Берты: RuModernBERT-base, BERTA
ЛЛМ: qwen3-embedding-0.6B, gemma-3-1b-it, Qwen3.5-0.8B. 
Для каждой модели из ЛЛМ два варианта: полный тюнинг и тюнинг LoRA-адаптера. 

1. QMS телемаркетинг: мало данных, мультитаргет

Всего 443 размеченных транскрипта звонков, при 7 критериях проверки оператора, баланс позитивного класса 43%. Тексты длинные — медиана 234 токена, хвост уходит до 1 746. Это один из самых сложных сценариев: «мало данных + сложная семантика».

В таблице ниже приведены значения F1 по каждому из семи критериев (порог фиксированный 0.5).

Модель

hidden_ objection

objection_ disclosure

has_ benefit

objection

argument

benefit_ fit

argument_ fit

Agg F1

RuModernBERT-base

0.66

0.65

0.53

0.77

0.2

0.76

0.71

0.61

gemma-3-1b-it

0.36

0.68

0.74

0.88

0.75

0.88

0.87

0.74

gemma-3-1b-it + LoRA

0.58

0.65

0.72

0.84

0.66

0.82

0.8

0.72

qwen3-embedding-0.6B

0.66

0.76

0.77

0.89

0.74

0.86

0.8

0.78

qwen3-embedding-0.6B + LoRA

0.64

0.75

0.68

0.87

0.75

0.87

0.81

0.77

Qwen3.5-0.8B

0.5

0.60

0.71

0.83

0.66

0.75

0.74

0.68

Qwen3.5-0.8B + LoRA

0.38

0.54

0.7

0.8

0.66

0.82

0.76

0.67

Что видим:

  • В среднем по критериям qwen3-embedding-0.6B — лучший (0.78), на 17 пунктов выше RuModernBERT (0.61).

  • Критерий argument — показательный провал BERT. F1 = 0.20 — модель по сути не научилась определять, привёл ли оператор аргумент. У ЛЛМ на этом критерии 0.66–0.75. Это как раз тот случай, когда для классификации нужно понимать смысл диалога, вылавливать нужные паттерны не получится.

  • По «простым» критериям (objection, benefit_fit, argument_fit) все ЛЛМ выдают 0.80–0.89. Берт уступает примерно на 10 п.п.

  • Тюнинг LoRA-адаптера на малых данных работает неоднозначно: метрики скачут у разных моделей/критериев в зависимости от типа тюна

2. QMS коллекшн: длинные транскрипты, три критерия

Второй сегмент QMS: 1 323 сэмпла, 3 таргета, баланс почти идеальный (47/53). Тексты заметно длиннее — медиана 651 токен, хвост до 3 318. Это полноценные диалоги по взысканию задолженности, где оператор проверяется на аргументирование решения и предложения вариантов урегулирования.

Модель

hidden_ objection

objection_ disclosure

has_ benefit

Agg F1

RuModernBERT-base

0.76

0.54

0.77

0.69

gemma-3-1b-it

0.86

0.63

0.75

0.74

gemma-3-1b-it + LoRA

0.77

0.58

0.82

0.72

qwen3-embedding-0.6B

0.73

0.67

0.79

0.74

qwen3-embedding-0.6B + LoRA

0.78

0.71

0.78

0.76

Qwen3.5-0.8B

0.77

0.60

0.78

0.72

Qwen3.5-0.8B + LoRA

0.72

0.61

0.78

0.70

Что видим:

  • Разрыв между моделями сокращается по сравнению с телемаркетингом: данных втрое больше (1 323 против 443), и BERT подтягивается.

  • Самый сложный критерий — solution (предложил ли оператор решение по задолженности). Здесь разрыв максимален: 0.54 у RuModernBERT против 0.71 у qwen3-embedding + LoRA. Определение «адекватности решения» требует понимания контекста всего диалога — ровно то, где ЛЛМ сильнее.

  • Здесь тюнинг LoRA-адаптера уже работает лучше: для qwen3-embedding LoRA даёт +0.02 по F1 Agg над полным тюнингом

3. Чат-бот 1-й линии

Самая крупная задача с большим количеством интентов и размеченных сэмплов. В проде уже давно работает roberta, и нам было важно понять, может ли ЛЛМ превзойти Берт, когда уже имеется такой объемный корпус для обучения. При этом датасет подразумевает классификацию не только по последнему сообщению клиента в чате, а используя весь контекст (в том числе ответы чат-бота).

Метрики сравнивали на отложенной тестовой выборке, которая наилучшим образом отражает текущее распределение запросов клиентов с ПРОМа.

Модель

Вариант

F1 micro

F1 macro

F0.5 weighted

roberta (прод)

–

0.936

0.80

0.942

gemma-3-1b-it

полный тюнинг

0.950

0.758

0.956

+ LoRA

0.951

0.767

0.958

qwen3-embedding-0.6B

полный тюнинг

0.946

0.759

0.952

+ LoRA

0.939

0.728

0.948

Что видим:

  • По F1 micro и F0.5 weighted ЛЛМ обходят robert’у. Прирост 1.5–2 пункта на 300 тысячах сэмплов — это существенно для прода. Особенно в задаче чат-бота, когда даже небольшой прирост в точности растит автоматизацию.

  • Но по F1 macro roberta впереди. Это значит, что на редких интентах прод-модель всё ещё лучше. ЛЛМ выигрывает на популярных классах, но «хвост» распределения пока проседает.

  • Тюнинг LoRA-адаптера все еще работает неоднозначно: для gemma-3-1b-it LoRA даёт +0.001 по micro и +0.002 по weighted. При этом qwen3-embedding с LoRA значительно проседает по сравнению с полным тюнингом.

4. Открытые комментарии: дисбаланс и короткие тексты

Последний домен в нашем эксперименте и первая мультилейбл задача.

Контекст: ~12000 размеченных комментариев из карточек VoC (Voice of Customer), сегменты ФЛ и ЮЛ в единой модели. Тексты короткие — медиана всего 29 токенов, максимум 154. Пример комментариев:

  • “смс не приходят по 15 минут”

  • “Ребята, разблокируйте нас, пожалуйста!”

  • “высокая процентная ставка”

  • “Спасибо большое ФИО за обслуживание”

Но задача при этом нетривиальная: необходимо одновременно предсказать и тематику комментария и несколько бинарных критериев:

  • Мультилейбл голова: 31 класс тематики комментария (проблемы с картой, жалобы на комиссию, не работающее мобильное приложение и т.д.).

  • Бинарные головы: три флага — тональность комментария (негатив/позитив), необходимость обратного звонка клиенту, необходимость  направления алерта в случае ошибки в процессах/обслуживании.

По бинарным флагам (кроме тональности) имеем сильный дисбаланс: позитив для «необходимо позвонить» — всего 1.1%, для «необходимо отправить алерт» — 2.0% от всех комментариев

Модель

multi_f1_samples

bin_f1_macro, aggregated

BERTA

0.732

0.597

Qwen3-Embedding-0.6B

0.692

0.572

Что видим:

  • BERTA обходит qwen3-embedding по всем метрикам. Для коротких текстов (медиана 29 токенов) богатый претрейн ЛЛМ не даёт преимущества — задача достаточно простая, без богатого контекста энкодерная модель справляется не хуже.

Дистилляция: передаём знания ЛЛМ в лёгкую модель

Результаты получились обнадеживающими, однако разница между «провести эксперимент » и «выкатить в прод» значительная. Особенно, если речь идет про онлайн инференс с высоким требованием к RPS (запросы в секунду) как в чат‑боте, где нужно держать нагрузку в 15 RPS с latency (скоростью) ответа меньше секунды.

И тут важно понимать разницу между классами моделей:

  • BERT‑подобные энкодеры не требуют GPU в принципе. Инференс на CPU занимает до сотни миллисекунд и масштабирование до 15 RPS — несложная задача.

  • Даже самые небольшие ЛЛМ превышают размер BERT-лайк моделей и в идеале требуют GPU и/или серьезных манипуляций по сжатию модели для масштабирования до нужного RPS с ограничением по latency.

То есть ЛЛМ выигрывает по качеству, но проигрывает по стоимости и скорости обработки одного запроса.

Поэтому мы решили пойти в сторону передачи знаний от ЛЛМ к берту, а именно к дистилляции.

Формализовали концепцию Hinton и коллеги в работе «Distilling the Knowledge in a Neural Network» (2015). Идея в том, чтобы обучать компактного «студента» на знаниях большого обученного «учителя». Учитель генерирует не просто жёсткие метки класса, а мягкие вероятностные распределения — логиты, сглаженные температурой. В таких распределениях зашита информация о сходстве классов — так называемое «тёмное знание» (dark knowledge): например, что интент «перевыпуск карты» ближе к «дополнительному выпуску», чем к «балансу по карте». Студент учится воспроизводить эти распределения через KL-дивергенцию, обычно в комбинации с обычным CrossEntropy на истинных метках.

Для BERT-моделей это давно отработанный приём — именно так сжимают сами энкодеры:

  • DistilBERT (Sanh et al., 2019) — 6-слойный студент на 40% меньше и на 60% быстрее BERT-base при сохранении ~97% качества.

  • TinyBERT, MobileBERT — дальнейшие вариации на тему дистилляции внимания и промежуточных слоёв.

  • В русскоязычном сегменте — DistilRuBERT-tiny и аналоги.

  • Наиболее популярный и современный продукт дистилляции — BERTA.

Наш случай отличается от классики лишь одним: учителем выступает не другой BERT, а ЛЛМ, которую мы используем как энкодер.

Сетап дистилляции:

  • Учитель: gemma-3-1b-it, обученная с тюнингом LoRA-адаптера на чат-боте (лучший результат в экспериментах).

  • Студент: BERTA — выбрали из-за скорости обучения самой модели.

  • Лосс: комбинация CrossEntropy (на истинных метках) и KLDiv (на логитах учителя).

  • Температура: 0.1.

  • Вес смешивания лоссов: 0.5 (CE и KLDiv вносят равный вклад).

Результаты (в абзаце «Эксперименты» указаны метрики только на тесте):

Модель

Датасет

F1 micro

F1 macro

F0.5 weighted

BERTA

валидация

0.936

0.899

0.936

тест

0.924

0.743

0.932

BERTA distilled

валидация

0.938

0.904

0.938

тест

0.941

0.774

0.946

Что видим:

  • На валидации прирост минимальный (+0.002 по micro). Объяснили это так: валидация из того же распределения, что и трейн, и ЛЛМ на ней выбивает идентичные метрики с BERTA. Мало сэмплов, где распределения в логитах реально расходятся и учителю есть чему «научить».

  • Вот на тесте прирост уже заметный: +1.5–3 пункта в зависимости от метрики. Дистилляция срабатывает как регуляризатор и помогает студенту лучше обобщаться на данных, слегка сдвинутых относительно обучающей выборки.

Наблюдения по гиперпараметрам дистилляции. Лучшие результаты достигаются при температуре 0.1–1.0. Вес при смешивании лоссов почти не влиял на финальные метрики — мы пробовали разные значения, разница была в пределах шума. Наша гипотеза: BERTA и ЛЛМ уже достаточно близки по логитам на большинстве сэмплов. Сэмплов, где распределения в логитах реально расходятся не так много, и дополнительная регуляризация через вес не даёт значимого эффекта.

Итого дистилляция из ЛЛМ в берт — рабочий инструмент, когда необходимо держать высокий RPS на проме, а воспользоваться GPU нет возможности.

Выводы: когда ЛЛМ-классификатор полезен, а когда лучше оставить BERT

Прогнав эксперименты на четырёх доменах мы пришли к следующему выводу: ЛЛМ с классификационной головой — не универсальная замена BERT, а скорее инструмент под конкретные сценарии.

Ниже наши умозаключения, когда его стоит использовать, а когда неумирающая классика справится лучше.

Когда ЛЛМ реально даёт выигрыш:

  1. Мало размеченных данных — это самый сильный аргумент в пользу ЛЛМ. На 443 сэмплах QMS телемаркетинга qwen3-embedding-0.6B выбивает Agg F1 0.78 против 0.61 у RuModernBERT — разрыв в 17 пунктов. На 1 323 сэмплах коллекшна разрыв сокращается до 5–7 пунктов. На 303 тысячах сэмплов чат‑бота — до 1.5 пунктов. BERT’у на крошечных выборках не хватает данных для полноценного обучения, чтобы выучить все паттерны. ЛЛМ же благодаря своему претрейну быстрее подстраивается под них.

  2. Длинные тексты со сложной семантикой и не тривиальный таргет. Главный инсайт из QMS‑доменов. Критерии проверки оператора часто требуют не матчинга ключевых слов, а понимания логики диалога. Чтобы определить, аргументировал ли оператор возражение клиента или предложил ли решение, адекватное ситуации, нужно удерживать контекст всего диалога и понимать причинно‑следственные связи. Это ближе к рассуждению, чем к классификации — и именно здесь ЛЛМ начинают обходить классические энкодеры.

Когда лучше остановиться на BERT:

  1. Достаточно данных и задача простая. На чат‑боте с 300+ тысячами сэмплов разница между текущей roberta из прода и gemma-3-1b‑it — 1.5 пункта по F1 micro. Разница есть, но не радикальная. Если у вас десятки тысяч размеченных примеров и задача не требует глубокого понимания текста — BERT всё ещё ваш лучший друг.

  2. Короткие тексты с простой структурой. Открытые комментарии — наглядный пример. Медиана текста 29 токенов, и здесь BERTA обходит qwen3-embedding по всем метрикам, потребляя меньше ресурсов. ЛЛМ просто не хватает контекста, чтобы раскрыться на коротких текстах.

Что дальше

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

  • Проверить различные стратегии пулинга. Во всех экспериментах использовался EOS-пулинг по аналогии с классическим CLS токеном. Однако логично предположить, что не все токены одинаково влияют на результаты. Поэтому планируем системно сравнить различные механизмы пулинга.

  • Дополнительный MLM перед fine-tuning. Идея — сначала дообучить бэкбон на задаче маскированного предсказания токенов на доменных данных, и только потом вешать классификационную голову. Подобный подход успешно используется во всех статьях, которые мы упоминали выше.

  • Обучение более толстых ЛЛМ и их дистилляция. Внимательные читатели могли заметить, что в текущих экспериментах мы использовали модели до 1B параметров. Логичное продолжение — взять более крупные модели (например, 7B и выше), дообучить их под классификацию и задистиллировать в лёгкие энкодеры. Больший претрейн даст дополнительные пункты качества на малых данных и сложных критериях, а дистилляция позволит сохранить прод-требования по RPS.

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

Автор: edyanakov

Источник