Большие языковые модели DeBERTa — BERT повышенной декодировкой с разделенным вниманием

DeBERTa Улучшенная декодировка с разделением внимания в больших языковых моделях BERT

Исследование усовершенствованной версии механизма внимания в Transformers

Введение

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

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

Большие модели языка: BERT – Двунаправленные кодировщики представлений от Transformer

Понимание того, как BERT создает эмбеддинги современного состояния искусства

towardsdatascience.com

Тем не менее, в мире машинного обучения регулярно разрабатываются новые идеи и подходы. Одной из наиболее инновационных техник в моделях, подобных BERT, стало появление улучшенной версии внимания, названной «Разъединенное внимание». Реализация этой концепции привела к созданию модели DeBERTa, которая включает в себя разъединенное внимание. Хотя DeBERTa вводит всего лишь пару новых архитектурных принципов, ее улучшения на высоких бенчмарках NLP очевидны по сравнению с другими большими моделями.

В этой статье мы обратимся к оригинальной статье DeBERTa и рассмотрим все необходимые детали для понимания ее работы.

1. Разъединенное внимание

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

Конструирование эмбеддинга в BERT и DeBERTa. В отличие от хранения всей информации в одном векторе, DeBERTa использует два отдельных вектора для хранения эмбеддингов слова и позиции.

DeBERTa предлагает новый механизм, в котором одна и та же информация хранится в двух разных векторах. Кроме того, алгоритм для вычисления внимания также модифицирован, чтобы явным образом учитывать отношения между содержанием и позициями токенов. Например, слова “исследование” и “статья” намного больше зависят друг от друга, когда они появляются рядом, чем в разных частях текста. Этот пример ясно обосновывает необходимость также учитывать отношения между содержанием и позицией.

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

Вычисление оценки взаимного внимания между двумя векторами эмбеддинга.

Та же методология может быть обобщена в матричной форме. Из диаграммы мы можем наблюдать четыре различных типа матриц (векторов), каждая из которых представляет определенную комбинацию содержания и позиционной информации:

  • матрица содержание-содержание;
  • матрица содержание-позиция;
  • матрица позиция-содержание;
  • матрица позиция-позиция.

Можно заметить, что матрица позиция-позиция не хранит никакой ценной информации, так как она не содержит деталей о содержании слов. Вот почему этот термин отбрасывается в разъединенном внимании.

Для остальных трёх сроков окончательная матрица внимания вычисляется аналогично оригинальному трансформеру.

Вычисление раздельного вывода внимания в DeBERTa

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

Из диаграммы выше можно заметить, что символ умножения * используется для умножения между матрицами запрос-контент Qc и ключ-позиция Krᵀ & ключ-контент Kc и запрос-позиция Qrᵀ, отличается от обычного символа матричного умножения x. На самом деле, это не просто так, поскольку в DeBERTa упомянутые пары матриц умножаются немного иначе, чтобы учитывать относительное расположение токенов.

  • Согласно обычным правилам матричного умножения, если C = A x B, то элемент C[i][j] вычисляется покомпонентным умножением i-й строки A на j-й столбец B.
  • В особом случае DeBERTa, если C = A * B, то C[i][j] вычисляется как произведение i-й строки A на столбец с индексом δ(i, j) матрицы B, где δ обозначает функцию относительного расстояния между индексами i и j и определена формулой ниже:
Определение относительного расстояния между индексами i и j. k - это гиперпараметр, контролирующий максимально возможное относительное расстояние. Изображение взято от автора.

Константа k может рассматриваться как гиперпараметр, контролирующий максимально возможное относительное расстояние между индексами i и j. В DeBERTa k установлено равным 512. Для лучшего понимания формулы давайте построим тепловую карту, визуализирующую относительные расстояния (k = 6) для разных индексов i и j.

Например, если k = 6, i = 15 и j = 13, то относительное расстояние δ между i и j будет равно 8. Чтобы получить оценку содержания-позиции для индексов i = 15 и j = 13, при умножении матриц запрос-контент Qc и ключ-позиция Kr, 15-я строка Qc должна быть умножена на 8-й столбец Krᵀ.

Вычисление оценки содержания-позиции для токенов i и j

Однако, для оценок позиции-содержания, алгоритм работает несколько иначе: вместо относительного расстояния δ(i, j), на этот раз алгоритм использует значение δ(j, i) при матричном умножении. Как объясняют авторы статьи: “это связано с тем, что для данной позиции i оценка позиции-содержания вычисляет вес внимания ключевого содержания в позиции j по отношению к запросу на позиции i, поэтому относительное расстояние – δ(j, i)”.

Вычисление оценки позиции-содержания для токенов i и j

