Восемь вещей, отличающих Rasa от других платформ чат-ботов

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

Вступление

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

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

В этом стремлении к решению проблем разговорного ИИ Rasa стоит особняком во многих областях благодаря своему уникальному подходу.

Вот восемь вещей, которые они делают по-другому, и делают это исключительно хорошо.

1: Легкость доступа

Программное обеспечение

Rasa настолько открыт и великодушен в плане доступа к программному обеспечению и информации ... возникает вопрос, как они зарабатывают деньги? На этот вопрос дан ответ подробно.

Может ли компания Rasa быть агрессивной в коммерческом отношении? Для уверенности. Заработали бы они больше денег? Скорее всего.

Но тогда элементы, которые привлекают так много нынешних пользователей, будут потеряны.

Наша миссия - дать возможность всем разработчикам создавать помощников на основе ИИ, которые будут работать для всех.
Чтобы это произошло, наши инструменты должны быть доступны для всех пользователей, и все пользователи должны иметь полный контроль над своими данными. ~ Раса

С Rasa вам не потребуется специализированное оборудование, графические процессоры и т. Д.

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

Обычно вы можете начать с 15-20 примеров пользовательских высказываний на намерение.

Вам не нужно покупать какое-либо программное обеспечение. Нет необходимости в эксперте NLU / NLP.

Самый эффективный способ начать работу на Windows-машине с Rasa?

  • Установить Anaconda
  • Создайте среду Anaconda
  • Установите Python, ujson, tensorflow, Rasa, Visual C ++,
  • Запустить:
rasa init
rasa train
rasa shell

Затем поговорите со своим ботом через командную строку!

Скрытие сложности

Добавление функциональности в ваше программное обеспечение - настоящее искусство при одновременном упрощении пользовательского интерфейса.

Большинство организаций терпят неудачу в этом.

Большинство сред чат-ботов значительно усложняются по мере развития и добавления функциональности. В качестве примера можно привести консоль Amazon Alexa и особенно Alexa Conversations. Также IBM Watson Assistant.

Прелесть чего-то вроде GPT-3 в простоте и удобстве использования нового API.

Rasa-X и CDD попадают в ту же категорию. По мере роста функциональности Rasa пользовательская среда становится все более упрощенной и интуитивно понятной. Добиться этого - нелегкий подвиг.

Документация

Раса подошел к разговорному ИИ на низовом уровне и начал революцию. Не в коридорах власти и залах заседаний, а с разработчиками, энтузиастами и теми, кто хочет рискнуть.

Раса стала платформой для многих проектов хакатонов.

Это привело к семенным проектам в более крупных организациях, и Rasa набирает обороты почти за счет осмоса.

Документация, учебные пособия, мастер-классы, блоги и форумы… помощи в изобилии и она растет.

Защита разработчиков началась рано и создала среду для экспериментов и обучения.

Люди

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

2. Разработка, основанная на разговоре

Rasa применяет очень инновационный и уникальный подход к постоянному совершенствованию чат-ботов. Такой подход они назвали развитием, основанным на разговоре (CDD). Активатор или инструмент для CDD называется Rasa-X.



Сосредоточение на перекрытии

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

Перекрытие - это то место, где происходят успешные разговоры и где выстраивается конкурентное преимущество вашей организации. Это где ценность вашего набора данных.

Rasa-X - идеальный инструмент для увеличения перекрытия с самого начала.

Мобильные приложения по сравнению с чат-ботами

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

Затем этот крутой склон лучше всего преодолевать, сосредоточившись на разговорах и улучшая чат-бота с точки зрения разговоров.

В большинстве сред NLU есть инструменты для улучшения разговорной речи. Эти инструменты часто характеризуются следующими чертами:

  • Высокий уровень
  • Статистический подход
  • Масса
  • Ориентация на показатели
  • Трудно управлять

После того, как вы нажали все рычаги и настроили настройку, вы развертываете свою модель и ждете, затаив дыхание, чтобы увидеть результаты.

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

3: Развивающиеся сущности

Контекстуальный и составной

Одной из сильных сторон Расы всегда были составные и контекстные сущности.

Намерения можно рассматривать как глаголы, а сущности как существительные. Фраза "заполнение слота" также относится к захвату объектов.

Контекстуально означает, что сущности не распознаются чат-ботом при непосредственном запросе ввода у пользователя или обнаруживаются с помощью конечного списка поиска. Но скорее сущности обнаруживаются на основе их контекста в высказывании или предложении.

Это ближе к тому, как мы, люди, обнаруживаем сущности в разговоре.

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

Это означает меньшее количество диалогов и более эффективный чат-бот.

Роли сущностей Расы

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

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

## intent:travel_details
- I want to travel by [train](travel_mode) from [Berlin](from_city) to [Stuttgart](to_city) on [Friday](date_time)

Это не изящно, поскольку для одного объекта реального слова, а именно города, необходимо создать несколько сущностей.

В этом примере у города есть две роли: город отправления и город прибытия. С помощью Rasa вы можете определить эти объекты с конкретными ролями в файле nlu.md вашего проекта.

## intent:travel_details
- I want to travel by [train](travel_mode) from [Berlin]{"entity": "city", "role": "depart"} to [Stuttgart]{"entity": "city", "role": "arrive"} on [Friday](date_time)

Результат выглядит так:

