Наш Опыт С Deeppavlov: Голосовой Помощник За 20 Дней И Прием 5000 Звонков На Горячую Линию

Когда было объявлено режим самоизоляции На горячую линию по коронавирусу в Татарстане поступило много вопросов от жителей.

Чтобы разгрузить операторов колл-центра, мы в Центре цифровой трансформации республики совместно с комиссаром по искусственному интеллекту в Татарстане разработали голосового помощника, отвечающего на простые вопросы.



Наш опыт с DeepPavlov: голосовой помощник за 20 дней и прием 5000 звонков на горячую линию

Мы использовали платформу для приема звонков Воксимплант , а для распознавания вопросов и ответов - ДипПавлов .

Голосовой помощник был запущен за две с половиной недели и помог обработать 5000 звонков.

Нам удалось внедрить продукт, который помог жителям Татарстана получить достоверную информацию от властей и просто выйти на улицу.

Ниже мы расскажем, как мы это сделали.



Какова была задача?

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

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

Все, что человек может узнать на сайте госуслуг, можно узнать у Лилии, а также с ней можно просто пообщаться.

Немного предыстории.

С 1 апреля в Татарстане ввели систему СМС-пропусков: чтобы выйти на улицу, нужно было отправить СМС на короткий номер с паспортными данными и указанием целевого номера.

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

Цели постепенно добавлялись и на последнем этапе их стало уже 12. Через неделю после запуска мы добавили в Лилию возможность получения цифрового пропуска.

Татарстан стал первым регионом, в котором можно было получить цифровой пропуск посредством голоса.

Лили умела определять цель исходя из контекста.

Например, человек говорит, что хочет подстричься, а Лилия определяет соответствующий номер цели – «Пойти в парикмахерскую».

.

Помимо выдачи цифровых пропусков, Лилии пришлось отвечать на вопросы жителей Татарстана.

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

В общем, времени на это не было.

Мы подумали, что проще будет сделать голосового помощника (который сможет переводить речь в текст, обрабатывать ее, классифицировать намерения и выдавать голосовой ответ).

Хе-хе.



Как это выглядит со стороны пользователя

Здесь все просто.

  1. Мужчина звонит на горячую линию и просит выбрать между разговором с оператором и Лилией.

    На любом этапе вы можете переключиться на живого оператора.

  2. Лилия предлагает озвучить свой вопрос, и человек его задает.
  3. Лилия отвечает и спрашивает, смогла ли она ответить на вопрос.

    Если ответ неактуален или Лиля не знает ответа на этот вопрос, то она просит его повторить или сформулировать по-другому.



Наш опыт с DeepPavlov: голосовой помощник за 20 дней и прием 5000 звонков на горячую линию



Как обрабатываются звонки

Для приема звонков и реализации сценариев мы использовали платформу Voximplant: написали скрипт и подключили сигнал автоответчика.

Лили поприветствовала мужчину и спросила, чего он хочет. Звонящий задает вопрос по телефону.

Тогда Лили начала прислушиваться.

В VoxImplant мы использовали модуль ASR для перевода речи в текст; он вызывает под капотом модель Yandex.SpeechKit. Таким образом, аудиопоток преобразуется в текст, который затем подвергается токенизации и стеммингу.

Мы также попробовали извлечение признаков: NER, POS и Chunk для базовых методов ML, но все это заняло много времени.



Наш опыт с DeepPavlov: голосовой помощник за 20 дней и прием 5000 звонков на горячую линию

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

Векторное представление сущностей включено в классификатор проблем коронавируса (а позже и государственных услуг).

Сейчас всем этим занимается DeepPavlov. Дальше есть несколько вариантов в зависимости от уровня уверенности:

  1. Если сеть классифицировала вопрос с достаточной уверенностью (по результатам исследования пороги подбирались индивидуально, по классам), то Лилия ответит на вопрос.

  2. Если у сети низкая уверенность в ответе, мы предполагаем, что это вопрос, который мы не осветили в нашем наборе данных (но вопрос все равно относится к области коронавируса) или человек просто хотел поговорить на другую тему.

    Например, он спросил: «Кто такой Илон Маск».

Для таких вопросов мы использовали модель BERT, обученную на дампе Википедии, для задачи ответа на вопросы базы знаний.

В конце Лилия должна проверить правильность распознавания намерения и качество ответа, спросив: «Я ответила на ваш вопросЭ» Если пользователь ответит утвердительно, Лили будет ждать следующего вопроса.

Если нет, мы попросим переформулировать вопрос и пройти весь цикл заново.

Бывает, что это не получается.

Затем в бой вступают живые операторы.

Теперь Лилия говорит приятным голосом синтезатора речи от Яндекса — мы немного изменили тон и увеличили скорость.

Иногда Лилия путает акценты, но это можно исправить с помощью разметки.

Конечно, хотелось бы добавить татарский, но пока это сложно.

В общей сложности проект занял две с половиной недели с учетом датасетов: возникла идея, обсудили проект с министром и, что называется, водоросль.

Неделя ушла на оценку и исследование, еще 10 дней на разработку, затем доработали и добавили дополнительные функции.

Основными лошадками стали Nvidia RTX2070. Для BERT требовалось около 12-16 ГБ видеопамяти.



От LSVM и catboost до DeepPavlov

В процессе разработки мы использовали разные модели классификаторов.

Сначала мы опробовали такие модели машинного обучения, как случайный лес, LSVM, catboost, logreg. В целом точность моделей машинного обучения была не очень высокой.

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

Мы могли бы провести извлечение сущностей, расширение выборки, исследование.

Но мы торопились.

Поэтому мы решили использовать библиотеку DeepPavlov от МФТИ, которая дала точность 78% при логистической регрессии и BERT — 84%.



Наш опыт с DeepPavlov: голосовой помощник за 20 дней и прием 5000 звонков на горячую линию

Точность ответов зависит от разметки наборов данных.

У нас был список из 200 вопросов, которые люди задавали на горячей линии, но они были неправильно разделены.

Например, люди спрашивали, что делать, если кто-то из родственников заболел, и возник вопрос, каковы симптомы коронавируса.

Модели ML запутывались.



Итоги и планы на будущее

Лилия проработала 2 недели и обработала 5000 звонков.

За это время Лилия значительно облегчила работу операторов горячей линии – им не приходилось отвечать на тривиальные и повторяющиеся вопросы.

Благодаря Лилии пользователи получали пропуска, ответы на вопросы и просто общались.

Конечно, были пользователи, которые ругались на нее и просили перевести их на оператора.

Режим самоизоляции снят, цифровые пропуска уже недействительны, но Лилия по-прежнему в строю.

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

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

Со второй задачей прекрасно справляется портал госуслуг – наш, местный, а не федеральный.

Но этот портал представляет собой сайт и приложение, к которым некоторым все еще сложно получить доступ.

И если жители не заходят на портал, то портал пойдет к жителю, то есть мы идем в сторону упрощения взаимодействия с порталом для людей, которые особо не пользуются Интернетом.

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

Пока Лилия может вам сказать, до какого времени работает ЗАГС, и в будущем мы планируем, что она сможет получать показания счетчиков (но это будет только тогда, когда мы решим вопрос с безопасностью передачи этих данных) .

В общем, мы превращаем Лилию в отдельный продукт. Если вы заинтересованы в обучении Лилии, добро пожаловать в нашу команду.

Теги: #Машинное обучение #искусственный интеллект #государство #Большие данные #ASR #Обработка естественного языка #голосовой помощник #deeppavlov #ii #voximplant #yandex voicekit #Татарстан

Вместе с данным постом часто просматривают: