Университет ИТМО. Иван Голубев. Фото: https://vk.com/golubev

Чатбот выпускника Университета ИТМО стал лучшим в конкурсе «Тест Тьюринга»

Чатбот «Соня Гусева», имитирующий поведение четырнадцатилетней девочки, ввел в заблуждение семерых из пятнадцати экспертов и занял первое место в конкурсе «Тест Тьюринга на русском языке» на Startup Village 2015 в Сколково. В течение двух месяцев 69 команд учили ботов проходить тест, предложенный английским математиком Аланом Тьюрингом в середине XX века: машины должны были вести диалог таким образом, чтобы судьи не смогли отличить их от живых собеседников. Бот-победитель с большим отрывом обошел серебряного и бронзового призеров: «Сократ» и «Лиска Лисичкина» смогли ввести в заблуждение только 24% и 19% от общего числа экспертов соответственно против 47% у «Сони». Об особенностях программирования «живого» собеседника рассказывает создатель робота, выпускник факультета компьютерных технологий и управления Университета ИТМО Иван Голубев.

Расскажите, пожалуйста, подробнее об условиях конкурса.

Конкурс проводила компания «Наносемантика», у которой есть сервис по созданию «инфов» – чатботов, и мы создавали своих роботов на базе этой платформы. У каждого участника был доступ к базе знаний, куда можно было вбивать вопросы и ответы на них, доступ к страничке с логами чатов и страница для тестирования. Изначально база знаний робота включала много стандартных фраз, он по умолчанию может реагировать на реплики вроде «Привет», «Пока» и так далее. Еще была возможность переопределить эти фразы – я делал своего робота с нуля, чтобы контролировать стилистику каждого текста, отключил стандартные ответы и писал все сам. По сути, технология у всех была одна, и конкурс заключался в том, кто лучше придумает ответы и сценарии.

Каждый бот провел по 15 разговоров, судьи общались с программами и людьми-волонтерами в течение трех минут через текстовый чат. Затем судьи должны были сделать вывод, говорили они с человеком или программой. Персонажем моего бота была четырнадцатилетняя девочка, которая живет с бабушкой в Петербурге. Для достоверности было нужно придумать множество фактов: как зовут ее родителей, друзей, как она учится, какие школьные предметы любит, а какие – нет, чтобы ответы собирались в одну историю, и создавалось впечатление, что это человек, цельный образ. Моя роль была в том, чтобы создать базу знаний робота, которая состоит из набора правил в виде шаблонов. Если боту задают вопрос, тот совпадает с одним из шаблонов, и на него есть какой-то ответ, бот выдает этот ответ. То есть мне было нужно создать шаблоны и ответы, которые похожи на человеческие реплики и которые соотносятся с легендой персонажа.

А какая легенда у «Сони»?

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

Все эти подробности вы придумали или специально изучали, чем интересуются подростки?

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

Разве подростка имитировать проще, чем взрослого человека? Я бы не сказал, что дети – предсказуемые собеседники.

В этом как раз и заключается плюс с точки зрения конкурса. Когда взрослый отвечает что-то неожиданное, выбивающееся из общей беседы, это вызывает сомнения – почему он вдруг поменял тему разговора? Отвлекся, пытается «троллить» или еще что-нибудь в этом роде? Мне кажется, такие моменты в беседе с ребенком или подростком не вызывают отторжения, такому собеседнику неожиданные моменты можно простить.

И где «Соня» все-таки «прокололась»?

Если человек ставит перед собой задачу вывести робота на чистую воду, пока это не так уж и сложно сделать. Когда он общается непринужденно и не пытается противодействовать диалогу, тогда все в порядке – робот может более-менее корректно отвечать на реплики. Но поскольку это тест Тьюринга, судьи проявляют изобретательность и задают каверзные вопросы, и робот не всегда реагирует адекватно. «Соня», конечно, проявляла находчивость и отвечала, как могла, но все равно иногда ей не хватало убедительности. Хотя даже эти 47% в сравнении с другими, аналогичными конкурсами, – достаточно хороший результат.

Существуют какие-либо стандартные правила для таких конкурсов?

Формальных правил нет. В 1950 году математик Алан Тьюринг размышлял о том, может ли машина думать. Тогда он написал статью, в которой предположил, что через 50 лет вычислительные мощности позволят компьютеру вести диалог так, что в течение 5 минут у среднестатистического собеседника с вероятностью в 30% не получится определить, с кем он говорит – с человеком или с машиной. На основании этой обозначенной границы разные организаторы проводят конкурсы с разным количеством судей, роботов, продолжительностью диалогов, разной интерпретацией. Особенность конкурса на Startup Village в том, что это первый более-менее крупный русскоязычный тест. Все технологии в этой сфере развиваются в англоязычных странах, там больше различных наработок, шире применение, в английском языке другая специфика, фиксированный порядок слов в предложении и так далее. Русским чатботам сложнее: люди, которые готовы делать что-либо в этом направлении, только появляются.

Для чего можно использовать этих чатботов?

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

Беседовал Александр Пушкаш,
Редакция новостного портала Университета ИТМО

Архив по годам:
Пресс-служба