- BrainTools - https://www.braintools.ru -

Не просто умные — интеллектуальные. Перевели колонки Sber под управление GigaChat 2.0

Не просто умные — интеллектуальные. Перевели колонки Sber под управление GigaChat 2.0 - 1

Cалют, Хабр!

На связи сразу две команды: GigaChat Prod Data и платформы ассистента. В этом году мы объединили наши силы, чтобы вывести интеллект [1] умных колонок Sber на новый уровень благодаря полному переходу на GigaChat 2.0. 

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

— Салют, какой самый популярный альбом Black Sabbath? 

— Paranoid.

— Включи этот альбом и сделай погромче. 

— Включаю Black Sabbath — Paranoid.

Умные колонки с GigaChat 2.0 дают пользователю все возможности генеративных моделей, позволяя адаптировать общение под свои нужды. Например, можно спросить: «Салют, объясни теорию относительности семилетнему ребёнку». Можно попросить дать информацию кратко или в развёрнутом формате. Кроме того, с интеграцией GigaChat появилась возможность кастомизировать общение с колонкой: выбрать не только её голос, но и общение на «ты» или «вы», стиль общения — деловой, неформальный, официальный.

Как ранее работали устройства

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

— Automatic Speech Recognition (ASR) и Text-To-Speech (TTS) — если предполагалось использовать голосовой ввод и озвучивать текст для пользователя. 

—  NLP-платформа, в которую входят различные сервисы для распознавания намерения пользователя (intent recognition) и предобработки текста. 

— Сервисы оркестрации запросов и работы с контекстом и профилем клиента, единый сервис регистрации возможных навыков колонки. 

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

Упрощённо предыдущий пайплайн обработки запроса в колонке выглядел так:

Не просто умные — интеллектуальные. Перевели колонки Sber под управление GigaChat 2.0 - 2

Пользователь делал запрос, например:

— Cалют, включи Black Sabbath.

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

Навык музыки с помощью поиска по базе hi-fi стриминга Звук формировал итоговый ответ: строку, которую услышит пользователь, и ID трека для включения на устройстве. Далее реплика колонки передавалась в TTS, где превращалась в звуковую дорожку, и затем на устройство для озвучивания. Отдельно устройство запрашивало трек для воспроизведения музыки.

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

Как работают умные колонки с GigaChat 2.0

Чтобы дать пользователям новые возможности, мы построили LLM-центричную систему. Так, у нас появилась системная инструкция (system prompt), которая описывает поведение [2] колонок и их базовые возможности.

Не просто умные — интеллектуальные. Перевели колонки Sber под управление GigaChat 2.0 - 3

От навыков мы перешли к функциям. Теперь бэкенды, которые ранее выполняли всю NLP-логику, работают как API: они выполняют только нужную ветку сценария с заданными параметрами. С технической точки зрения [3] каждый навык стал рассматриваться как JSON-схема (далее «функция»), которая содержит детальную инструкцию: когда запускать навык, какие параметры передавать, как формировать ответ для пользователя и как комбинировать несколько функций.

Для перевода умных колонок на GigaChat 2.0 ключевой задачей стало создание универсальной системы-оркестратора. Она не только поддерживает естественное общение, но и самостоятельно управляет навыками. В GigaChat реализован нативный механизм вызова функций. Он анализирует запрос пользователя с учётом всего контекста диалога: промпта, вызовов функций, предыдущих пар запрос-ответ. На базе этой информации GigaChat решает, ответит ли на вопрос самостоятельно или вызовет функцию для получения дополнительного контекста. Точнее, заполняет аргументы функций на основе их описаний и сигнатур, а затем формирует итоговый ответ с учётом данных от бэкенд-системы.

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

Обновлённые умные колонки на GigaChat 2.0 включают в себя три основных компонента. Это навыки — возможность использовать внешнюю функциональность для решения задач человека; болталка — умение интересно и проактивно поддерживать диалог с пользователем; безопасность — предотвращение использования устройства для создания вредоносного или дискредитирующего контента. Каждая из них реализует свою бизнес-логику, но вместе они составляют единый инструктивный датасет для дообучения LLM.

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

1. Разрозненные навыки с их внутренней логикой [4] превратились в единую систему, работающую в общем контексте. Это позволяет избежать типичных для колонок ситуаций, когда они внезапно «забывают» предыдущий запрос. Меняется и коммуникация пользователя с устройством — оно становится полноценным собеседником, способным выполнять более сложные и разнообразные задачи.

Не просто умные — интеллектуальные. Перевели колонки Sber под управление GigaChat 2.0 - 4

2. Механизм мультивызовов позволяет одновременно использовать несколько функций. Это значительно повышает эффективность обработки запросов, делая взаимодействие с колонкой более простым и удобным.

Не просто умные — интеллектуальные. Перевели колонки Sber под управление GigaChat 2.0 - 5

