Архитектура чат-бота состоит из четырех столпов, и 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 отказывается от функциональности и интерфейсов, которые действительно препятствуют достижению цели интеллектуального диалогового агента.