Старшеклассники разработали голосового помощника, понимающего эмоции, на очной программе в «Сириусе». Для общения можно выбрать персонажей с разной жизненной философией.
Участник команды Илья Гринюк рассказал, кому нужен ассистент, записывающий аудиосообщения, и почему с моделью не получится поговорить на откровенные темы.
Три персонажа
— Илья, какую задачу перед вашей командой поставил Тинькофф?
Нам нужно было разработать голосового помощника, который мог бы не просто поговорить с человеком, но и понять его эмоции, поддержать в трудную минуту. В своей работе мы ориентировались на школьников и студентов 12–18 лет, которые не любят обращаться к родителям за советом.
Кроме того, с нашим помощником можно общаться не только текстовыми, но и голосовыми сообщениями.
— Вы брали уже готовое решение или разрабатывали своё?
Мы провели анализ существующих на рынке чат-ботов. Выяснилось, что обычно они способны делать что-то одно: или общаться голосом, или распознавать эмоции.
Мы также не нашли готовые модели, которые могли бы понимать эмоции собеседника по текстовым и голосовым сообщениям. По отдельности способности ИИ ограничены. Ассистенты, анализирующие только текст, не всегда могут распознать сарказм или различные шутки человека. Модели, работающие с аудио, оценивают только интонацию собеседника и не понимают контекст сообщения.
В результате нам пришлось разработать собственную модель, способную распознавать эмоции и по тексту, и по голосу. Данных для обучения стало больше, и это позволило нейросети научиться более точно определять эмоции.
— Не со всеми голосовыми помощниками можно выстроить увлекательный диалог. Что делает вашего ассистента интересным собеседником?
Во-первых, человек может не набирать текст, а записать голосовое сообщение и получить такое же в ответ. На подсознательном уровне это уже воспринимается как осмысленный диалог. Во-вторых, для общения можно выбрать одного из трёх персонажей:у каждого свой характер, манера выражения мыслей и философия. Это привносит разнообразие в диалог.
Например, Олимпия Бетс, капитан команды по квиддичу из Хогвартса, общается с пользователем на равных, как сверстница, постоянно упоминает магию и волшебство. Йодрик, троюродный внук Йоды и наставник джедаев, меняет порядок слов в предложениях. Он подсказывает не ответы на вопросы, а путь к ним. Наконец Капибара, которой больше миллиарда лет, в аудиосообщениях только умиротворённо фыркает, но понять её всё-таки можно: пользователю сразу приходит текстовая расшифровка её речи.
Грустный анекдот
— Чем конкретно вы занимались во время работы над проектом?
Я разрабатывал модуль распознавания эмоций и проводил исследование моделей распознавания текста, чтобы выбрать и использовать в проекте самую подходящую. Плюс я был тимлидом и контролировал работу других участников.
— Какой этап работы в вашем проекте был самым сложным технически?
Труднее всего было объединить все модули бота в одно решение, чтобы оно работало стабильно и без ошибок. На эту задачу мы отвели почти неделю.
Была ещё одна сложность: используемые нами языковые модели обучались на очень большом объёме данных и, соответственно, знали много того, о чём несовершеннолетним говорить пока не следует. Нам нужно было максимально обезопасить продукт, чтобы у школьника не получилось внезапно вывести модель на откровенные разговоры.
Для этого мы выстроили защиту от нежелательных запросов — прописали модели специальные инструкции и подсказки, чтобы генерация текста была более корректной. Процесс создания такого текста называют промптом.
На этапе тестирования мы работали с маленькими языковыми моделями, и неточности в инструкциях приводили к грустным вещам. Например, человеку были нужны слова поддержки, а ИИ рассказывал анекдот, в конце которого все умирали.
Во время написания промпта важно учесть всё самое основное, но при этом не перестараться с текстом. Чтобы понимать контекст, модель должна хранить все инструкции и какой-то кусочек беседы — это позволит не забыть тему через несколько сообщений. Чем больше места занимают различные установки разработчиков, тем меньше остаётся пространства для хранения диалога. Здесь нужно найти золотую середину: частично ограничить модель и не нанести ущерба её памяти.
— Почему вы решили принять участие в очной программе «Сириуса» в этом году?
Мне очень понравилось работать над другим проектом в 2022-м, на аналогичной программе. Я извлёк оттуда просто колоссальный опыт. На сменах школьники работают над задачами, которые редко встретишь в обычной жизни. Ценно и то, что ты прокачиваешь не только hard, но и soft skills, учишься работать в команде.
— Вы планируете связать своё обучение и профессиональную деятельность с областью ИИ-разработок?
Да, это пока единственное направление в разработке и программировании, которое мне интересно. Творческая работа воодушевляет. Мне нравится обучать компьютер тому же, что умеет человек: распознавать эмоции, понимать картинки и текст. Пока я не определился, в какой конкретно области буду развиваться, раздумываю о компьютерном зрении или обработке естественного языка.
— Что вы можете пожелать школьникам, которые будут участвовать в очных программах в будущем?
Желаю получить огромный опыт и проявить себя не только в разработке, но и в работе в команде. Не бойтесь провалов: наставники всегда помогут и приведут вас к заветной цели.
Читайте о другом проекте школьников на очной программе «Сириуса»