title background

Статьи / Учебный центр Rasa: NLP для разработчиков

19.02.2024 г., перевод статьи Сонам ​​Панкадж (Sonam Pankaj) из блога Rasa

Курс «NLP (Natural Language Processing) для разработчиков» в учебном центре Rasa — это простое и быстрое знакомство с современными инструментами и методами NLP, такими как токенизация, векторное представление слов и трансферное обучение. Если вы разработчик программного обеспечения, менеджер или любой другой человек, который хотел, но еще не ознакомился со всеми концепциями машинного обучения Rasa NLU — это лучший способ получить об этом общие понятия.

Векторное представление слов

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

Преимущества векторного представления:

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

Недостатки:

  • не может различать омофоны;
  • может занимать много памяти;
  • зависит от корпуса.

Трансформеры

Существует несколько архитектур нейронных сетей, таких как сверточные нейронные сети и рекуррентные нейронные сети. Transformer — одна из таких архитектур. Она предназначена для обработки последовательностей и работает с механизмами внимания. Архитектура трансформера состоит из двух частей: кодировщика и декодировщика. Кодировщик принимает последовательности и преобразует их в векторные представления, а декодировщик принимает эти векторные представления и создает выходные последовательности. Используется для обработки последовательностей и решения sequence-to-sequence задач, таких как, например, машинный перевод.

Преимущества трансформера:

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

Недостатки:

  • огромные модели, которым требуется для обучения много памяти и вычислительных ресурсов.

Токенизация

Деление языкового ввода на более мелкие, комбинируемые фрагменты.

Типы токенизации:

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

Преимущества:

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

Недостатки:

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

BERT

Языковые модели представляют собой распределение вероятностей по последовательностям слов. BERT — это маскированная языковая модель, которая использует векторное представление слов: теперь омофоны имеют разные представления, если они означают разные вещи.

BERT — это большая языковая модель с 340 миллионами параметров в BERT-large и 110 миллионами в BERT-base. Архитектура работает сразу с несколькими кодировщиками, в слоях кодировщиков используется двустороннее внимание — необработанные вложения используются в качестве входных данных для классификатора, а также могут использоваться для обновления весов.

Меньшие по размеру и более эффективные расширения:

  • Robert
  • Distilbert
  • Albert

Как использовать:

Использование последнего слоя в качестве входных данных для новой модели. Точная настройка предварительно обученной модели общего назначения для конкретных задач.

Преимущества:

  • переносимая модель — может использоваться в качестве входных данных для более мелких моделей, ориентированных на конкретные задачи;
  • при детальной настройке можно получить очень высокую точность.
  • предварительно обученные модели BERT доступны на более чем 100 языках.

Недостатки:

  • медленное обучение;
  • дорогостоящая;
  • необходима перенастройка для различных последующих задач.

Намерение и уверенность

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

Уверенность — это показатель уверенности модели в том, что введенная фраза относится к определенным обучающим данным (намерению).

Заблуждение:

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

Преимущества оценки уровня уверенности:

  • существует множество различных методов;
  • простота оценки модели;
  • уменьшает неопределенность в поведении модели.

Удаление стоп-слов

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

Преимущества удаления стоп-слов:

  • меньше текстовые представления — быстрее и меньше модели;
  • в некоторых случаях удаление стоп-слов не ухудшает производительность модели, а напротив, может улучшить ее.

Featurizer

Featurizer — это часть конвейера NLP, который преобразует входные данные в нужный формат (обработчик входных данных). Он принимает необработанные данные и предоставляет результаты, которые можно использовать в модели, например, метки или теги и векторное представление слов.

Как часть конвейера NLP — это термин для ряда методов, которые используются для преобразования входных токенов в машиночитаемые данные.

Преимущества:

  • позволяет вводить текст и преобразовывать его в числовое представление;

Недостатки:

  • предварительно обученные функции могут зависеть от предметной области;
  • возможно, придется обучать свой собственный Featurizer.

GPT- 3

GPT-3 — это тоже большая языковая модель. Исходя из вводимого текста, она предлагает его наиболее вероятное продолжение, предугадывая, какие токены из известного словаря будут следующими, работая по принципу автодополнения. Авторы предлагают большое разнообразие задач в дополнение к существующим бенчмаркам NLP.

Преимущества:

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

Недостатки:

  • 93% данных для обучения представлены на английском языке;
  • дорогое обучение;
  • платный доступ к API;
  • непредсказуемые результаты.

Трансферное обучение

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

Трансферное обучение позволяет тратить меньше времени на обучение новой модели.

Распространенные примеры использования:

  • векторное представление слов;
  • языковые модели;
  • межъязыковое трансферное обучение.

Преимущества:

  • экономия времени и денег;
  • нет потребности в большом количестве данных.

Недостатки:

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