3. Интеграцию новых сценариев удалось значительно упростить благодаря общему интерфейсу для разработки и использованию подхода zero-shot. Добавляя более сложные сценарии с опцией переспроса, работой в контексте и множественными вызовами, мы не только улучшаем качество базовой модели GigaChat, но и снижаем затраты на дальнейшую разработку. Это становится возможным благодаря тому, что всё больше сценариев начинают работать «из коробки» без аналогичных примеров в обучающей выборке модели.

Как обучить LLM использовать новую функцию

Существуют два основных подхода, чтобы добавить новый навык, и оба требуют подробного продуктового и технического описания функциональности. В zero-shot подходе нужно составить подробное описание функции, которое включает её поведение [5] в краевых случаях, ожидаемые значения аргументов и результатов, а также подкрепить [6] описание примерами использования (few-shot). После этого оно передаётся в модель без обучения [7]. Она использует функцию, опираясь исключительно на данные из описания. 

Основное преимущество этого подхода — относительно быстрая реализация, поскольку данные для обучения собирать не нужно. Однако этот подход лучше использовать на больших моделях, таких как GigaChat Max; в общем случае zero-shot подход характеризуется ограниченной точностью из-за возможных ошибок модели в интерпретации функций, особенно если их описание недостаточно чёткое.

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

Поскольку для умного устройства важную роль играет скорость получения ответа (latency), необходимо было использовать относительно небольшую и быструю модель-оркестратор. Подходящим выбором для этого стала квантизованная версия GigaChat 2 Pro. Улучшение качества сценариев происходило исключительно через дообучение, без zero-shot подхода. Кстати, такие данные дополнительно повысили общее качество GigaChat при работе с функциями.

Как GigaChat работает с функциями

В процессе интеграции навыков в GigaChat мы выработали процесс, который проходим для добавления новой функции:

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

2. Создание описания функции. На этом этапе формируется итоговый JSON с описанием, который будет передан в контекст LLM. Мы с учётом всех продуктовых требований создаём полную, но лаконичную инструкцию для GigaChat. Для проверки качества финальной инструкции проводится тестирование в режиме zero-shot.

3. Сбор обучающих диалогов. С помощью нескольких разработанных пайплайнов для предразметки на GigaChat Max мы получаем диалоги всех необходимых типов:

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

  • Ситуации, когда запрос пользователя недостаточно понятен, требуется переспросить.

  • Диалоги, где функция доступна, но её использование не требуется.

  • Примеры, в которых функция нужна, но в данный момент недоступна.

  • Обработка ошибок, возвращённых системой бэкенда.

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

Мы дополнительно собираем диалоги со сложным контекстным взаимодействием пользователя с колонкой. Для этого используем интерактивные проекты создания диалогов на платформе разметки TagMe. На подобных проектах разметчики ведут полноценный диалог с моделью, каждый раз выбирая лучший ответ из нескольких возможных. Кроме того, мы раздали тестовые колонки с GigaChat 2.0 нашим AI-тренерам. Они воспроизводят сложные сценарии взаимодействия, выявляют ошибки и составляют отчёты, то есть фактически проводят ручное тестирование каждой новой версии.

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

5. Обучение и тестирование качества. Полученные данные используются для обучения модели, которая затем тестируется. О метриках расскажем чуть ниже.

Чтобы вместе с GigaChat заработали все нужные функции, нам потребовался отдельный сервис. По замыслу он упрощает модели выбор, возвращая только функции, соответствующие запросу пользователя. 

Для этого мы обучили отдельную модель-ранжировщик; она на основе контекста диалога оценивает, насколько каждая из функций релевантна запросу, и возвращает несколько самых подходящих. Помимо реплик пользователя и колонки, контекст содержит данные о текущем состоянии устройства — настройках будильника, состоянии плеера, таймера, напоминаний… Благодаря этому модель способна не только определить нужную функцию, но и уточнить, что именно хочет пользователь. Например, когда человек просит колонку удалить будильник, GigaChat не должен сразу вызывать соответствующую функцию. В контексте модель видит доступный навык будильника и с опорой на продуктовую инструкцию, заложенную в описании функции, может переспросить, какой именно будильник удалить.

Как умные колонки стали более персонализированными

При переходе на GigaChat 2.0 мы хотели добавить в общение с колонками больше разнообразия и сделать пользовательский опыт [9] по-настоящему уникальным. 

Теперь можно настроить взаимодействие с устройством под себя: выбрать не только голос, но и обращение на «ты» или «вы», стиль общения, который больше соответствует характеру и настроению пользователя. В общей сложности доступно 18 сочетаний настроек. 

Для обучения колонок мы применяли методику supervised fine-tuning — в разном объёме для разных стилей. Потребовалось выделить продуктовые требования к ответам и затем по разным источникам — ключевые сценарии в диалогах с ассистентом. Мы сформировали конфигурацию, которая позволяла получить 5–6 разнообразных ответов. Одна группа AI-тренеров по сценарию формировала различные диалоги, выбирая лучшие ответы на каждом шаге; другая валидировала и классифицировала диалоги на корректность и покрытие определённых сценариев. Если ответы плохо себя показывали по распределению комбинации сценария и стиля ответа, они вновь отправлялись к первой группе на генерацию.

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

