В конце прошлого года мы рассказывали про эксперименты с аудиомодальностью GigaChat, эксклюзивно показывали стенд на нашей конференции. Теперь аудиомодальность GigaChat доступна всем — в веб-интерфейсе giga.chat и Telegram-боте!

Сегодня мы расскажем, почему ушли от классической схемы ASR (Automatic Speech Recognition) + LLM и построили end-to-end модель, которая понимает речь; как устроена наша новая модель; на каких данных мы её обучали; и что из этого получилось.

От ASR + GigaChat к нативной поддержке аудио

Ранее речевые сценарии реализовывались связкой SaluteSpeech ASR и GigaChat Max. Несмотря на фундаментальные модели под капотом SaluteSpeech и регулярную адаптацию сервиса к запросам различной тематики, такой подход имел ряд ограничений:

  • Потеря информации: ошибки ASR неизбежно влияли на точность дальнейшей обработки текста. Например, запрос «чем Tensor Parallelism отличается от Sequence Parallelism» не распознавался корректно и приводил к неудовлетворительному ответу модели 

  • Разрыв модальностей: GigaChat не получал дополнительной информации об эмоциях, интонациях и окружающем контексте, содержащейся в голосе.

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

  • Ограниченные мультиязычные возможности: использование модели распознавания речи снижает возможность работы с языками, которые знает GigaChat, но не поддерживает SaluteSpeech ASR.

Эти проблемы подтолкнули нас к решению обучить модель, воспринимающую речь напрямую.

Архитектура и стадии обучения

Рис. 1. Архитектура аудиомодели

Наша аудиомодель построена на основе следующей архитектуры (Рис. 1):

  • Audio Encoder GigaAM Max: основан на модели GigaAM-v2, которая использует архитектуру Conformer и предварительно обучена с применением HuBERT-подобного подхода. Основные отличия от open-source модели GigaAM-v2: масштабирование количества параметров модели в 2,5 раза, и обучающих данных — в 15 раз.

  • Modality Adapter — модуль для адаптации выходов Audio Encoder’а к внутреннему пространству GigaChat. Он состоит из двух компонентов:

    • Subsampler — parameter-free модуль, который сжимает длину последовательности акустических эмбеддингов в 4 раза путём конкатенации соседних векторов. Это позволяет экономить контекст LLM и эффективно обрабатывать длинные аудиозаписи.

    • Projector — модуль, который преобразует признаки после Subsampler’а и проецирует их в размерность LLM. Простая линейная проекция показала себя лучше сложных архитектур: основную работу выполняет энкодер. 

  • Decoder: GigaChat 2 Max, с применением Low-Rank Adaptation (LoRA) на FFN-слои и матрицы проекций в Self-Attention.

Подробно про Pretrain, SFT и DPO базовой модели мы рассказывали в предыдущей статье «GigaChat 2.0 в API», а здесь сосредоточимся на обучении акустических модулей и совместном обучении GigaChat Audio.

Мы провели обучение в несколько этапов:

  1. Audio Encoder Pre-training. Self-supervised Learning (SSL) на большом объёме неразмеченного аудио (≈700 тысяч часов). Здесь энкодер выучивает фундаментальные закономерности в аудиосигнале. После предобучения веса модели попадают в то состояние, из которого сходимость будет быстрой и к более качественным метрикам. Подробно про методы предобучения в аудио мы рассказывали в предыдущей статье: «GigaAM: класс открытых моделей для обработки звучащей речи». 

  2. Audio Encoder Fine-tuning на задачу распознавания речи (≈100 тысяч часов). Обучение распознавания речи на большом количестве данных позволяет сформировать семантические представления о контенте сигнала на последних слоях. Этот этап значительно ускоряет сходимость, а также позволяет достичь лучших показателей относительно обучения с SSL-энкодером.

  3. Audio and Text Representations Alignment. Используя облегчённый декодер GigaChat Lite, мы проводим согласование представлений аудио-энкодера с латентным пространством языковой модели. Такой «тёплый старт» уменьшает число итераций, требуемых на следующем этапе, и оптимизирует расход GPU-времени.

  4. Audio Supervised Fine-Tuning (SFT): на этом этапе модель адаптируется под форматы, обучается распознавать вызов функций и вести связный диалог на естественном языке.

