Rasa недавно выпустила новый предварительно обученный конвейер для RASA, который называется «pretrained_embeddings_convert» с последней версией, т. е. 1.15. ConveRT — это диалоговые Rпредставления от Ttransformer, а также облегченная модель по сравнению с моделями Transformer. Это модель с двойным кодировщиком, которая использует представления подслов и подходит для диалоговых задач. Подробности о модели можно узнать из статьи https://arxiv.org/abs/1911.03688.

В этом блоге я решил сравнить 3 пайплайна, которые предоставляет RASA.

  • pretrained_embeddings_spacy
  • pretrained_embeddings_convert
  • supervisord_embeddings

Чтобы предоставить краткую информацию о 3 конвейерах, «pretrained_embeddings_spacy» использует предварительно обученные векторы слов из GloVe или FastText. Конвейер «pretrained_embeddings_convert» будет использовать модель ConveRT для извлечения предварительно обученных вложений предложений. «supervised_embeddings» не использует никаких предварительно обученных вложений, а скорее соответствует предоставленным данным.

Я использовал набор данных о намерениях вопроса TREC-6, опубликованный UIUC. Этот набор данных содержит около 5500 вопросов, которые разбиты на 6 основных классов: [LOC’, ‘ABBR’, ‘NUM’, ‘HUM’, ‘DESC’, ‘ENTY’].

Давайте посмотрим, как распределяется набор данных.

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

Краткий обзор обучающих вопросов

Я обучил RASA, используя приведенный выше набор данных, используя настройки по умолчанию и с каждым из трех конвейеров. Результаты, которые были весьма обнадеживающими в пользу ConveRT.

Результаты:

Точность при использовании контролируемых_вложений: 44,6 %

Точность с использованием pretrained_embeddings_spacy: 52,6 %

Точность с использованием pretrained_embeddings_convert: 65,4 %