Объяснение моделей OpenAI GPT и GPT2

NLP
Объяснение моделей OpenAI GPT и GPT2

OpenAI GPT был предложен до алгоритма BERT от Google.Самое большое отличие от BERT заключается в том, что GPT использует традиционную языковую модель для обучения, то есть использует слово выше для прогнозирования слов, в то время как BERT использует как выше, так и ниже для прогнозирования слов. Следовательно, GPT лучше справляется с задачами генерации естественного языка (NLG), а BERT лучше справляется с задачами понимания естественного языка (NLU).

1.OpenAI GPT

OpenAI предложила модель GPT в статье «Улучшение понимания языка с помощью генеративного предварительного обучения», а позже предложила модель GPT2 в статье «Языковые модели - многозадачные учащиеся без присмотра». Структура модели GPT2 и GPT не сильно отличается, но для экспериментов используется больший набор данных. И GPT, и BERT используют модель Transformer.Для детской обуви, незнакомой с Transformer и BERT, см. предыдущую статью.«Детали модели трансформатора»и«Полное понимание модели Google BERT».

Метод обучения, принятый GPT, разделен на два этапа: первый шаг — использование неразмеченного набора текстовых данных для обучения языковой модели, а второй шаг — тонкая настройка модели в соответствии с конкретными последующими задачами, такими как контроль качества, текст классификация и т. д. BERT также использует этот метод обучения. Давайте сначала рассмотрим основные различия между GPT и BERT.

Предварительная подготовка:Способ предварительного обучения GPT такой же, как и у традиционных языковых моделей, с помощью вышеперечисленного предсказывается следующее слово; способ предварительного обучения GPT заключается в использовании Mask LM, который может предсказывать слова через выше и ниже в в то же время. Например, для предложения [u1, u2, ..., un] GPT будет использовать информацию только [u1, u2, ..., u(i-1)] при прогнозировании слова ui, в то время как BERT будет одновременно Использовать информацию из [u1, u2, ..., u(i-1), u(i+1), ..., un]. Как показано ниже.

BERT_ELMo_GPT.png

Эффект модели:Поскольку GPT использует традиционные языковые модели, он больше подходит для задач генерации естественного языка (NLG), поскольку эти задачи обычно генерируют информацию о следующем моменте на основе текущей информации. А BERT больше подходит для задач понимания естественного языка (NLU).

Структура модели:GPT использует декодер Transformer, а BERT использует кодировщик Transformer. GPT использует структуру Mask Multi-Head Attention в декодере.При использовании [u1, u2, ..., u(i-1)] для предсказания слова ui он маскирует слово после ui.

2. Структура модели GPT

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

GPT_Decoder.png

GPT использует последовательности предложений для предсказания следующего слова, поэтому маскирование многозаголовочного внимания используется для блокировки следующих слов, чтобы предотвратить утечку информации. Например, в предложении, содержащем 4 слова [A, B, C, D], GPT необходимо использовать A для предсказания B, [A, B] для предсказания C и [A, B, C] для предсказания D. При прогнозировании B необходимо маскировать [B, C, D].

Операция Mask выполняется до того, как Self-Attention выполнит Softmax.Конкретный метод заключается в замене -inf бесконечно малым числом в позиции, которая должна быть Mask, а затем Softmax, как показано на следующем рисунке.

GPT_Mask.png

GPT_Softmax.png

Видно, что после Mask и Softmax, когда GPT предсказывает слово B на основе слова A, может использоваться только информация слова A, а при предсказании слова C на основе [A, B] только информация слов A и Можно использовать Б. Это предотвращает утечку информации.

На следующем рисунке показана общая модель GPT, которая содержит 12 декодеров.

GPT_model.png

3. Процесс обучения GPT

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

3.1 Предварительно обученная языковая модель

Учитывая предложение U = [u1, u2, ..., un], GPT необходимо максимизировать следующую функцию правдоподобия при обучении языковой модели.

Loss1.png

Видно, что GPT — это односторонняя модель, а вход GPT —h0 означает,hФормула для вычисления 0 выглядит следующим образом.

h0.png

Wp - вложение позиции слова,We - вложение слова. Используйте voc для представления размера словаря, pos для представления самой длинной длины предложения, dim для представления измерения внедрения, затемWp - матрица pos×dim,We представляет собой матрицу voc×dim.

получить вводhПосле 0 необходимоh0 передается во все декодеры Transformer GPT по очереди и, наконец, получаетhон.

ht.png

наконец получилht снова предсказывает вероятность следующего слова.

pu.png

3.2 Тонкая настройка последующих задач

После предварительной подготовки GPT модель настраивается для конкретных последующих задач. В процессе тонкой настройки используется обучение с учителем, а обучающие образцы включают последовательность слов [x1, x2, ..., xm] и метку класса y. Метка класса y прогнозируется из последовательности слов [x1, x2, ..., xm] во время тонкой настройки GPT.

predict_y.png

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

Loss2.png

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

Loss3.png

4. Сводка GPT

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

Рекомендуется прочитать код Huggingface на Github, который содержит множество моделей на основе Transformer, включая roBERTa и ALBERT.

5. Ссылки