Кроме того, переход на GigaChat 2.0 позволил сделать колонку более эмпатичной.  Модель «из коробки» умеет распознавать эмоции [10] по тексту запроса, его сути и контексту диалога, а благодаря дообучению она способна сформулировать ответ с учётом настроения пользователя.

Генерация ответов нейросетью позволила уйти от универсальных предзаписанных фраз и древовидных сценариев, работающих по принципу «если X, то Y». Лексика колонок стала богаче, у них появились эмоции [11] (там, где это действительно нужно). А если они ошибутся, то признают ошибку — и это тоже очень по-человечески.

Как проверить, насколько с колонками комфортнее общаться

Для оценки каждого из компонентов мы разработали набор метрик. Часть из них замеряется автоматически, а остальные с помощью наших AI-тренеров.

Метрики болталки

Эту метрику мы замеряем вручную: AI-тренеры по методологии ALAP (assistant LLM answer properties) размечают диалог и оценивают ответы по различным критериям. Например:

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

Контекстность. Модель понимает, о чём идёт речь в диалоге, не переспрашивает зря и не повторяет длинные ответы и конкретные формулировки, которые уже озвучивала. Всего два варианта оценки: «хорошо» и «плохо».

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

Результаты умных колонок с GigaChat 2.0 сравнительно с предыдущим вариантом

Результаты умных колонок с GigaChat 2.0 сравнительно с предыдущим вариантом

Метрики навыков

Чтобы тестировать использование навыков в обновлённых интеллектуальных колонках, мы используем несколько собственных бенчмарков, собранных в том числе из обезличенных логов. На них мы замеряем классификационные метрики использования навыков. Ниже приведены значения на двух основных корзинах:

  • Recall – на них мы проверяем, что модель корректно вызывает нужную функцию при условии нескольких схожих доступных;

  • FPR (сложные реплики, где использование навыка не требуется) – на них убеждаемся, что модель не использует навык тогда, когда он не нужен.

gpt4o

GigaChat 2 Pro fp8

GigaChat 2 MAX

Recall-корзина

0,86

0,98

0,99

FPR-корзина

0,89

0,98

0,98

За счёт большой обучающей выборки мы смогли достичь сравнимого качества на Pro и Max моделях в большинстве простых кейсов. Однако в сложных контекстных взаимодействиях модель с большим количеством параметров всё же опережает более легковесную версию.

Метрика Goal Completion Rate (GCR)

Чтобы полноценно оценить качество работы умных колонок в реальных условиях, требуется комплексная end-to-end метрика. В нашем случае это GCR, Goal Completion Rate (метрика выполнения целей). Мы замеряем её применительно к нашим трём основным компонентам — навыки, болталка и безопасность — с помощью специально подготовленных сценариев. 

GCR мы тоже замеряем вручную: AI-тренеры проверяют успешность каждого шага в рамках сценария, учитывая качество ответов колонок и корректность работы бэкенда. Это позволяет объективно оценить качество работы устройств в условиях, максимально приближенных к реальному использованию. Если любой из компонентов в сценарии не отработал, кейс получает 0 баллов. Далее мы считаем долю успешных кейсов в сценарии.

Измерения показали, что качество ответов обновлённых колонок на сложные контекстные связки запросов выросло более чем в два раза. Сейчас этот показатель составляет более 80%. С учётом сложности сценариев это очень хороший показатель. Но, разумеется, мы не планируем на этом останавливаться.

Чтобы перевести умные колонки на GigaChat 2.0, наши команды улучшали как сам GigaChat, так и инфраструктуру умных колонок. Именно этот комплексный подход позволил превратить умные устройства в интеллектуальные: научить их естественно общаться, поддерживать долгие и содержательные беседы, креативить, объяснять. Словом, помогать своим владельцам каждый день.

Автор: flu-flu

Источник [13]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/14228

URLs in this post:

[1] интеллект: http://www.braintools.ru/article/7605

[2] поведение: http://www.braintools.ru/article/9372

[3] зрения: http://www.braintools.ru/article/6238

[4] логикой: http://www.braintools.ru/article/7640

[5] поведение: http://www.braintools.ru/article/5593

[6] подкрепить: http://www.braintools.ru/article/5528

[7] обучения: http://www.braintools.ru/article/5125

[8] Ошибка: http://www.braintools.ru/article/4192

[9] опыт: http://www.braintools.ru/article/6952

[10] эмоции: http://www.braintools.ru/article/9540

[11] эмоции: http://www.braintools.ru/article/9387

[12] Впечатление: http://www.braintools.ru/article/2012

[13] Источник: https://habr.com/ru/companies/sberdevices/articles/900694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=900694

www.BrainTools.ru

Rambler's Top100