Habr AI→ оригинал

Whisper и Gemma 3 связали контрастивным обучением для дешёвого голосового ввода в LLM

Экономно добавить голос в LLM оказалось сложнее, чем обещают пейперы. Автор связал Whisper Medium и Gemma 3 4B через MLP-проектор, перебрал teacher forcing, LoR

Whisper и Gemma 3 связали контрастивным обучением для дешёвого голосового ввода в LLM
Источник: Habr AI. Коллаж: Hamidun News.

Экономный способ добавить голосовой вход в LLM оказался не таким простым, как обещают многие работы по мультимодальности. Автор эксперимента попытался связать аудиоэнкодер Whisper и языковую модель Gemma 3 через компактный проектор и после серии неудач пришёл к рабочей конфигурации с контрастивным обучением.

Как собрали стек

Идея была простой: не обучать дорогую мультимодальную систему с нуля, а взять готовый аудиоэнкодер, готовую LLM и соединить их «переводчиком» между пространствами эмбеддингов. В качестве энкодера выбрали Whisper Medium, потому что его внутренние представления лучше заточены под распознавание речи, чем у self-supervised альтернатив. На стороне текста использовали Gemma 3 4B, а роль моста выполнял двухслойный MLP-проектор, который сжимал и переводил аудиовекторы в пространство эмбеддингов LLM.

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

Иначе любое отклонение — шум, пауза или русский фрагмент — сразу ломало бы распознавание.

  • LibriSpeech train.360 как основа корпуса LibriSpeech train.100 как дополнительный чистый английский Russian LibriSpeech для русской речи * DisfluencySpeech с паузами, оговорками и заиканиями ## Почему всё ломалось Первая ставка была на самый очевидный рецепт: teacher forcing и обычную cross-entropy по транскрипции. На вход LLM подавались инструкция, аудиовекторы и правильный текст, а лосс считался только по токенам ответа. На практике схема почти не слышала запись: модель выдавала несвязные фрагменты, а WER мог застревать около 300%. Даже после добавления LoRA стало ясно, что проблема глубже — проектор не приносил аудиосигнал туда, где языковая модель умеет его читать. У Gemma оставался слишком сильный prior на привычную геометрию текстовых токенов. Дальше началась серия точечных исправлений. Автор добавил нулевую стадию, где Gemma сначала просто училась переписывать текст по инструкции, потому что использовалась не instruction-tuned версия. Затем пошли эксперименты с квантизацией и регуляризациями: commitment loss должен был держать выходы проектора рядом с известными эмбеддингами, SWD — подтягивать распределения аудио- и текстовых векторов, entropy loss — заставить систему использовать больше кодов, а VICReg — не давать схлопываться отдельным координатам. Визуализации t-SNE помогли увидеть две главные болезни: коллапс представлений и геометрический разрыв между аудио- и текстовым пространствами. Но каждая новая настройка лечила только один симптом. SWD улучшал форму распределения, не улучшая содержание. Entropy loss расширял использование кодов, но делал это случайно. VICReg повышал дисперсию, однако векторы разбегались хаотично. Система снова и снова находила обходной путь, при котором метрики локально выглядели лучше, а реального распознавания не появлялось. Это и стало главным уроком этапа с регуляризациями: при слабом основном сигнале модель оптимизирует математику, а не смысл.

Что сработало в итоге

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

С большим батчем это сработало заметно лучше: график лосса стал падать ровно и без резких скачков, а WER снизился до 35%. До уровня коммерческих ASR-систем такой результат пока не дотягивает, но это уже не случайный шум. В логах модель начала ошибаться фонетически правдоподобно: она улавливала звучание слов и путалась скорее как человек с плохим слухом, чем как сломанный генератор текста.

Для первого прохода это важнее абсолютной цифры WER: система перестала имитировать ответ и начала реально использовать звук. Именно это автор считает главным признаком прогресса.

«Но главное, что она уже слышит».

Что это значит

Этот кейс хорошо показывает, что дешёвая аудио-модальность для локальных LLM возможна, но не через «магический» MLP-проектор из пейперов. Простая связка готового энкодера и LLM начинает работать только тогда, когда между ними появляется сильный сигнал выравнивания. Для разработчиков это важный вывод: если хочется добавить голос в собственную модель без дорогостоящего обучения с нуля, контрастивный этап может оказаться не опцией, а обязательным фундаментом.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 400+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
Загружаем комментарии…