I want to travel by train from Berlin to Stuttgart on next week Wednesday.
{
  "intent": {
    "name": "travel_details",
    "confidence": 0.9981381893157959
  },
  "entities": [
    {
      "entity": "travel_mode",
      "start": 20,
      "end": 25,
      "value": "train",
      "extractor": "DIETClassifier"
    },
    {
      "entity": "city",
      "start": 31,
      "end": 37,
      "role": "depart",
      "value": "Berlin",
      "extractor": "DIETClassifier"
    },
    {
      "entity": "city",
      "start": 41,
      "end": 49,
      "role": "arrive",
      "value": "Stuttgart",
      "extractor": "DIETClassifier"
    }
  ],
  "intent_ranking": [
    {
      "name": "travel_details",
      "confidence": 0.9981381893157959
    },

Группы сущностей Расы

Эта функция позволяет группировать объекты вместе с определенной меткой группы. Лучше всего это объяснить на примере ...

Опять же, определено в вашем файле /data/nlu.md:

## intent:teams
- The first team will be [John]{"entity": "teamMember", "group": "1"}, [Mary]{"entity": "teamMember", "group": "1"} and [Geoff]{"entity": "teamMember", "group": "1"} and the second group
to travel will be [Martha]{"entity": "teamMember", "group": "2"}, [Adam]{"entity": "teamMember", "group": "2"} and [Frank]{"entity": "teamMember", "group": "2"}.

И вывод Rasa NLU:

The first team will be John, Mary and Geoff and the second group to travel will be Martha, Adam and Frank.
{
  "intent": {
    "name": "teams",
    "confidence": 0.9999754428863525
  },
  "entities": [
    {
      "entity": "teamMember",
      "start": 23,
      "end": 33,
      "group": "1",
      "value": "John, Mary",
      "extractor": "DIETClassifier"
    },
    {
      "entity": "teamMember",
      "start": 38,
      "end": 43,
      "group": "1",
      "value": "Geoff",
      "extractor": "DIETClassifier"
    },
    {
      "entity": "teamMember",
      "start": 83,
      "end": 95,
      "group": "2",
      "value": "Martha, Adam",
      "extractor": "DIETClassifier"
    },
    {
      "entity": "teamMember",
      "start": 100,
      "end": 105,
      "group": "2",
      "value": "Frank",
      "extractor": "DIETClassifier"
    }

Следует отметить… Как правило, структуры данных вводятся в Entities. Сущности могут иметь под-под-сущности и могут быть разложены. Эта тенденция видна в Rasa, инструменте Alexa Conversations и Microsoft LUIS. Раса называет это Entities Roles & Groups. AWS называет это слотами со свойствами. И Microsoft LUIS, объекты, которые можно разложить.

4: Прекращение поддержки государственной машины

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

Второй, но наиболее важный - это конечный автомат, поток диалога или также называемая системой управления диалогом. Это дерево узлов с блоками решений на каждом узле, которые определяют, куда должен идти диалог, на основе набора условий.

Это ахиллесова пята платформ чат-ботов. Это единственный элемент, который ограничивает гибкость и отказоустойчивость чат-бота. В то время как другие поставщики платформ пытаются оптимизировать управление состоянием диалогов, Rasa делает обратное. Они осуждают это.

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

Rasa использует машинное обучение для изучения разговорных шаблонов и прогнозирования реакции; на основе контекста и т. д. Данные обучения представлены в виде примеров разговоров, определенных в простом формате.

5: языковой агностик

Крупные поставщики облачных чат-ботов предусматривают набор языков. Эти языки выбираются исходя из коммерческого смысла. Второстепенный региональный язык не может быть реализован. И для значительной части рынка это требование.

Пример конвейера Rasa для любого неанглийского языка:

language: "xx"  # your two-letter language code
pipeline:
- name: WhitespaceTokenizer
- name: RegexFeaturizer
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
  analyzer: "char_wb"
  min_ngram: 1
  max_ngram: 4
- name: DIETClassifier
  epochs: 100
- name: EntitySynonymMapper
- name: ResponseSelector
epochs: 100

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

С Rasa вы можете обучить своего чат-бота владению любым языком по вашему выбору. Или вы можете использовать вложения BytePair с доступом к 275 языкам.





6. Простота конфигураций и изменений в конвейере

Итерации экспериментов и быстрых тестов упрощаются по следующим причинам:

  • Установка через виртуальные среды (например, Anaconda)
  • Запуск нескольких виртуальных сред
  • Быстрая установка
  • Минимальные данные для обучения и короткое время обучения
  • Список моделей и опций
  • Примеры конвейера и конфигурации

Вы можете полностью настроить конвейер NLU, объединив компоненты в файле config.yml. Вы можете изменить это на лету, чтобы проверить производительность. Таким образом, вы можете выбрать начальную точку и оттуда настроить и отрегулировать свою конфигурацию.

Это большое преимущество использования Rasa, возможность настраивать конфигурации и параметры и впоследствии тестировать производительность.

7: Специализированные или преданные своему делу люди не требуются

Rasa демократизирует доступ к программному обеспечению, ресурсам и обучению NLU. Как упоминалось ранее, хотя Rasa становится более сложным и загруженным функциями, их пользовательский интерфейс упрощается.

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

8: Полный контроль над вашими данными

Когда дело доходит до ваших данных, необходимо учитывать два аспекта. Во-первых, где размещены ваши данные. В некоторых странах действует законодательство, запрещающее хранение личных данных за пределами страны. Облачные провайдеры предлагают широкий выбор географических и периферийных местоположений.

Второй аспект заключается в том, что организации NLU / P хотят, чтобы вы «передавали» свои данные. Модели, которые они строят с вашими данными, не на 100% находятся под вашим контролем.

Требуется технико-экономическое обоснование, месяцы сбора данных и т. Д. И т. Д.

Rasa позволяет устанавливать где угодно; вы можете начать на своем ноутбуке, если хотите. Для запуска процесса требуются минимальные данные, и непрофессионалы могут быть обучены и обучены «работать с ним»…

Заключение

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

Вот почему я считаю подход Расы реалистичным, честным, открытым и долгосрочным.