- BrainTools - https://www.braintools.ru -
В конце прошлого года мы рассказывали про эксперименты с аудиомодальностью GigaChat [1], эксклюзивно показывали стенд на нашей конференции. Теперь аудиомодальность GigaChat доступна всем — в веб-интерфейсе giga.chat [2] и Telegram-боте [3]!
Сегодня мы расскажем, почему ушли от классической схемы ASR (Automatic Speech Recognition) + LLM и построили end-to-end модель, которая понимает речь; как устроена наша новая модель; на каких данных мы её обучали; и что из этого получилось.

Ранее речевые сценарии реализовывались связкой SaluteSpeech ASR [4] и GigaChat Max. Несмотря на фундаментальные модели под капотом SaluteSpeech и регулярную адаптацию сервиса к запросам различной тематики, такой подход имел ряд ограничений:
Потеря информации: ошибки [5] ASR неизбежно влияли на точность дальнейшей обработки текста. Например, запрос «чем Tensor Parallelism отличается от Sequence Parallelism» не распознавался корректно и приводил к неудовлетворительному ответу модели
Разрыв модальностей: GigaChat не получал дополнительной информации об эмоциях, интонациях и окружающем контексте, содержащейся в голосе.
Ограничение на длинные аудио: при распознавании длинных аудиозаписей речь нарезается на небольшие фрагменты, что приводит к потере аудио-контекста.
Ограниченные мультиязычные возможности: использование модели распознавания речи снижает возможность работы с языками, которые знает GigaChat, но не поддерживает SaluteSpeech ASR.
Эти проблемы подтолкнули нас к решению обучить модель, воспринимающую речь напрямую.
Наша аудиомодель построена на основе следующей архитектуры (Рис. 1):
Audio Encoder GigaAM Max: основан на модели GigaAM-v2 [6], которая использует архитектуру Conformer [7] и предварительно обучена с применением HuBERT [8]-подобного подхода. Основные отличия от 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 [9]) на FFN-слои и матрицы проекций в Self-Attention.
Подробно про Pretrain, SFT и DPO базовой модели мы рассказывали в предыдущей статье «GigaChat 2.0 в API [10]», а здесь сосредоточимся на обучении [11] акустических модулей и совместном обучении GigaChat Audio.
Мы провели обучение в несколько этапов:
Audio Encoder Pre-training. Self-supervised Learning (SSL) на большом объёме неразмеченного аудио (≈700 тысяч часов). Здесь энкодер выучивает фундаментальные закономерности в аудиосигнале. После предобучения веса модели попадают в то состояние, из которого сходимость будет быстрой и к более качественным метрикам. Подробно про методы предобучения в аудио мы рассказывали в предыдущей статье: «GigaAM: класс открытых моделей для обработки звучащей речи [12]».
Audio Encoder Fine-tuning на задачу распознавания речи (≈100 тысяч часов). Обучение распознавания речи на большом количестве данных позволяет сформировать семантические представления о контенте сигнала на последних слоях. Этот этап значительно ускоряет сходимость, а также позволяет достичь лучших показателей относительно обучения с SSL-энкодером.
Audio and Text Representations Alignment. Используя облегчённый декодер GigaChat Lite, мы проводим согласование представлений аудио-энкодера с латентным пространством языковой модели. Такой «тёплый старт» уменьшает число итераций, требуемых на следующем этапе, и оптимизирует расход GPU-времени.
Audio Supervised Fine-Tuning (SFT): на этом этапе модель адаптируется под форматы, обучается распознавать вызов функций и вести связный диалог на естественном языке.
Теперь, когда мы разобрались с архитектурой и стадиями обучения, давайте посмотрим, на каких данных обучали и как мы их подготавливали. Основную ценность представляют данные для последнего этапа обучения — Audio Supervised Fine-tuning. Здесь мы подробнее расскажем про их подготовку.
Мы подготовили корпус данных объёмом порядка 10 тысяч часов на русском, английском и других языках. При его формировании мы стремились охватить максимально широкий спектр речевых и аудиозадач: от классического распознавания речи до сложных мультимодальных сценариев.
В состав корпуса вошли:
Данные для распознавания речи и перевода в виде реальных аудиозаписей и надиктованных текстов. Изначально мы использовали большой объём production ASR-данных, на которых учим CTC-модели для сервисов SaluteSpeech. Это приводило к двум проблемам:
Смещение в сторону задачи распознавания. При сложном запросе (шумные условия; иностранный язык, которого было не так много в обучении) модель могла вместо ведения диалога транскрибировать последнюю реплику пользователя.
Не такая богатая нормализация и красота распознанного текста. Наши данные для распознавания речи были в формате, который заточен для обучения CTC-моделей: цифры и знаки (%, $, +, …) записаны словами. Аудиомодальность приобретала этот же стиль транскрибации.
Поэтому мы оставили на этапе Supervised Fine-Tuning только небольшое количество качественных текстов:
Распознавание диалогов с разбиением по спикерам.
«Красивый ASR» — распознавание речи с широким списком инструкций, которые учитывают пожелания пользователя: форматирование транскрипции в Markdown, добавление метки говорящего, определение его пола, добавление эмодзи, маскирование мата, запись слов-паразитов и многое другое.
После этих модификаций смещение в сторону задачи распознавания снизилось в десятки раз, а распознанный текст стал гораздо приятнее для восприятия [13] пользователя.
Аудиоаннотации: датасеты с описанием происходящего на аудиофрагментах, с выделением объектов, событий и действий.
Вопросы по аудиоаннотациям: сбор пар аудио и текстовых аннотаций с последующей генерацией диалогов с помощью GigaChat. Вместо аудиофрагментов мы использовали подробные текстовые описания звуковых сцен.
Поддержка function calling: для вызова функций голосом мы адаптировали текстовый датасет. Озвучивание и валидация текстовых запросов производились исполнителями платформы Tagme [14].
Диалоговые данные: для обучения модели ведению диалога мы просили пользователей взаимодействовать с моделью на разнообразные темы как голосом, так и текстом. Пример диалога:
|
Role |
Message |
|
user |
: 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 |
: На каком языке, судя по тексту, хорошо разговаривает Алекс? |
|
assistant |
Алекс хорошо разговаривает на английском языке. Он сам об этом говорит: «I can speak English very well». |
|
user |
: В какое время, во сколько Алекс приходит домой из школы? |
|
assistant |
Алекс приходит домой из школы в два часа («I come home at two o’clock»). |
Длинные аудиозаписи: для возможности суммаризации и ответов на вопросы по длинным аудиозаписям мы собирали соответствующие датасеты. Мы использовали транскрипции аудиозаписей для генерации обучающих данных с помощью текстовой модели, для обучения же использовались только длинные аудиозаписи, короткие инструкции и ответы текстовой модели.
Кроме того, в процессе обучения мы использовали внутренние размеченные датасеты для задач определения пола и возраста, распознавания эмоций [15], определения шёпота и других production-классификаторов.
Отдельно отметим использование синтетических данных: мы адаптировали текстовые датасеты, заменяя текстовые реплики на голосовые с помощью технологий синтеза речи SaluteSpeech. Это позволило существенно расширить количество обучающих примеров для специфических сценариев без лишних расходов на озвучивание текстов людьми и разметку данных.
Одна из важных возможностей для Audio conditioned LLM — поддержка длинного аудио-контекста: суммаризация длинных записей, ответы на вопросы. Изначально большинство датасетов в Audio SFT содержали небольшие фрагменты речи (до нескольких минут). Такое распределение в длительности приводило к плохому качеству суммаризации на часовых аудиозаписях, несмотря на текстовые возможности базовой модели на длинных контекстах.
У этой проблемы может быть несколько причин:
декодер не обобщается на большое количество аудио-токенов в контексте;
энкодер извлекает некачественные аудио-токены из длинных аудиозаписей.
Вторая причина не проявляется в нашем случае, поскольку мы используем Chunk-wise Attention [16] в Conformer Encoder, что ограничивает его receptive field и позволяет обобщаться на длинные контексты. Мы также дополнительно выяснили, что при нарезке входного аудиосигнала на небольшие фрагменты (что позволяет энкодеру работать в том распределении длительностей записей, которое встречалось в обучении) качество суммаризации на длительных аудиозаписях оставалось неудовлетворительным.
Поэтому мы пошли по пути Audio SFT на длинных аудиозаписях. Для этого потребовалось поработать над архитектурой энкодера и режимом обучения.
Дело в том, что в классической архитектуре Conformer первым модулем используется Convolution Subsampling, который сжимает длину последовательности в несколько раз с помощью двумерных свёрток. При обучении на записях длительностью в несколько часов этот модуль становился узким местом: размер промежуточных активаций на первых слоях занимал всю GPU-память, что не позволяло производить обучение. Подобно архитектуре FastConformer [17] мы пошли по пути облегчения Convolution Subsampling, заменив свёрточные операции с двумерных на одномерные. Это позволило сократить расход памяти [18] примерно в 10 раз и запустить обучение на записях длительностью несколько часов.
Для обучения GigaChat 2 Max Audio на последовательностях небольшой длительности мы использовали Tensor Parallelism [19] (TP), однако его увеличение не позволяло масштабироваться на длинные контексты. Здесь мы дополнительно добавили Sequence Parallelism [20] (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.
На рисунке 3 представлено SBS-сравнение GigaChat Audio и SaluteSpeech ASR + GigaChat. Видно, что с большим отрывом выигрывает наша новая end-to-end модель. Мы тщательно проанализировали результаты разметки и выделили причины такого результата:
GigaChat Audio отвечает лаконичнее, не утяжеляя ответ дополнительными фактами. ASR+GigaChat добавляет даты, полные имена персонажей, номера сезонов сериалов, вес овощей и т. д., в которых иногда допускает ошибки, за что AI-тренеры штрафуют модель.
Часть запросов содержит слова, с которыми не справляется ASR. Например, «Маньпупунёр», «Валар Дохаэрис».
Часть запросов содержит полностью английские запросы, с которыми не справляется ASR.
Часть запросов направлена на анализ голоса, сцены, слышимости речи. Это принципиально невозможно с помощью ASR+GigaChat.
Помимо SBS-сравнения мы разработали DLAP-оценку (Dialog LLM Answer Property Evaluation) по следующим срезам:
Общее впечатление [21]: комплексная оценка качества ответа с точки зрения [22] удобства восприятия и удовлетворения потребностей [23] пользователя.
Красота: оценка структуры и формата ответа, влияющих на лёгкость чтения и восприятия информации.
Грамотность: соответствие нормам современного русского языка и отсутствие стилистических и орфографических ошибок.
Следование system: соблюдение установленных правил общения с моделью.
Контекстность: способность модели учитывать предыдущую беседу и правильно реагировать [24] на контекст.
Полезность: эффективность ответа в решении конкретной задачи пользователя.
Фактология: точность и достоверность представляемой информации.
Такой подход позволяет сравнивать модели по отдельным показателям, а также находить точки роста. На рисунке 4 представлен интерфейс разметки для одного из заданий.
Мы проводили DLAP-сравнение на том же наборе диалогов, что и SBS. Результаты показаны на рисунке 5. Для сравнения мы добавили open-source модель Qwen2-Audio-Instruct и проприетарные модели Gemini Flash, Gemini Pro, GPT-4o. Из проведённого сравнения видно, что GigaChat 2 Max Audio превосходит или достигает метрик Gemini Flash и GPT-4o.
В предыдущем разделе мы говорили об оценке аудио-возможностей, но перед нами стояла ещё одна важная цель: сохранить фундаментальные базовые свойства модели. Метрики на текстовых запросах не должны значительно деградировать при переходе с GigaChat на GigaChat Audio. Для этого мы проводим сравнение на десятках мировых и внутренних бенчмарков (часть из них показаны в предыдущей статье «GigaChat 2.0 в API [25]»), а здесь для простоты указываем одни из самых известных в сообществе бенчмарков (таблица 1).
Таблица 1:
Помимо автоматических метрик мы также проанализировали изменение метрик 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. Но гораздо показательнее будет взглянуть на конкретные возможности модели.
Суммаризация видео и аудио: модель способна эффективно выделять главное даже из длинных материалов. Например [28], вот основные мысли из интервью длительностью около двух часов [29]:

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

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

Репетитор и языковое обучение: интерактивные сценарии для изучения языка. Например [32]:
: «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.»
: «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.»

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

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

Ранее мы рассказывали о возможностях GigaChat Vision [37], а здесь описали подход, который позволил добавить нативное понимание аудио в GigaChat. Каждая из модальностей отлично справляется со своим типом запросов, но у изолированных модальностей есть существенный недостаток: отсутствие мультимодального контекста. Так, пользователь не может отправить изображение и задать к нему уточняющие вопросы голосом — для этого нужна единая модель, которая принимает на вход как изображения, так и аудиофайлы.
Чтобы ещё сильнее приблизить опыт [38] общения с GigaChat к естественному взаимодействию, мы обучили GigaChat Audio+Vision. Как мы видели из анализа текстовых метрик, Audio-адаптеры незначительно влияют на свойства базовой модели. Более того, в сценарии мультимодального общения мы можем активировать Audio-адаптеры только на тех диалогах, которые содержат аудиозаписи. Таким образом, качество работы на диалогах, которые содержат только текст и изображения, останется неизменным.
На рисунке 6 показана схема дообучения GigaChat Vision для добавления аудиовозможностей: в ходе Audio SFT все также обучались только акустические модули и LoRA-адаптеры.
Мы обучали модальности последовательно, то есть в процессе обучения модель «видела» в контексте либо токены изображений, либо токены аудиозаписей. Несмотря на это, на инференсе заработал мультимодальный контекст.
Для оценки аудиовозможностей мы провели SBS-сравнение (рисунок 7). Результат 48:52 говорит о том, что понимание аудио не ухудшается при обучении с GigaChat Vision декодером.
Дополнительно мы оценили изменение Vision-метрик (таблица 3) и текстовых возможностей (таблица 4).
Таблица 3:
Таблица 4:
Таким образом, нам удалось создать мультимодальную модель практически без деградации Audio- и Vision-модальностей.
За год нам удалось перейти от классической схемы ASR + LLM к нативной аудиомодальности в GigaChat. End-to-end подход победил со счётом 68:32 в SBS-оценке и добавил принципиально новые возможности. На аудиозапросах наших пользователей модель вышла на уровень GPT-4o по DLAP при сохранении текстовых метрик.
GigaChat Audio стал возможен благодаря усилиям исследователей, инженеров, аналитиков и команды продукта. Отдельное спасибо командам GigaAM, GigaChat, SaluteSpeech и платформы за вклад в архитектуру, обучение, инфраструктуру и тестирование. Спасибо всем, кто помогал создать модель, которая не только слушает, но и понимает.
Мы продолжаем совершенствовать модель, планируя:
Расширение аудио-визуальных сценариев: не только добавляем поддержку мультимодального контекста, но и стремимся к усилению сценариев, в которых присутствует две модальности. Например, описание событий должно стать полнее при наличии как изображения, так и аудиозаписи.
Масштабирование диалоговых возможностей на новые языки: с моделью можно общаться на свободные темы на русском и английском языках, но мы добавим и другие. В первую очередь, языки СНГ.
Создание speech-to-speech модели: это позволит не только понимать, но и нативно генерировать естественную речь с подходящими по контексту интонацией и эмоцией [42].
Следите за нашими новостями в канале GigaDev [43]! Внедряйте технологию в повседневные задачи с помощью [44]giga.chat [2] и телеграм-бота [3]!
Автор: ggospodinov
Источник [45]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/14749
URLs in this post:
[1] эксперименты с аудиомодальностью GigaChat: https://www.youtube.com/watch?v=O7NSH2SAwRc&ab_channel=SaluteTech
[2] giga.chat: http://giga.chat
[3] Telegram-боте: https://t.me/gigachat_bot
[4] SaluteSpeech ASR: https://developers.sber.ru/portal/products/smartspeech
[5] ошибки: http://www.braintools.ru/article/4192
[6] GigaAM-v2: https://github.com/salute-developers/GigaAM
[7] Conformer: https://www.isca-archive.org/interspeech_2020/gulati20_interspeech.pdf
[8] HuBERT: https://arxiv.org/pdf/2106.07447
[9] LoRA: https://arxiv.org/pdf/2106.09685
[10] GigaChat 2.0 в API: https://habr.com/ru/companies/sberdevices/articles/890552/
[11] обучении: http://www.braintools.ru/article/5125
[12] GigaAM: класс открытых моделей для обработки звучащей речи: https://habr.com/ru/companies/sberdevices/articles/805569/
[13] восприятия: http://www.braintools.ru/article/7534
[14] платформы Tagme: https://developers.sber.ru/portal/products/tagme
[15] эмоций: http://www.braintools.ru/article/9540
[16] Chunk-wise Attention: https://arxiv.org/pdf/2303.01037
[17] FastConformer: https://arxiv.org/pdf/2305.05084
[18] памяти: http://www.braintools.ru/article/4140
[19] Tensor Parallelism: https://arxiv.org/pdf/1909.08053
[20] Sequence Parallelism: https://aclanthology.org/2023.acl-long.134.pdf
[21] впечатление: http://www.braintools.ru/article/2012
[22] зрения: http://www.braintools.ru/article/6238
[23] потребностей: http://www.braintools.ru/article/9534
[24] реагировать: http://www.braintools.ru/article/1549
[25] GigaChat 2.0 в API: https://habr.com/ru/companies/sberdevices/articles/890552/#:~:text=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D0%BA%D0%B8
[26] IFEval: https://arxiv.org/pdf/2311.07911
[27] MMLU: https://arxiv.org/pdf/2009.03300
[28] Например: https://giga.chat/link/gcscNrBMbT
[29] интервью длительностью около двух часов: https://www.youtube.com/watch?v=KJ7LpWT0A48&ab_channel=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9
[30] Например: https://giga.chat/link/gcskKSgSLM
[31] Например: https://giga.chat/link/gcsasCtOPX
[32] Например: https://giga.chat/link/gcsqOykLkf
[33] Например: https://giga.chat/link/gcsculCfiH
[34] https://www.youtube.com/watch?v=O7NSH2SAwRc&t=103s»: https://www.youtube.com/watch?v=O7NSH2SAwRc&t=103s%C2%BB
[35] Например: https://giga.chat/link/gcsgenSGHJ
[36] https://www.youtube.com/watch?v=8BeVmhFURqc&ab_channel=vaandervik»: https://www.youtube.com/watch?v=8BeVmhFURqc&ab_channel=vaandervik%C2%BB
[37] рассказывали о возможностях GigaChat Vision: https://www.youtube.com/watch?v=2qi3VyWxMEo
[38] опыт: http://www.braintools.ru/article/6952
[39] MMMU: https://mmmu-benchmark.github.io/
[40] MMT Bench: https://arxiv.org/pdf/2404.16006
[41] MTVQA: https://arxiv.org/pdf/2405.11985
[42] эмоцией: http://www.braintools.ru/article/9387
[43] канале GigaDev: https://t.me/gigadev_channel
[44] : https://giga.chat/
[45] Источник: https://habr.com/ru/companies/sberdevices/articles/904894/?utm_source=habrahabr&utm_medium=rss&utm_campaign=904894
Нажмите здесь для печати.