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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
20 комментариев
Написать комментарий...
Creo Type

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

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

Ответить
Развернуть ветку
Антон Штадлер

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

Ответить
Развернуть ветку
Shmyax

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

Ответить
Развернуть ветку
Vladislav R

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

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

Ответить
Развернуть ветку
SberDevices
Автор

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

Ответить
Развернуть ветку
Bbya Admin

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

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

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

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

Ответить
Развернуть ветку
SberDevices
Автор

Здравствуйте! Всё верно, только это уже реальность 🙂 Виртуальные ассистенты Салют могут забронировать для вас столик в ресторане, записать к врачу или в салон красоты. Подробнее об этом можно узнать из нашего поста про навык Дуэт: https://vc.ru/services/228380-afina-zabroniruy-stolik-kak-virtualnye-assistenty-sbera-nauchilis-zvonit-v-restorany-i-salony-krasoty-za-vas

Ответить
Развернуть ветку
Андрей

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

Ответить
Развернуть ветку
Мария Новикова

У меня есть СберПортал, и у меня очень много вопросов к разговорам с Салютом. Я не знаю, насколько хорошо он поддерживает интеллектуальные беседы в режиме Собеседника, но он ведь плохо обрабатывает самые простые запросы. Например, на вопрос "сколько времени до конца таймера" он показывает экран с таймерами, но не озвучает время. Запрос "выключи будильник" не обрабатывает (показывает список запущенных будильников), нужно обязательно сказать "убери будильник на такое-то такое-то время". Запрос "какие сейчас пробки" не обрабатывает, отшучивается или вообще ничего не показывает, хотя иногда, если повезет, может показать 2Гис в браузере, а браузер там вообще под тач-устройства не адаптированный.

Больше всего бесят два момента: переход в режим сна и навигация.

Режим сна. СберПортал не переходит в режим сна автоматически, если ему не сказать — будет стоять и светить экраном хоть целый год. Но если ему сказать "Джой, спать" — он не заснет, он спросит "через сколько перейти в спящий режим". И если сказать "Джой, перейди в спящий режим ПРЯМО СЕЙЧАС", устройство тоже не поймет — спросит "через сколько перейти в спящий режим". То есть запрос надо обязательно разделить на два: сначала — команда, потом время.

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

И я уже молчу об управлении музыкой, о том, как Салют понимает запросы зарубежных исполнителей и отрабатывает запрос "запусти такого-то исполнителя".

Я не продвинутый юзер, мне от умного устройства не так много нужно, у меня даже умного дома нет. Я очень люблю СберПортал, потому что он мне скрашивает время пребывания на кухне — не люблю готовить, не люблю убираться на кухне, а с Порталом как-то веселее. Я люблю Джой, но у меня дома стоит еще Яндекс Станция и Капсула, мне есть с чем сравнивать — и я вижу, что речевому интеллекту Салюта еще очень много куда есть расти даже в плане понимания простых команд, что уж говорить о режиме собеседника.

Ответить
Развернуть ветку
Сбер

Спасибо, что поделились с нами опытом. Для нас это бесценно 🙏
Наше семейство виртуальных ассистентов еще молодые, но очень способные. Мы активно обучаем, каждый день они узнают много новой информации. Что касается запроса "Выключи будильник", то ассистенту, действительно нужно уточнение, на какое время нужно отключать будильник, тем более, если их несколько.
Чтобы SberPortal уходил в режим сна, то рекомендуем говорить: "Джой, включи спящий режим."
Вернуться на главный, достаточно сказать: "Джой, вернись на главный экран!" То есть чуть-чуть нужно уточнять 😉
Распознавание зарубежных исполнителей - очень актуальная тема, стараемся улучшить этот функционал 👌
Мы приглашаем вас к нам в сообщество Телеграм для неравнодушных пользователей устройств Sber и ассистентов Салют: @sberdevices_support_bot
Там мы общаемся, делимся впечатлениями и помогаем друг другу 🤗

Ответить
Развернуть ветку
Мария Новикова

Круто, спасибо. А точно такой адрес? Там открывается бот, кроме команды start ничего не умеет

Ответить
Развернуть ветку
Сбер

Упс, сразу кинули ссылку на личку с ботом 😅 Исправляемся: https://t.me/sberdevices_chat

Ответить
Развернуть ветку
Михаил Похеров

Мощнейшая нейросеть

Ответить
Развернуть ветку
Resonone

А в чем прикол если это один в один как у Яндекса уже кучу лет. Все эти фичи преподносятся как что-то новое

Ответить
Развернуть ветку
Erik Gimaletdinov

1 в 1? Алиса совсем с контекстом не дружит, как и большинство других. Вообще не знаю кто это осилил. У меня вся квартира в устройствах Алисы, но отстутствие поддержки контекста все очень сильно портит. Тут судя по скринам как раз это и решается. Пример про яблоки как раз для этого тут.

Ответить
Развернуть ветку
Resonone

Единственное отличие, но согласен. Думаю скоро Яндекс перегонит снова

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex Nikolich

На вопросы про поддержку *любая зарещенная тема* на первый раз отвечает правильно (отрицательно) на второй раз(если спросить: а как ты относишься к предыдущей теме) ответит: положительно и тд. Чёт слабо товарищи, слабо. И персоналити вы так и не сделали нормально.

Ответить
Развернуть ветку
Евгений Новожилов

Предлагаю помимо стоп-слова "хватит" добавить вариант "Ой всё".

Ответить
Развернуть ветку
Lexx Sky

Все жду собеседника Петровича, с которым можно перетереть по душам, обсудить маслание ласточки и в итоге наебениться

Ответить
Развернуть ветку
17 комментариев
Раскрывать всегда