Данные

Теперь, когда мы разобрались с архитектурой и стадиями обучения, давайте посмотрим, на каких данных обучали и как мы их подготавливали. Основную ценность представляют данные для последнего этапа обучения — Audio Supervised Fine-tuning. Здесь мы подробнее расскажем про их подготовку. 

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

В состав корпуса вошли:

  • Данные для распознавания речи и перевода в виде реальных аудиозаписей и надиктованных текстов. Изначально мы использовали большой объём production ASR-данных, на которых учим CTC-модели для сервисов SaluteSpeech. Это приводило к двум проблемам:

    • Смещение в сторону задачи распознавания. При сложном запросе (шумные условия; иностранный язык, которого было не так много в обучении) модель могла вместо ведения диалога транскрибировать последнюю реплику пользователя.

    • Не такая богатая нормализация и красота распознанного текста. Наши данные для распознавания речи были в формате, который заточен для обучения CTC-моделей: цифры и знаки (%, $, +, …) записаны словами. Аудиомодальность приобретала этот же стиль транскрибации.

    Поэтому мы оставили на этапе Supervised Fine-Tuning только небольшое количество качественных текстов:

    • Распознавание диалогов с разбиением по спикерам.

    • «Красивый ASR» — распознавание речи с широким списком инструкций, которые учитывают пожелания пользователя: форматирование транскрипции в Markdown, добавление метки говорящего, определение его пола, добавление эмодзи, маскирование мата, запись слов-паразитов и многое другое.

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

  • Аудиоаннотации: датасеты с описанием происходящего на аудиофрагментах, с выделением объектов, событий и действий.

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

  • Поддержка function calling: для вызова функций голосом мы адаптировали текстовый датасет. Озвучивание и валидация текстовых запросов производились исполнителями платформы Tagme.

  • Диалоговые данные: для обучения модели ведению диалога мы просили пользователей взаимодействовать с моделью на разнообразные темы как голосом, так и текстом. Пример диалога:

    Role

    Message

    user

    [audio]: Hi, my name is Alex. I'm from Minsk. I'm 9. I go to school 5 days a week. On Monday, on Tuesday, on Wednesday, on Thursday and on Friday. I'm a good pupil. I can read and write well. I can speak English very well too. My favorite lessons are maths and English. But I can't sing well and I don't like music. I come home at 2 o'clock and do my homework. On Monday I rollerblade with my friend Mike. We can rollerblade very well. On Tuesday I ride a bike with my brother. We ride bikes in the park together. On Wednesday I do my homework and then I listen to music with my friend Ann.

    Переведи последнее предложение.

    assistant

    Последнее предложение: «On Wednesday I do my homework and then I listen to music with my friend Ann». Перевод: «В среду я делаю домашнее задание, а затем слушаю музыку со своей подругой Анной».

    user

    [audio]: На каком языке, судя по тексту, хорошо разговаривает Алекс?

    assistant

    Алекс хорошо разговаривает на английском языке. Он сам об этом говорит: «I can speak English very well».

    user

    [audio]: В какое время, во сколько Алекс приходит домой из школы?

    assistant

    Алекс приходит домой из школы в два часа («I come home at two o'clock»).

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

Кроме того, в процессе обучения мы использовали внутренние размеченные датасеты для задач определения пола и возраста, распознавания эмоций, определения шёпота и других production-классификаторов.

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

Обработка длинных аудио

Одна из важных возможностей для Audio conditioned LLM — поддержка длинного аудио-контекста: суммаризация длинных записей, ответы на вопросы. Изначально большинство датасетов в Audio SFT содержали небольшие фрагменты речи (до нескольких минут). Такое распределение в длительности приводило к плохому качеству суммаризации на часовых аудиозаписях, несмотря на текстовые возможности базовой модели на длинных контекстах.

У этой проблемы может быть несколько причин:

  • декодер не обобщается на большое количество аудио-токенов в контексте;

  • энкодер извлекает некачественные аудио-токены из длинных аудиозаписей.

Вторая причина не проявляется в нашем случае, поскольку мы используем Chunk-wise Attention в Conformer Encoder, что ограничивает его receptive field и позволяет обобщаться на длинные контексты. Мы также дополнительно выяснили, что при нарезке входного аудиосигнала на небольшие фрагменты (что позволяет энкодеру работать в том распределении длительностей записей, которое встречалось в обучении) качество суммаризации на длительных аудиозаписях оставалось неудовлетворительным.

Поэтому мы пошли по пути Audio SFT на длинных аудиозаписях. Для этого потребовалось поработать над архитектурой энкодера и режимом обучения. 

Дело в том, что в классической архитектуре Conformer первым модулем используется Convolution Subsampling, который сжимает длину последовательности в несколько раз с помощью двумерных свёрток. При обучении на записях длительностью в несколько часов этот модуль становился узким местом: размер промежуточных активаций на первых слоях занимал всю GPU-память, что не позволяло производить обучение. Подобно архитектуре FastConformer мы пошли по пути облегчения Convolution Subsampling, заменив свёрточные операции с двумерных на одномерные. Это позволило сократить расход памяти примерно в 10 раз и запустить обучение на записях длительностью несколько часов.

Для обучения GigaChat 2 Max Audio на последовательностях небольшой длительности мы использовали Tensor Parallelism (TP), однако его увеличение не позволяло масштабироваться на длинные контексты. Здесь мы дополнительно добавили Sequence Parallelism (SP). Production-модель обучалась в режиме tp=2; sp=4. Таким образом, параметры слоя Self-Attention распределялись по двум видеокартам, а длина последовательности разбивалась на 4 блока. Такое разбиение позволило реализовать вычисления слоя внутри одного узла: синхронизация выполняется с помощью NVLink; нет накладных расходов на операции all-gather и reduce-scatter между разными вычислительными узлами (как в случае tp*sp > 8).

Оценка качества

Субъективные метрики

Поскольку в эксплуатации уже находился сценарий голосового взаимодействия с помощью SaluteSpeech ASR, первым делом мы провели Side-by-Side (SBS) сравнение end-to-end модели GigaChat Audio и модульной системы SaluteSpeech ASR + GigaChat. 

Для этого мы собрали тестовый датасет из multi-turn диалогов: пользователи могли свободно общаться с моделью на интересные им темы и сценарии. В результате мы получили префиксы диалогов, которые можем обрабатывать разными моделями и сравнивать последние реплики. 

Всего в датасет вошло 1200 диалогов. Каждый диалог оценивается тремя AI-тренерами. Помимо сравнения реплик двух моделей AI-тренер пишет комментарий, в котором обосновывает своё решение. Пример интерфейса с результатом оценки приведен на рисунке 2.

Рис. 2. Интерфейс, с помощью которого проводилось side-by-side сравнение.

На рисунке 3 представлено SBS-сравнение GigaChat Audio и SaluteSpeech ASR + GigaChat. Видно, что с большим отрывом выигрывает наша новая end-to-end модель. Мы тщательно проанализировали результаты разметки и выделили причины такого результата:

  • GigaChat Audio отвечает лаконичнее, не утяжеляя ответ дополнительными фактами. ASR+GigaChat добавляет даты, полные имена персонажей, номера сезонов сериалов, вес овощей и т. д., в которых иногда допускает ошибки, за что AI-тренеры штрафуют модель.

  • Часть запросов содержит слова, с которыми не справляется ASR. Например, «Маньпупунёр», «Валар Дохаэрис».

  • Часть запросов содержит полностью английские запросы, с которыми не справляется ASR.

  • Часть запросов направлена на анализ голоса, сцены, слышимости речи. Это принципиально невозможно с помощью ASR+GigaChat. 

Рис. 3. Side-by-side сравнение GigaChat Audio (0.68) и SaluteSpeech ASR + GigaChat (0.32).

Помимо SBS-сравнения мы разработали DLAP-оценку (Dialog LLM Answer Property Evaluation) по следующим срезам:

  • Общее впечатление: комплексная оценка качества ответа с точки зрения удобства восприятия и удовлетворения потребностей пользователя.

  • Красота: оценка структуры и формата ответа, влияющих на лёгкость чтения и восприятия информации.

  • Грамотность: соответствие нормам современного русского языка и отсутствие стилистических и орфографических ошибок.

  • Следование system: соблюдение установленных правил общения с моделью.

  • Контекстность: способность модели учитывать предыдущую беседу и правильно реагировать на контекст.

  • Полезность: эффективность ответа в решении конкретной задачи пользователя.

  • Фактология: точность и достоверность представляемой информации.

Такой подход позволяет сравнивать модели по отдельным показателям, а также находить точки роста. На рисунке 4 представлен интерфейс разметки для одного из заданий. 

Рис. 4. Пример DLAP-оценки диалога одного из AI-тренеров.

Мы проводили DLAP-сравнение на том же наборе диалогов, что и SBS. Результаты показаны на рисунке 5. Для сравнения мы добавили open-source модель Qwen2-Audio-Instruct и проприетарные модели Gemini Flash, Gemini Pro, GPT-4o. Из проведённого сравнения видно, что GigaChat 2 Max Audio превосходит или достигает метрик Gemini Flash и GPT-4o.

Рис. 5. Сравнение диалоговых свойств (DLAP) среди моделей.

Объективные метрики

В предыдущем разделе мы говорили об оценке аудио-возможностей, но перед нами стояла ещё одна важная цель: сохранить фундаментальные базовые свойства модели. Метрики на текстовых запросах не должны значительно деградировать при переходе с GigaChat на GigaChat Audio. Для этого мы проводим сравнение на десятках мировых и внутренних бенчмарков (часть из них показаны в предыдущей статье «GigaChat 2.0 в API»), а здесь для простоты указываем одни из самых известных в сообществе бенчмарков (таблица 1).

Таблица 1:

Benchmark

GigaChat 2 Max

GigaChat 2 Max Audio

IFEval En (0-Shot)

89,63

86,88 (-3%)

IFEval Ru (0-Shot)

83,03

80,52 (-3%)

MMLU En (5-shot)

86,33

85,71 (-0.7%)

MMLU Ru (5-shot)

79,94

80,24 (+0.3%)

Помимо автоматических метрик мы также проанализировали изменение метрик LLM-as-a-judge (Таблица 2). Изменения от добавления аудио-возможностей составили 3-5 %. 

Таблица 2:

Benchmark

Model

Score

95% CI

Arena-Hard-Ru

GigaChat 2 Max

83,5

(-1,3; 1,5)

Arena-Hard-Ru

GigaChat 2 Max Audio

79,5

(-1,0; 0,9)

RuLLMArena

GigaChat 2 Max

82,5

(-2,4; 2,1)

RuLLMArena

GigaChat 2 Max Audio

79,9

(-1,8; 1,4)

Как видно из приведённых выше автоматических и judge-метрик, LoRA-адаптеры, добавленные на этапе Audio SFT, не приводят к существенному искажению весов модели и деградации её базовых возможностей. 

Сценарии использования

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

  • Код голосом: написание кода через голосовое взаимодействие. Например, «Собери Dockerfile для приложения на Python с зависимостями Flask и NumPy. Укажи, как запускать сервер.»:

 

  • Запросы со сложными терминами: может накапливаться ошибка в связке ASR + GigaChat. Например, «Расскажи основные идеи архитектуры Mixture of Experts»:

  • Репетитор и языковое обучение: интерактивные сценарии для изучения языка. Например

    • [audio 1]: «I’ll read a paragraph containing common grammar mistakes, such as mixed tenses and wrong prepositions. Please correct each mistake, explain the grammar rule I violated, and show me an alternative sentence that demonstrates proper usage.»

    • [audio 2]: «Yesterday, I go to the library to found a interesting book about neuroscience. I quickly readed the introduction because it was so exciting. Actually, I have read it last week already, but I forget most of the details. Then I told to my friend for giving me some summary, but she said she didn’t had time to discuss about it. So, I wait for her until late night before going back to home. I didn’t wrote any notes neither, which now I really regrets.»

  • Анализ публичных выступлений. Например: «Вот запись моей презентации. Проанализируй структуру, темп речи, паузы, словесные паразиты и дай советы по улучшению воздействия на аудиторию. https://www.youtube.com/watch?v=O7NSH2SAwRc&t=103s»

  • Анализ записей неречевой природы. Несмотря на то, что модель почти не обучалась на неречевых сигналах, она демонстрирует способность к их интерпретации. Например:«Опиши, что происходит на аудиозаписи. какие звуки ты узнала? https://www.youtube.com/watch?v=8BeVmhFURqc&ab_channel=vaandervik»

Мультимодальность: vision + audio

Ранее мы рассказывали о возможностях GigaChat Vision, а здесь описали подход, который позволил добавить нативное понимание аудио в GigaChat. Каждая из модальностей отлично справляется со своим типом запросов, но у изолированных модальностей есть существенный недостаток: отсутствие мультимодального контекста. Так, пользователь не может отправить изображение и задать к нему уточняющие вопросы голосом — для этого нужна единая модель, которая принимает на вход как изображения, так и аудиофайлы.

Чтобы ещё сильнее приблизить опыт общения с GigaChat к естественному взаимодействию, мы обучили GigaChat Audio+Vision. Как мы видели из анализа текстовых метрик, Audio-адаптеры незначительно влияют на свойства базовой модели. Более того, в сценарии мультимодального общения мы можем активировать Audio-адаптеры только на тех диалогах, которые содержат аудиозаписи. Таким образом, качество работы на диалогах, которые содержат только текст и изображения, останется неизменным.

На рисунке 6 показана схема дообучения GigaChat Vision для добавления аудиовозможностей: в ходе Audio SFT все также обучались только акустические модули и LoRA-адаптеры.

Рис. 6. Дообучение GigaChat Vision для добавления аудиовозможностей.

Мы обучали модальности последовательно, то есть в процессе обучения модель «видела» в контексте либо токены изображений, либо токены аудиозаписей. Несмотря на это, на инференсе заработал мультимодальный контекст.

Для оценки аудиовозможностей мы провели SBS-сравнение (рисунок 7). Результат 48:52 говорит о том, что понимание аудио не ухудшается при обучении с GigaChat Vision декодером.

Рис. 7. Side-by-side сравнение GigaChat Audio+Vision (0.52) и GigaChat Audio (0.48). 

Дополнительно мы оценили изменение Vision-метрик (таблица 3) и текстовых возможностей (таблица 4).

Таблица 3:

Benchmark

GigaChat 2 Max Vision

GigaChat 2 Max Vision + Audio

MMMU-val

58,78

59,33

MMT Bench

63,99

61,94

MTVQA

23,84

23,21

MTVQA Ru

17,14

15,21

Таблица 4:

Benchmark

GigaChat 2 Max

GigaChat 2 Max Vision

GigaChat 2 Max  Vision + Audio

IFEval En (0-Shot)

89,63

85,97

85,80

IFEval Ru (0-Shot)

83,03

79,97

78,89

MMLU En (5-shot)

86,33

86,33

86,30

MMLU Ru (5-shot)

79,94

80,43

81,05

Таким образом, нам удалось создать мультимодальную модель практически без деградации Audio- и Vision-модальностей.

Что дальше?

За год нам удалось перейти от классической схемы ASR + LLM к нативной аудиомодальности в GigaChat. End-to-end подход победил со счётом 68:32 в SBS-оценке и добавил принципиально новые возможности. На аудиозапросах наших пользователей модель вышла на уровень GPT-4o по DLAP при сохранении текстовых метрик.

GigaChat Audio стал возможен благодаря усилиям исследователей, инженеров, аналитиков и команды продукта. Отдельное спасибо командам GigaAM, GigaChat, SaluteSpeech и платформы за вклад в архитектуру, обучение, инфраструктуру и тестирование. Спасибо всем, кто помогал создать модель, которая не только слушает, но и понимает.

Мы продолжаем совершенствовать модель, планируя:

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

  • Масштабирование диалоговых возможностей на новые языки: с моделью можно общаться на свободные темы на русском и английском языках, но мы добавим и другие. В первую очередь, языки СНГ.

  • Создание speech-to-speech модели: это позволит не только понимать, но и нативно генерировать естественную речь с подходящими по контексту интонацией и эмоцией.

Следите за нашими новостями в канале GigaDev! Внедряйте технологию в повседневные задачи с помощью giga.chat и телеграм-бота!