Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии искусственного интеллекта в банковской сфере. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
Глава 6
6.3. Архитектура приложения голосового помощника
Архитектура приложения для голосового помощника со­стоит из четырех основных частей, представленных на рисун­ке 41.
Рис. 41. Архитектура приложения для голосового помощника
1. Устройство, на котором работает виртуальный помощ­ник. Это может быть умная колонка или мобильный девайс с установленным виртуальным помощником.
2. Приложение для виртуального помощника. Приложение запускается внутри самого виртуального помощника. Для за­пуска приложения оно должно быть установлено пользовате­лем и быть загружено в магазин приложений виртуального по­мощника.
3. Инструмент
понимания речи и управления диалогом.
Ключевой элемент архитектуры, реализующий основную ло­гику приложения.
4. Веб-сервер. Реализует бизнес-логику приложения по уп­равлению данными клиента.
101
Технологии искусственного интеллекта в банковской сфере
Рассмотрим подробнее инструмент понимания речи и уп­равления диалогом. Для разработки приложения был исполь­зован фреймворк с открытым исходным кодом Rasa. Фрейм­ворк позволяет понимать пользовательский ввод, управлять ходом диалога и имеет возможность интеграции со сторонни­ми приложениями через открытое API.
Схематично архитектура фреймворка Rasa представлена на рисунке 42.
Рис. 42. Архитектура фреймворка Rasa
Фреймворк работает по следующему алгоритму:
— сначала Фреймворк принимает голосовой запрос поль­зователя;
— Rasa NLU извлекает намерения и сущности из сообще­ния пользователя, преобразует их в вектор признаков, затем передает в диалоговую модель. Вектор признаков — это чис­ловое представление, которое описывает важные характери­стики сообщения;
— диалоговая модель принимает предыдущую историю диалога и
вектор признаков, полученный после преобразования;
модель предсказывает следующее лучшее действие в
диалоге. Если следующее действие требует вызов серверной логики, то происходит клиент-серверное взаимодействие;
— предсказанный ответ отправляется обратно пользователю.
102
Глава 6
Фреймворк состоит из двух основных частей:
1. Rasa NLU. Rasa NLU — это «ухо» приложения, оно по- могает помощнику понять, что говорит пользователь. Rasa NLU принимает пользовательский ввод в форме неструктури-
рованной человеческой речи и извлекает структурированные данные в форме намерений и сущностей.
Намерение — это метки, которые представляют цель или значение конкретного пользовательского ввода. Например, со­общение
«Привет» может иметь метку «приветствие», потому
что значение этого сообщения — приветствие.
Сущности — это важные ключевые слова, на которые дол­жен обратить внимание помощник. Например, сообщение «Ме­ня зовут Александр» содержит имя «Александр». Помощник должен извлечь имя и запомнить его на протяжении всего раз­говора, чтобы поддерживать естественное взаимодействие. Из­влечение
сущностей достигается путем обучения модели рас­познавания именованных сущностей с целью идентификации и извлечения сущностей (в данном примере имен) для не­структурированных пользовательских сообщений.
2. Rasa Core. Основой является компонент управления диалогом. Он решает, как должен реагировать помощник, ос­новываясь на 1) состоянии разговора и 2) контексте. Rasa Core обучается, наблюдая шаблоны разговорных данных между пользователями
и помощником.
Rasa Core использует машинное обучение, чтобы выбрать шаблоны разговоров из примеров разговоров, которые предо­ставляются в качестве обучающих данных. Основываясь на этих шаблонах, помощник может обобщать, позволяя модели прогнозировать следующее наилучшее действие в беседе. Это позволяет модели предоставить соответствующий ответ, даже если беседа не совсем соответствует ни одному из увиденных обучающих примеров.
Важно отметить, что нет необходимости заранее програм­мировать все возможные разговорные ситуации. Необходимо
103
Технологии искусственного интеллекта в банковской сфере
лишь предоставить обучающие данные, содержащие несколь­ко примеров диалога при создании приложения, а затем допол­нить новыми данными непосредственно из реальных взаимо­действий пользователя с приложением. Используя машинное обучение, помощник может совершенствоваться со временем, основываясь на том, что на самом деле говорят пользователи.
Также решающими в разработке приложения являются «по­литики
» диалога, играющие важную роль в поведении диало­га. Некоторые политики довольно просты, например те, кото­рые отражают разговоры, на которых они были обучены, а не­которые довольно сложны, например те, которые полагаются на сложное машинное обучение для прогнозирования следую­щего действия на основе контекста разговора.
Основные политики:
Max_history (Максимальная история)
делает прогноз относительно следующего действия, которое нужно предпри­нять, он не просто смотрит на последнее, что сказал пользо­ватель, а также учитывает то, что произошло в предыдущих разговорных ходах. Параметр max_history управляет тем, на какое количество предыдущих обращений должна смотреть политика при прогнозировании. Это может быть особенно по­лезно, если вы хотите
обучить своего помощника реагировать на определенные шаблоны в пользовательских сообщениях, такие как повторные запросы не по теме. Так что более высо­кая max_history всегда лучше, верно? Не так быстро. Чем вы­ше max_history, тем больше модель, что может вызвать про­блемы с производительностью. Если вам нужно, чтобы ваш помощник запомнил некоторые детали
из дальней части разго­вора, лучше сохранить эти детали в виде слотов, а не устанав­ливать для max_history очень большое число.
Data augmentation. По умолчанию ядро Rasa объединяет случайно выбранные истории в файле данных обучения. Этот процесс называется расширением данных. Увеличение данных используется, чтобы научить модель игнорировать историю разговоров, когда она неактуальна.
104
Глава 6
Memoization Policy (Политика мемоизации) — одна из бо- лее простых политик диалога. В процессе работы извлекается часть разговора, заданная значениями max_history (поэтому, если max_history: 3, 3 возвращается), и находится соответст­вующий фрагмент истории в наборе обучающих данных. Если будет обнаружено совпадение, то предсказывается то же самое следующее действие, замеченное в данных обучения. Полити­ка мемоизации очень полезна
для того, чтобы убедиться, что ваш помощник следит за историями, которые вы указали в своих данных обучения. Он обеспечивает соблюдение шабло­нов и диалоговых путей, которым должен следовать ваш по­мощник, подобно набору правил. Тем не менее, когда совпа­дение не найдено в данных обучения, политика Memoization не может обеспечить следующее
действие. Вот почему Поли­тика мемоизации не предназначена для использования отдель­но — она используется с другими политиками, которые запол­няют пробелы, когда точное совпадение недоступно.
Mapping Policy (Политика сопоставления) — сопоставляет намерение с конкретным действием. Это полезно, когда вы знаете, что за намерением всегда должен следовать опреде­ленный ответ, независимо от того, что
произошло ранее в раз­говоре. Например, если пользователь спрашивает, разговари­вают ли они с ботом в середине разговора, помощник должен всегда отвечать тем же сообщением, не прерывая поток разго­вора.
Keras Policy (Политика Keras) — применяет силу машин­ного обучения к управлению диалогами. Он учится на данных тренировок, и со временем ваш помощник
может научиться справляться со сложными разговорами. Политика использует нейронную сеть, реализованную в Keras, библиотеке глубоко­го обучения Python. Архитектура по умолчанию основана на долговременной кратковременной памяти (LSTM), типе ре­куррентной нейронной сети (RNN), но это можно переопреде­лить в методе Keras Policy model_architecture.
105
Технологии искусственного интеллекта в банковской сфере
Политика Keras учитывает несколько факторов при со­ставлении прогноза, в том числе последнее действие, намере­ния и сущности, извлеченные по модели NLU, слоты, которые были установлены, предыдущие разговорные повороты.
Form Policy (Политика формы) — используется в ситуа- циях, когда помощнику необходимо собрать определенные фрагменты информации от пользователя перед выполнением действия. Например, чтобы помощник мог получать ты поиска для медицинских учреждений, ему необходимо две части информации: тип учреждения и местоположение. Без этого невозможно выполнить поисковый запрос.
Настройка конфигурации политики и параметров тонкой настройки — это мощный способ поднять помощника Rasa на новый уровень.
Тем самым была рассмотрена архитектура приложения для виртуального помощника на базе фреймворка Rasa. На основа­нии полученных знаний приступим к разработке первой его ча­сти, а именно NLU-модуля для спроектированных сценариев.
результа-
6.4. Разработка NLU-модуля и системы управления диалогом
Реализация NLU-модуля с помощью фреймворка Rasa на­чинается с создания двух файлов, необходимых для обучения моделей nlu.md и stories.md.
nlu.md — файл, содержащий примеры обучения модели NLU. Он включает в себя намерения пользователя, которые
являются пользовательскими целями, и примеры реплик поль­зователя, которые представляют эти намерения. В обучающих данных ные ключевые слова, которые виртуальный помощник должен извлечь из примера высказывания.
рии — это примеры сквозных диалогов пользователя с системой.
NLU также должны быть указаны сущности или важ-
Пример файла nlu.md представлен на рисунке 43.
stories.md — файл, содержащий примеры историй. Исто-
106
Глава 6
Рис. 43. Содержание файла nlu.md
Сущности помечены квадратными скобками, и в скобках указан их тип. Например, в файле «nlu.md» для сценария про­верки баланса карты мы создали намерение «balance_di­rect_search», которое представляет запрос пользователя на по­иск данных по балансу. В каждом примере помечены тип бан­ковского продукта, на котором пользователь желает проверить баланс, и тип продукта.
История
— это представление разговора между пользова­телем и AI-помощником, преобразованное в определенный формат, в котором вводимые пользователем данные выража­ются в виде соответствующих намерений (и объектов, где это необходимо), а ответы помощника выражаются в виде соот­ветствующих имен действий. Файл, необходимый для обуче­ния системы управления диалогом Rasa Core, называется ис­торией. Файл stories.md
содержит возможные пути развития
107
Технологии искусственного интеллекта в банковской сфере
диалога, которые могут произойти в приложении. Данный файл необходим для того, чтобы модель правильно обучилась пред­сказывать следующий шаг диалога.
Пример файла stories.md представлен на рисунке 44.
Рис. 44. Содержание файла stories.md
Ключевую роль в разработке системы понимания речи и управления диалогом занимает файл конфигурации config.yml, в котором необходимо указать параметры модели и политики, которые должна использовать модель.
108
Глава 6
Выбранные настройки конфигурации сильно связаны с язы­ком, на котором разрабатывается приложение. Если язык при­ложения английский, то в настройках доступны предобучен­ные модели, реализующие часть логики. Например, распозна­вание имени в предложении. Так как приложение будет до­ступно на русском языке, для которого на текущий момент нет реализованных предобученных моделей
, предоставляемых для
интеграции с Rasa, то обучение будет производиться с нуля.
Пример файла config.yml представлен на рисунке 45.
Рис. 45. Содержание файла config.yml
Обучение модели будет происходить встроенным спосо­бом представления предложения в виде суммы векторов слов, на основе которого будет обучен классификатор. Встроенный классификатор работает на базе TensorFlow. Он не использует предварительно обученные векторы слов и работает на любом языке.
109
Технологии искусственного интеллекта в банковской сфере
Также важно отметить политики, которые использованы в приложении:
KerasPolicy. Использование нейронной сети, реализован­ной в Keras, для выбора следующего действия. Архитектура по умолчанию основана на алгоритме LSTM.
FallbackPolicy. Вызывает действие по умолчанию, если про­исходит хотя бы одно из следующего:
признание намерений имеет достоверность ниже nlu_threshold;
намерение с наивысшим рейтингом достоверно отлича­ется от намерения с наивысшим ранжированием меньше, чем ambiguity_threshold;
ни одна из политик диалога не предсказывает действие с уверенностью выше, чем core_threshold.
MemoizationPolicy. Запоминает диалоги в тренировочных данных. Он прогнозирует следующее действие с уверенно­стью 1.0, если точный диалог существует в данных обучения.
FormPolicy. Расширение MemoizationPolicy, которое обра­батывает заполнение форм.
MappingPolicy. Используется для
привязки намерений
пользователя к действиям приложения. Намерение может быть сопоставлено не более чем одному действию. Бот выполнит сопоставленное действие, как только получит сообщение о на­мерении запуска. После этого он прослушает следующее сооб­щение.
Следующей важной частью разработки приложения для виртуального помощника является проектирование ответов системы и сущностей, которые система
должна обрабатывать.
Для этого в архитектуре Rasa используется файл domain.yml.
Файл domain.yml определяет окружение, в котором рабо­тает виртуальный помощник. В нем должны быть перечисле­ны все намерения пользователя, сущности, слоты и действия, о которых должно знать приложение. Также он может вклю­чать ответы на то, что может сказать бот.
Пример файла domain.yml представлен на
рисунке 46.
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]