РОБЕРТа и АЛЬБЕРТ

искусственный интеллект NLP
РОБЕРТа и АЛЬБЕРТ

Модель BERT была предложена в 2018 году и добилась беспрецедентных улучшений во многих задачах обработки естественного языка. Поэтому в 2019 году вокруг БЕРТ была проведена большая работа, и появились две усовершенствованные модели БЕРТ, RoBERTa и ALBERT. RoBERTa обучает BERT на большем наборе данных и оптимальных параметрах, что снова повышает производительность BERT; ALBERT в основном сжимает BERT и уменьшает количество параметров BERT за счет совместного использования параметров всех слоев и декомпозиции встраивания.

1. Введение

В этой статье в основном представлены две улучшенные модели BERT, RoBERTa и ALBERT.Что касается модели BERT, вы можете обратиться к предыдущим статьям.«Полное понимание модели Google BERT», сначала взгляните на некоторые особенности RoBERTa и ALBERT.

РОБЕРТа:

  • Большой тренировочный набор, большая партия.
  • Нет необходимости использовать NSP Loss.
  • Используйте более длинную тренировочную последовательность.
  • Динамическая маска.

АЛЬБЕРТ:

  • Разложите матрицу встраивания, чтобы уменьшить размеры.
  • Все слои Transformer имеют общие параметры.
  • Используйте SOP (прогнозирование порядка предложений) вместо NSP.

2.RoBERTa

RoBERTa в основном экспериментировал с некоторыми настройками обучения в BERT (например, имеет ли значение NSP Loss, размер партии и т. д.) и находил лучшие настройки, а затем обучал BERT на большем наборе данных.

2.1 Большие наборы данных

Первоначальный BERT использовал только набор данных 16G, в то время как RoBERTa обучал BERT на большем наборе данных, используя корпус 160G:

  • BOOKCORPUS, 16G, оригинальный обучающий набор данных BERT
  • CC-НОВОСТИ, 76G
  • ОТКРЫТЫЙ ВЕБТЕКСТ, 38G
  • РАССКАЗЫ, 31Г

2.2 Удаление потери NSP

BERT использует NSP Loss в процессе обучения.Первоначальная цель состоит в том, чтобы позволить модели лучше отражать семантику текста.Для двух предложений X = [x1, x2, ..., xN] и Y = [y1, y2, ...., yM], задача NSP в BERT должна предсказать, появляется ли Y после X.

Тем не менее, потеря NSP была подвергнута сомнению во многих статьях, таких как XLNet, RoBERTa использовала эксперимент, чтобы проверить практичность потери NSP. В эксперименте использовались четыре комбинации:

Segment-Pair + NSP:Это метод обучения оригинального BERT.Используя NSP Loss, входные два текста X и Y могут содержать несколько предложений, но длина X + Y меньше 512.

Sentence-Pair + NSP:По сути, аналогично предыдущему, также используется NSP Loss, но каждый из двух входных текстов X и Y является предложением, поэтому ввод обычно содержит меньше токенов, чем Segment-Pair, поэтому пакет следует увеличить, чтобы общее количество токены.

Full-Sentences:Не используя NSP, напрямую сэмплируйте несколько предложений из одного или нескольких документов, пока общая длина не достигнет 512. При выборке в конец документа маркер-разделитель документов добавляется к последовательности перед выборкой из следующего документа.

Doc-Sentences:Как и в случае полных предложений, NSP не используется, но предложения можно выбирать только из одного документа, поэтому длина входных данных может быть меньше 512. Doc-Sentences также необходимо динамически корректировать размер пакета, чтобы он содержал примерно то же количество токенов, что и Full-Sentences.

RoBERTa_NSP_result.png

Вышеприведенное изображение является экспериментальным результатом. В двух верхних строках используется NSP. Вы можете видеть, что использование Segment-Pair (несколько предложений) лучше, чем Sentence-Pair (одно предложение). Экспериментальные результаты показывают, что использование одного предложения сделает BERT в последующей задаче.Основная причина может заключаться в том, что использование одного предложения приводит к тому, что модель плохо изучает долгосрочные зависимости.

