В Rasa сме развълнувани да направим модерната технология за машинно обучение достъпна в удобен за разработчици работен процес. С Rasa 1.8 нашият изследователски екип пуска нова модерна лека, многозадачна архитектура на трансформатора за NLU: Dual Intent и Entity Transformer (DIET).

представяме

В тази публикация ще говорим за функциите на DIET и как можете да го използвате в Rasa, за да постигнете по-голяма точност от всичко, което сме имали преди. Пускаме академична статия, която демонстрира, че тази нова архитектура подобрява текущото състояние на техниката, превъзхожда фино настройката BERT и е шест пъти по-бърза за обучение.

Какво е диета

DIET е многозадачна трансформаторна архитектура, която обработва едновременно класификацията на намеренията и разпознаването на обектите. Той предоставя възможност за включване и възпроизвеждане на различни предварително обучени вграждания като BERT, GloVe, ConveRT и т.н. В нашите експерименти няма нито един набор от вграждания, който да е постоянно най-добър в различните набори от данни. Следователно модулната архитектура е особено важна.

Защо да използваме диета

Мащабните предварително обучени езикови модели не са идеални за разработчици, изграждащи разговорни AI приложения.

DIET е различен, защото:

  • Това е модулна архитектура, която се вписва в типичен работен процес за разработване на софтуер
  • Паралелира мащабни предварително обучени езикови модели в точност и производителност
  • Подобрява текущото състояние на техниката и се обучава 6 пъти по-бързо

Мащабните предварително обучени езикови модели показаха обещаващи резултати по отношение на еталоните за разбиране на езика като GLUE и SuperGLUE, и по-специално, показаха значителни подобрения спрямо други методи за предварително обучение като GloVe и контролирани подходи. Тъй като тези вграждания се обучават в мащабни текстови корпуси на естествен език, те са добре подготвени за обобщаване на различни задачи.

Миналата година помогнах за изграждането на помощник в бюрото за помощ, който автоматизира разговори и повторяеми ИТ процеси. Интегрирахме асистента с BERT, тъй като по това време BERT и други големи езикови модели постигнаха върхови резултати при различни NLP задачи. Въпреки че помогна за разрешаването на някои проблеми, BERT представи и свои собствени предизвикателства; наистина беше бавен и се нуждаеше от графичен процесор, за да тренира.

Мащабните модели са склонни да изискват изчисления, да отнемат много време и да представляват прагматични предизвикателства пред разработчиците на софтуер, които искат да изградят стабилни асистенти за изкуствен интелект, които могат бързо да бъдат обучени и повторени. Освен това, ако изграждате многоезични асистенти за ИИ, важно е да постигнете високо ниво на ефективност без мащабно предварително обучение, тъй като повечето предварително обучени модели са обучени на английски текст.

Преди DIET, NLU конвейерът на Rasa използва модел на торба с думи, където има един векторен елемент на потребителско съобщение. Въпреки че това е бърза, трудна за победа базова линия, сега излизаме отвъд нея.

DIET използва модел на последователност, който отчита реда на думите, като по този начин предлага по-добра производителност. Това е и по-компактен модел с plug-and-play, модулна архитектура. Например можете да използвате DIET, за да направите както класификация на намеренията, така и извличане на обекти; можете също да изпълните една задача, например да я конфигурирате, за да изключите класификацията на намеренията и да я обучите само за извличане на обект.

Освен това DIET не само е значително по-бърз за обучение, но и успоредно с изпълнението на мащабни предварително обучени езикови модели. Той превъзхожда BERT за фина настройка и подобрява текущото състояние на техниката на сложен набор от данни на NLU. Постигането на съвременна точност може вече да не означава жертване на ефективност.

Как да използвам диета

За да се подготвим за диета, надстроихме до Tensorflow 2.1. TF 2 улеснява изграждането и обучението на модели и интуитивно отстраняване на грешки.

За да направите класификация на намеренията и извличане на обекти, използвайки новата архитектура DIET, добавете компонента DIETClassifier към конфигурационния файл на NLU тръбопровода.

Ето конфигурационния файл, който се създава, когато извикате rasa init .

Нека да разгледаме DietClassifier и неговите зависимости. Класификаторът DIETClassifier зависи от два класа характеристики - плътни и оскъдни. Функционирането е процес на преобразуване на потребителските съобщения в числови вектори. Ключовата разлика между разредените и плътни функции е, че разредените функции включват компактни вектори на функции, които съдържат предимно нули в структура с ефективна памет. Ако искате да научите повече за използването на оскъдни функции, вижте тази публикация.

ConveRTFeaturizer е пример за плътен Featurizer, който използва модела ConveRT. LanguageModelFeaturizer е друг пример за плътен Featurizer, който използва предварително обучен езиков модел като BERT.

CountVectorsFeaturizer е пример за оскъден Featurizer. Може да бъде конфигуриран да използва n-грамове на думи или символи. LexicalSyntacticFeaturizer е друг пример за оскъден Featurizer. Той създава функции за извличане на обекти, използвайки плъзгащ се прозорец над всеки маркер в дадено потребителско съобщение. Компонентът LexicalSyntacticFeaturizer може да бъде конфигуриран да указва типа лексикални и синтактични характеристики за извличане.

Също така, DIETClassifer може да бъде прецизиран с помощта на различни хиперпараметри. Например можете да конфигурирате архитектурата на невронната мрежа, като посочите размера на трансформатора, броя на слоевете на трансформатора, броя на внимателните глави, които да използвате и т.н.

Ако надстройвате до Rasa 1.8, вижте ръководството за мигриране за инструкции. Както винаги, насърчаваме всеки да дефинира свой собствен конвейер, като изброява имената на компонентите, които искате да използвате.

Следващи стъпки

Наистина сме развълнувани от DIET, нова многозадачна трансформаторна архитектура, която сме измислили. Пуснахме го по две причини: изграждането на ефективни асистенти за изкуствен интелект не винаги изисква мащабни предварително обучени езикови модели и искахме да осигурим гъвкава, plug-and-play архитектура за разработчиците. DIET подобрява текущото състояние на техниката, превъзхожда фината настройка BERT и е шест пъти по-бърз за обучение.

Скоро пускаме хартия по него. Дотогава проверете повече информация за DIET и гледайте това видео за това как работи. Изпробвайте и моля, споделете вашите резултати във форума. В крак с новите разработки, като следите Rasa в Twitter.

Блогът Rasa: Машинно обучение Осъществено от отворен код

Вземете най-новите новини за продуктите на Rasa, следвайте уроци, за да научите как да създадете свой собствен AI чат бот и научете за най-модерните изследвания на AI в блога на Rasa.