δ(i, j) ≠ δ(j, i), то есть δ – это несимметричная функция, что означает, что расстояние между i и j не равно расстоянию между j и i.

Перед применением преобразования функции softmax, оценки внимания делятся на константу √(3d) для более стабильного обучения. Этот масштабирующий коэффициент отличается от используемого в оригинальном трансформере (√d). Это различие в √3 раза обусловлено большими значениями, получаемыми из суммирования 3 матриц в механизме внимания DeBERTa (вместо одной матрицы в трансформере).

2. Улучшенный декодер масок

Разделение внимания учитывает только содержимое и относительное расположение. Однако, не учитывается информация об абсолютном расположении, которая на самом деле может играть важную роль в конечном прогнозировании. Авторы работы DeBERTa приводят конкретный пример такой ситуации: предложение «рядом с новым торговым центром открылся новый магазин», которое питается в BERT с заглушенными словами «магазин» и «торговый центр» для прогнозирования. Хотя заглушенные слова имеют похожее значение и локальный контекст (прилагательное «новый»), у них различный лингвистический контекст, который не улавливается разделенным вниманием. В языке может быть множество аналогичных ситуаций, поэтому важно включить абсолютное расположение в модель.

В BERT абсолютное расположение учитывается во входных вложениях. Говоря о DeBERTa, оно включается после всех слоев трансформера, но перед применением слоя softmax. В экспериментах было показано, что улавливание относительного расположения на всех слоях трансформера и только после введения абсолютного расположения улучшает производительность модели. По словам исследователей, обратное может помешать модели усвоить достаточную информацию об относительном расположении.

Архитектура

Согласно статье, улучшенный декодер масок (EMD) имеет два блока ввода:

  • H – скрытое состояние предыдущего слоя трансформера.
  • I – любая необходимая информация для декодирования (например, скрытое состояние H, абсолютное позиционное вложение или вывод предыдущего слоя EMD).
Улучшенный декодер масок в DeBERTa. Изображение, адаптированное автором.

В общем случае, в модели может быть несколько блоков EMD. При этом они конструируются по следующим правилам:

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

В случае DeBERTa количество слоев EMD установлено как n = 2, с позиционным вложением, используемым в качестве I в первом слое EMD.

Еще одна часто используемая техника в NLP – разделение весов между различными слоями с целью снижения сложности модели (например, ALBERT). Эта идея также реализована в блоках EMD DeBERTa.

Большие языковые модели, ALBERT — легкий BERT для самообучения

Понимание основных техник выбора архитектуры BERT для создания компактной и эффективной модели

towardsdatascience.com

Когда I = H и n = 1, EMD становится эквивалентом слоя декодера BERT.

Настройки DeBERTa

Изучение декодера

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

Масштабируемая техника мелкой настройки

Кроме того, авторы предложили новый адверсариальный алгоритм под названием «Scale Invariant Fine-Tuning», который позволяет улучшить обобщающую способность модели. Идея заключается в добавлении небольших возмущений во входные последовательности, что делает модель устойчивее к адверсарным примерам. В DeBERTa такие возмущения применяются к нормализованным входным эмбеддингам слов. Эта техника работает еще лучше для более крупных моделей DeBERTa, получивших дополнительное обучение.

Варианты DeBERTa

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

Варианты DeBERTa

Данные

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

  • Англоязычная Википедия + BookCorpus (16 ГБ)
  • OpenWebText (публичный контент Reddit: 38 ГБ)
  • Stories (31 ГБ)

После удаления дубликатов размер полученного набора данных сокращается до 78 ГБ. Для DeBERTa 1.5B авторы использовали в два раза больше данных (160 ГБ) с впечатляющим размером словаря 128К.

В сравнении, другие большие модели, такие как RoBERTa, XLNet и ELECTRA, предварительно обучены на 160 ГБ данных. В то же время DeBERTa показывает сопоставимую или лучшую производительность по сравнению с этими моделями на различных задачах анализа естественного языка.

Говоря о обучении, DeBERTa предварительно обучается на один миллион шагов, по 2 тысячи образцов в каждом шаге.

Заключение

Мы рассмотрели основные аспекты архитектуры DeBERTa. Благодаря наличию разделенного внимания и улучшенных алгоритмов кодирования с маскировкой, DeBERTa стал чрезвычайно популярным выбором в ПНП-каналах для многих специалистов по анализу естественного языка и новым достижением во многих конкурсах Kaggle. Еще одним удивительным фактом о DeBERTa является то, что он является одной из первых моделей анализа естественного языка, превосходящих человека на тесте SuperGLUE. Этого единственного факта достаточно для того, чтобы заключить, что DeBERTa останется надолго в истории языковых моделей последнего поколения.

Ресурсы

Все изображения, если не указано иное, принадлежат автору