Средние две строки являются результатом отсутствия использования NSP Loss.Вы можете видеть, что оба метода лучше, чем использование NSP, что показывает, что NSP Loss на самом деле не имеет никакого эффекта, поэтому NSP Loss отбрасывается в RoBERTa.

2.3 Динамическая маска

Первоначальный BERT маскировал данные перед обучением, а затем сохранял данные неизменными на протяжении всего процесса обучения, называемого Static Mask. То есть во всем процессе обучения одного и того же предложения слова, пропущенные Маском, одни и те же.

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

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

RoBERTa_Dynamic_Mask.png

2.4 Большие партии

Некоторая предыдущая работа по трансляции нейронной сети показала, что использование большого пакета и, соответственно, увеличение скорости обучения может ускорить оптимизацию и повысить производительность. RoBERTa также проводит эксперименты с размером пакета.Первоначальный BERT использует пакет = 256 и количество шагов обучения равно 1M, что соответствует пакету = 2K, а количество шагов обучения равно 125K, что соответствует пакету = 8K и количество тренировочных шагов равно 31К. На следующем рисунке показан экспериментальный результат использования разных партий. Скорость обучения разных партий различна. Видно, что наилучший эффект достигается при использовании партии = 2K.

RoBERTa_batch.png

3.ALBERT

Модель предварительного обучения BERT имеет множество параметров, а время обучения относительно велико. ALBERT — это сжатая модель BERT, которая уменьшает количество параметров BERT и сокращает время, необходимое для обучения.

Обратите внимание, что ALBERT уменьшает только количество параметров BERT, а не его вычисление. ALBERT может сократить время обучения, потому что уменьшение параметров может уменьшить объем связи во время распределенного обучения; ALBERT не может уменьшить время вывода, потому что объем вычислений Transformer, который проходит через вывод, остается таким же, как и у BERT.

Некоторые методы оптимизации ALBERT описаны ниже.

3.1 Factorized embedding parameterization

Это для того, чтобы разложить Embedding, тем самым уменьшив параметры. В BERT размер Embedding такой же, как размер скрытого слоя Transformer, оба имеют формат H. Предполагая, что размер тезауруса равен V, количество параметров матрицы вложения слова равно VH.Если тезаурус большой, количество параметров будет большим.

Поэтому ALBERT использует метод, основанный на факторизованном: вместо прямого отображения однократной матрицы слова в H-мерный вектор он сначала отображается в низкоразмерное пространство (E-мерное), а затем отображается в H-мерное пространство Этот процесс аналогичен матричной факторизации.

ALBERT_embedding.png

3.2 Cross-layer parameter sharing

Это механизм совместного использования параметров, то есть все слои Transformer имеют общий набор параметров.Transformer включает в себя параметры Multi-Head Attention и параметры Feed-Forward. Для разных частей параметров АЛЬБЕРТ экспериментировал четырьмя способами.

all-shared:Поделитесь всеми параметрами Transformer.

shared-attention:Только параметры Multi-Head Attention в Transformer являются общими.

shared-FFN:Только параметры Feed-Forward в Transformer являются общими.

not-shared:Параметры не являются общими.

ALBERT_share.png

На рисунке выше показаны параметры моделей с разными методами совместного использования, видно, что модель после совместного использования всех параметров намного меньше, чем модель без совместного использования параметров. Когда E = 768, объем неразделяемого параметра фактически является объемом параметра базы BERT, который равен 108M, а после совместного использования всех параметров объем параметра модели становится равным 31M.

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

ALBERT_share2.png

3.3 Заменить ПОШ на СОП

Как показывают результаты RoBERTa, NSP Loss не является полезным для модели, поэтому ALBERT также думает о NSP.

АЛЬБЕРТ считает, что задача NSP, используемая в BERT, слишком проста, потому что контрпримеры NSP выбираются случайным образом, и предложения этих контрпримеров обычно относятся к разным темам, например, первое предложение из спортивных новостей, а второе последнее предложение взято из развлекательных новостей. Поэтому, когда BERT выполняет задачи NSP, ему обычно не нужно действительно изучать семантику и порядок между предложениями, а нужно только судить о типах их тем.

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

4. Резюме

RoBERTa больше похож на тщательно настроенную модель BERT и обучен на большом наборе данных.

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

5. Ссылки