Подробное объяснение BART

алгоритм

Это пятый день моего участия в ноябрьском испытании обновлений, подробности о мероприятии:Вызов последнего обновления 2021 г.

Все должно начинаться с Трансформера. Левая половина преобразователя — кодировщик, а правая половина — декодер. Мы называем предложение, введенное кодировщиком, источником, а предложение, введенное декодером, — целью.

Кодировщик отвечает за самостоятельное внимание источника и получение представления каждого слова в предложении.Самой классической архитектурой кодировщика является BERT, который изучает связь между словами через Модель маскированного языка, а также XLNet, RoBERTa, ALBERT. , ДистилБЕРТ и др. . Но сама по себе структура Encoder не подходит для генерации задач

Декодер показан на рисунке ниже. Существует разница между входом и выходом. Основная причина заключается в том, что модель не может видеть будущие слова при моделировании вывода. Этот метод называется AutoRegressive. Общие модели на основе декодера обычно используются для последовательностей , Сгенерированные, такие как GPT, CTRL и т. Д. Однако только структура декодера только предсказывает слова, основанные на левом контексте и не могут изучать двусторонние взаимодействия

Когда они объединены, их можно использовать в качестве модели Seq2Seq для задач перевода. На следующем рисунке показана основная структура BART, она вроде бы ничем не отличается от Transformer, основное отличие — источник и цель.

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

BART vs Transformer

BART использует стандартную модель Transformer с некоторыми изменениями:

  1. Как и GPT, функция активации ReLU изменена на GeLU, а инициализация параметра подчиняется нормальному распределениюN(0,0.02)N(0, 0.02)
  2. Кодировщик и декодер базовой модели BART имеют по 6 слоев, а большая модель увеличена до 12 слоев.
  3. Слои декодера BART выполняют дополнительное перекрестное внимание на последнем скрытом слое кодировщика.
  4. BERT использует дополнительный уровень прямой связи перед прогнозированием слов, в то время как BART этого не делает.

Pre-training BART

Авторы BART пробовали разные способы разбить ввод:

  • Token Masking: после BERT (Devlin et al., 2019) выбираются случайные токены и заменяются элементами [MASK].
  • Sentence Permutation: документ делится на предложения на основе точек, и эти предложения перемешиваются в случайном порядке.
  • Document Rotation: маркер выбирается случайным образом, а документ поворачивается так, чтобы он начинался с этого маркера.Эта задача обучает модель идентифицировать начало документа.
  • Token Deletion: случайные токены удаляются из ввода.В отличие от маскирования токенов, модель должна решить, в каких позициях отсутствуют входные данные.
  • Text Infilling: выбрано несколько текстовых диапазонов, длина которых взята из распределения Пуассона (λ=3\lambda=3). Each span is replaced with a single [MASK] token. 0-length spans correspond to the insertion of [MASK] tokens. Text infilling teaches the model to predict how many tokens are missing from a span.

Fine-tuning BART

Sequence Classification Tasks

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

Sequence Generation Tasks

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

Machine Translation

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

Results

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

Reference