«Теперь мы запустим своего голосового помощника». Как команда из Физтеха учила Amazon Alexa общаться

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Каждый год американская компания Amazon проводит конкурс на создание разговорного искусственного интеллекта для своего голосового помощника — Alexa Prize Socialbot Grand Challenge 3. Задача — научить Alexa поддерживать естественный диалог с пользователем на свободные темы. 10 командам выдают грант на разработку в $250 тыс. 

В 2019 году в эту десятку впервые попала команда из России — бакалавры, магистры и аспиранты лаборатории нейронных систем и глубокого обучения МФТИ. Они год работали над проектом и стали полуфиналистами конкурса. 

Капитан команды Юрий Куратов рассказал Rusbase, как они не попали на конкурс с первого раза, но зато организовали свой, какую технологию разработали во время соревнования, каким видят будущее голосовых помощников в России и как этот проект вдохновил их создавать собственного ассистента.

«Теперь мы запустим своего голосового помощника». Как команда из Физтеха учила Amazon Alexa общаться

Мы не попали на конкурс от Amazon — и организовали свой

Я начал работать в лаборатории в 2017 году — тогда же Amazon впервые объявил конкурс Alexa Prize. Мы подали заявку, потому что голосовые помощники — очень релевантная для нас тема, плюс соревнование студенческое, а наша лаборатория — при институте. Нас приняли, но без гранта — мы просто могли разрабатывать бота за свой счёт. Увы, пришлось отказаться, потому что без спонсирования не получалось организовать работу. 

Юрий Куратов

Но мы не теряли времени зря. В этом же 2017 году уже наша лаборатория совместно с Facebook организовала свое соревнование по разработке разговорных агентов, но с более узкой специализацией.

Если в Alexa Prize стоит задача просто разработать Socialbot — диалогового агента, который может общаться на какие-то популярные темы, обсуждать новости, спорт, фильмы, то наш агент должен был уметь обсуждать какой-нибудь фрагмент текста вместе с человеком, задавать вопросы и пытаться в этом тексте разобраться. 

Alexa Prize — два года спустя

В 2019 году мы снова решили подать заявку на Alexa Prize — уже с большими надеждами и большим желанием участвовать. Наша лаборатория за эти два года сильно продвинулась в разработке. 

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

На этот раз всё сложилось — мы успешно прошли отбор на конкурс и получили грант. В отборе было 375 заявок из 15 стран, и только 10 команд попали в шорт-лист. Вообще это в основном команды из США, а из Европы до этого была только одна из Чехии, зато три года подряд. 

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

Как мы придумывали бота 

Задача на начало соревнования была сделать MVP, чтобы посмотреть, как пользователи общаются, а потом уже ставить более конкретные задачи. Мы поняли, что у нас нет контента, которым можно было бы делиться, так что начали искать его. Например, чтобы вести разговор о кино, мы искали источники данных про фильмы. Для разговоров на свободные темы находили на Reddit интересные факты, мнения людей. Так что большую часть соревнования мы занимались тем, что готовили бота поддерживать нормальный разговор с пользователем. 

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

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

  • Natural Language Understanding (понимание естественных языков). Такой модуль должен понять, что хочет пользователь, о чём он говорит, и вытянуть из него максимум информации. Распространенный пример — бот, который обрабатывает заказ пиццы. Ему надо понять, какую пиццу привезти, куда и когда, из реплики пользователя. 
  • Dialogue Manager (менеджер диалогов), который отвечает за логику бота. Чтобы нам куда-то привести пиццу, нам нужно спросить куда и какую. 
  • Natural Language Generation (формирование естественного языка) — модуль, который отвечает за построение реплики, которую бот выдаст пользователю. Например, либо задаст вопрос: «А куда вам привезти пиццу?» или скажет: «Хорошо, заказ туда-то – подтверждаете или нет?».

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

Допустим, пользователь просто задаёт вопрос, а бот ему отвечает на него. Это сценарий «вопрос-ответ», короткий, одношаговый. Но у человека и машины может завязаться диалог, тогда три перечисленные компоненты не справляются и нужна дополнительная архитектура. Если скилл ведёт длинный диалог, ему нужна компонента сверху, которая будет контролировать логику. На Dialogue Manager переносить эту задачу неудобно, потому что основной его функционал — это выбирать нужные скиллы, которые должны сейчас ответить. Задача любого скилла — сгенерировать ответ, наиболее подходящий запросу пользователя. После компонента Response Selector выбирает один ответ и осуществляет генерацию текстового ответа пользователю с использованием функций согласования слов на естественном языке. 

Для реализации объединения различных скилов и переключения между ними, а также создания целостной архитектуры у нашей библиотеки есть DP Agent. Всю логику, представленную выше, можно описать внутри DP Agent, который свяжет её и будет передавать от одного компонента в другой. Это и есть наш продукт, он open-source и доступен на github.

Команда

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

Задач было много, и они были разноплановые. Чтобы сделать Socialbot, нужно продумать с инженерной точки зрения, как сделать так, чтобы все работало. А есть задачи более продуктовые — то, как это будет выглядеть для пользователя, какие фичи надо приоритизировать, что нужно сделать в первую очередь. 

Инженерной частью работы преимущественно занимались я и Идрис Юсупов — еще один аспирант. Идрис отвечал за организацию процессов: вбивал митинги, вел в Trello задачи, а я больше техническими вопросами занимался и общими проблемами. Остальные ребята делали эксперименты и разрабатывали самого бота. Задач было много: собирать данные, на их основе обучать модели, придумывать идеи. 

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

Планы на будущее

После конкурса мы планируем развивать DP Agent просто как платформу для создания диалоговых агентов, а ещё — создать собственного диалогового агента, Open Source версию на базе DP Agent, которую назовём в честь нашей команды DREAM Assistant.

В США Alexa от Amazon очень популярна. Люди привыкли, что она у них дома, но общаются в основном на уровне команд: «Алекса, включи музыку, выключи свет» и так далее. Поддерживать диалог она не умеет. Видимо, поэтому Amazon создал этот конкурс — приучает людей, что с ассистентами можно беседовать. Но это моя гипотеза. 

В этом плане в России несколько проще. У нас ещё нет сформировавшейся культуры общения с персональными ассистентами, и у пользователя нет психологического барьера и установки, что к ней можно обращаться только с командами.

Фото предоставлены героем материала


Источник: rb.ru

Комментарии: