Архитектура чат-бота состоит из четырех столпов, и Rasa не поддерживает два
И как выглядит эта архитектура…
Введение
Можно сказать, что традиционно шаботы или диалоговые агенты ИИ составляют четырехколонную архитектуру.
Эта архитектура универсальна для коммерческих платформ чат-ботов; существование:
- Намерения
- Сущности
- Ответы ботов (также известные как скрипт / диалог ботов)
- Управление Sate Machine (Dialog)
Как видно здесь, есть два компонента; компонент NLU и компонент управления диалогами. В случае Microsoft, Rasa, Amazon Lex, Oracle и т. Д. Различие и разделение между ними ясно и четко. В случае с IBM Watson Assistant это не так.
Итак, компонент NLU состоит из намерений и сущностей. Компонент Dialog по ответам ботов и конечный автомат.
Два препятствия на пути к превращению чат-ботов в настоящих агентов ИИ - это намерения и конечный автомат.
- Например, высказывание пользователя сопоставляется с одним намерением.
- Намерениям назначаются точки входа в жестком конечном автомате, на которые бот должен реагировать.
Намерения можно рассматривать как глаголы или намерения пользователя и сущности как существительные (города, даты, имена и т. д.) .
Итак, ясно, что при такой жесткости прогресс серьезно затруднен.
Rasa прекращает поддержку как намерений, так и конечных автоматов ... но почему?
Идеальный сценарий - это когда пользовательский ввод напрямую сопоставляется с историей машинного обучения, которая может учиться и адаптироваться на основе пользовательских разговоров. Нарушение жесткости текущей архитектуры, в которой машинное обучение существует только при сопоставлении пользовательского ввода с намерениями и сущностями.
Амбициозен ли Раса? да. Это обязательно… обязательно!
В этой истории я хочу посмотреть, как выглядят устаревшие конечный автомат и сущности.
Прекращение поддержки конечного автомата
В настоящее время чат-боты считаются реализациями ИИ для общения и машинного обучения. На самом деле ML и AI играют роль только в части NLU / NLP; в некоторой степени.
Управление состоянием разговора, поворотами диалогов и формулировкой бота очень далеки от ML / AI. Фактически это государственная машина; переход из одного состояния в другое на основе фиксированных условий.
Государственное развитие и управление можно разделить на три основных подхода к развитию:
- Собственный код
- Дизайн Холст
- Конфигурация диалога
Подробнее об этом можно прочитать здесь.
Очевидно, это должно измениться, чтобы чат-боты стали настоящими агентами ИИ, а не просто конечными автоматами. Но как будет выглядеть эта новая система управления диалогами?
Истории машинного обучения Rasa
Модель управления диалогом помощника Rasa создается на основе историй, которые используются в качестве обучающих данных. Истории - это на самом деле примеры разговоров, которые ваш пользователь может вести с вашим помощником.
Вот пример двух историй из моего демонстрационного банковского приложения, где пользователю показываются два разных ответа в зависимости от значения намерений и сущностей.
- story: exchange_story_1 steps: - intent: exchange entities: - change_from: "Pounds Sterling" - change_to: "Japanese Yen" - date_time: "Monday" - action: utter_japan - story: exchange_story_2 steps: - intent: exchange entities: - date_time: "Thursday" - action: utter_russia
Интерактивное обучение можно использовать для создания новых обучающих историй, просто поговорив со своим помощником.
Влияние значений сущностей и слотов на диалог можно включать и выключать.
Можно использовать одновременно машинное обучение и политики на основе правил.
Формы все еще можно использовать для сбора данных; с формами может быть интерактивным, разговорным.
Ликвидация может вернуться к форме или нет.
Соблюдаются разговорные данные, и можно обобщить неожиданные пути.
Важно помнить, что истории в вашем файле тренировочных данных должны быть динамичными и охватывать различные диалоги. Чтобы создать готового к работе помощника, вам, вероятно, понадобится как минимум несколько сотен обучающих историй.
Данные обучения играют решающую роль в создании успешного помощника AI. Сколько и каких историй вам нужно, всегда зависит от вашего варианта использования, поэтому важно помнить, для каких пользователей вы разрабатываете своего помощника.
Устарение намерений
Намерения также являются жестким слоем внутри чат-бота. Любой мыслимый пользовательский ввод должен быть предвиден и сопоставлен с одним намерением.
Опять же, список намерений жесткий и фиксированный. Впоследствии каждое намерение связывается с частью предварительно определенного диалога.
Но что, если уровень намерений можно исключить, а пользовательский ввод можно сопоставить непосредственно с диалоговым окном?
Эта разработка имеет решающее значение для перехода от бота для обмена сообщениями к диалоговому интерфейсу AI.
Этот слой намерений также является слоем перевода, который мешает разговору.
Наличие необязательных намерений и параллельное выполнение двух подходов позволяет в разговоре использовать или обходить намерения.
Истории без намерений
Вот один из двух способов рассказать о непреднамеренных историях. Ниже представлен простейший подход; беседа без намерений, живущая в том же учебном файле, что и другие истории, основанные на намерениях.
В явном виде отсутствуют намерение и действие.
- story: No Intent Story steps: - user: "hello" - bot: "Hello human!" - user: "Where is my nearest branch?" - bot: "We are digital! Who needs branches." - user: "Thanks anyway" - bot: "You are welcome. No to branches!"
Ниже вы можете увидеть беседу, которая вызывает эту историю, и отклонения от натренированной истории очевидны.
Следующий шаг - рассмотреть гибридный подход, при котором истории без намерений могут быть добавлены в существующую среду.
Гибридный подход
Глядя на историю ниже, вы увидите название истории, переходящее в название намерения, действие… а затем ввод пользователя перехватывается без какого-либо намерения. Затем следует действие.
- story: account_checking steps: - intent: tiers - action: utter_tiers - user: "just give that to me again?" - action: utter_tiers
Вот разговор с чат-ботом:
Вывод
В целом платформы чат-ботов становятся все более масштабными и функциональными.
Прогресс во многом определяется новыми функциями и улучшениями в разработке и управлении чат-ботами. Часто функциональность дополняет функциональность.
Сопоставьте это с подходом Раса, и это будет подход осуждения.
Rasa отказывается от функциональности и интерфейсов, которые действительно препятствуют достижению цели интеллектуального диалогового агента.