Болтать не отвлекаясь. Как мощная нейросеть сделала ответы ассистентов «Салют» человечнее и оригинальнее

Чтобы пользователям было интереснее общаться с виртуальными ассистентами «Салют», мы выделили в отдельный режим наш навык «Собеседник». В нём все остальные навыки отключаются, и это даёт возможность наговориться с нейросетью. Подробнее об этом расскажет руководитель продукта «Собеседник» SberDevices Денис Кирьянов.

Денис Кирьянов

Помогает виртуальным ассистентам Салют стать интересными собеседниками

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

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

Как запустить навык

Просто скажите любому из персонажей: «Давай поболтаем». Виртуальный ассистент предупредит вас, что вы переходите в монопольный режим.

Для выхода из этого режима есть команда «Хватит».

Пообщаться с виртуальными ассистентами Салют можно на любом умном устройстве Sber, в мобильных приложениях Салют или СберБанк Онлайн. А ещё — в телевизорах под управлением Салют ТВ.

Допустим, пользователь говорит: «Какая погода». В обычном режиме ассистент ответит ему прогнозом, а в режиме Собеседника — поговорит с ним о погоде за окном.

Болтать не отвлекаясь. Как мощная нейросеть сделала ответы ассистентов «Салют» человечнее и оригинальнее

Иными словами, Собеседник — это режим, в котором можно свободно беседовать с нейросетью. Чтобы это стало возможным, недостаточно было просто отключить все навыки. «Разговорить» ассистентов нам помогли нейросетевые модели двух типов.

Какие нейросети «под капотом» у Собеседника

Все виртуальные ассистенты Салют могут общаться с пользователем в режиме Собеседника, но делать это они будут по-разному. Всё дело в нейросетевых моделях. Сейчас Джой общается в монопольном режиме на основе генеративной нейросетевой модели ruGPT-3, Сбер — retrieval-модели, а Афина использует обе — либо одну, либо другую. Обе модели отлично понимают пользовательские запросы и выдают ответы, отталкиваясь от контекста. Но разница в том, как формируются ответы, существенная.

Генеративная модель самостоятельно создаёт ответы, а не выдаёт готовые. Проанализировав запрос, она генерирует фразу, которая кажется ей подходящей. Ответы такой модели сложно контролировать — можно лишь дообучать её, что мы и делаем. Наша ruGPT-3 обучена на огромных массивах текста — на терабайтах данных. На старте в датасет входили фрагменты из художественной литературы, Википедии, субтитров и даже программного кода. Но виртуальные ассистенты — персонажи со своими характерами, которые должны «вести себя» определённым образом, поэтому нам этого массива данных не хватило. Ниже я объясню почему.

Генеративные диалоговые модели — это быстро развивающееся во всём мире направление. Ведущие компании — Google и Facebook — создали свои версии диалоговых моделей. Они работают на базе трансформерных архитектур, таких как T5 или GPT-3. У Google это Meena, а у Facebook — BlenderBot. Создатели этих систем использовали оригинальные подходы к их обучению и оценке качества работы. У нашей архитектуры на базе ruGPT-3 тоже есть свои изюминки. Например, мы используем специальную модель-критика. Она выбирает предположительно самый интересный из нескольких вариантов ответов, сгенерированных генеративной трансформерной нейросетью.

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

Такая модель в нынешнем виде чуть более предсказуема, чем генеративная. Поэтому на ней в режиме Собеседника работает Сбер — наш самый нейтральный персонаж. А вот Джой и Афина могут себе позволить больше вольностей. Использование двух разных подходов в рамках одного продукта позволяет нам проводить эксперименты, наблюдать за тем, как ассистенты ведут себя с пользователями, и делать выводы, которые помогут улучшить продукт. Сейчас мы можем буквально одним кликом «переключать» персонажей на ту или иную модель. Например, сделать так, чтобы Сбер тоже использовал генеративную модель.

<p>Примеры диалога c retrieval- и генеративной моделями</p>

Примеры диалога c retrieval- и генеративной моделями

Познакомить нейросети с персонажами и отучить ругаться. Тонкости процесса обучения

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

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

<p>Пример диалога, в котором используются редакторские реплики</p>

Пример диалога, в котором используются редакторские реплики

Так как модели обучены на терабайтах текстов, на старте они «нахватались» плохого. Например, научились ругаться. Джой на одном из тестовых прогонов даже озвучила несуществующее, но явно нецензурное слово. А иногда модели просто выдавали что-то странное, и дело было явно в датасете. Чтобы это исправить, мы, во-первых, изучали данные и убирали оттуда лишнее. Во-вторых, добавляли больше «правильных» текстов, в которых точно не было ошибок.

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

Чтобы ассистент порекомендовал вам кино, достаточно сказать «Посоветуй фильм».

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

<p>Мне ассистенты Салют порекомендовали такой фильм</p>

Мне ассистенты Салют порекомендовали такой фильм

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

Как общение с пользователями сделает Собеседника умнее

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

Благодаря логам мы понимаем, с какими темами ассистенты справляются хорошо, а с какими — пока не очень. А ещё узнаём, что интересно людям. Дообучая модели, мы опираемся не только на логи, но и на актуальную повестку. Например, если грядёт Олимпиада, мы учим модели разговаривать про спорт.

<p>Персонаж Сбер, как выяснилось, спортом не увлекается </p>

Персонаж Сбер, как выяснилось, спортом не увлекается

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

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

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

1212
20 комментариев

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

Да и из тех, кто это юзает, реально вам интересно общаться с роботом и знать его предпочтения в видах спорта? Это всё конечно прикольно и весело, но что-то есть ощущение, что ненужно никому кроме команды разработчиков над этим потеющей)

10

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

3

Присоединяюсь к вопросу. Не смог припомнить ни одного реального применения))

2

Есть. Очень удобно заводить и отключать будильник голосом не вставая с кровати.)

А по поводу общения: не о чем общаться с роботом. Там ничего интересного

1

Здравствуйте! Голосовыми помощниками в России пользуется множество людей, и многим из них нравится просто болтать с виртуальными ассистентами. Например, число пользователей, общающихся с генеративной моделью нашего Собеседника, выросло в четыре раза за последние полгода. Самые долгие беседы состоят из 110—130 сообщений и длятся от 14 до 24 минут 🙂

1

Теоретически это может быть уже сейчас как-то так:

- записывался на приём ко врачу на днях: через сайт не получилось выбрать дату вообще
- звоню в больничку и там меня записывает бот (всё прошло приемлемо)

А звонить вообще надо или лезть на сайт и тыкать там что-то?
Похоже, что уже особого смысла нет.

У всех этих салютов Сбера вроде есть API и разрабы зазывают туда другие компании: по идее, я мог не тыкать сайт и не звонить, а записаться голосом через этих ваших сири/алис и т.д.

Реально, юзаю Алексу, от Амазон, пиздато, спросил, она ответила