in

OpenAI GPT: Генеративное предварительное обучение для понимания языка

OpenAI GPT - Генеративное предварительное обучение для понимания языка

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

Поскольку такое моделирование частично не контролируется (и частично контролируется), это также является примером использования полуконтролируемого обучения.

Понимание самоконтролируемых архитектур OpenAI GPT на основе трансформеров

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

Эта модель также является одним из пионеров в развитии НЛП в области большого количества параметров обучения — 110M параметров (что может показаться меньшим на сегодняшний день, однако это было очень много, когда она появилась).

GPT — генеративное предварительное обучение

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

Учитывая вышесказанное, далее мы рассмотрим особенности GPT.

Архитектура Open AI GPT

Open AI GPT использует архитектуру трансформера-декодера в отличие от архитектуры трансформера-кодировщика BERT. Я уже рассказывал о разнице между трансформируемым кодером и декодером в этой заметке, однако она заключается в следующем:

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

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

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

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

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

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

Предварительное обучение без контроля
Архитектура трансформерного декодера OpenAI GPT

Модель GPT пытается максимизировать следующую функцию:

Модель GPT пытается максимизировать следующую функцию:

Т.е. для данного корпуса U мы максимизируем вероятность того, что токены u_i, появятся в контексте, учитывая токены u_(i-k),…, u_(i-1). k — размер окна, для которого мы рассматриваем предыдущие токены из корпуса, а Θ — параметры модели.

Здесь вычисляется вероятность и внимание, используя следующее:

вычисляется вероятность и внимание

которая, по сути, является стандартной моделью языка, где U — это входные данные, описанные ранее, W_e — веса встраивания, W_p — позиционные кодировки, мы вычисляем состояния для h_l, используя h_(l-1) с помощью трансформера в соответствии с задачей авторегрессии, и, наконец, сглаживаем логиты с помощью softmax.

Контролируемая тонкая настройка

Контролируемая тонкая настройка

В этих задачах мы рассматриваем маркированный набор данных C и пытаемся максимизировать:

маркированный набор данных C и пытаемся максимизировать

т.е. мы максимизируем логарифмическую вероятность метки y, учитывая токены x_1, …, x_m, которая в основном получается с помощью:

мы максимизируем логарифмическую вероятность метки y

Важным фактом о модели GPT от OpenAI является то, что в ходе эмпирических исследований авторы заметили, что перед тонкой настройкой модели наилучшие результаты дает предварительное обучение без контроля на наборе меченых данных. Хотя они признают, что это не сработало для небольших наборов данных.

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

мы получаем комбинированную целевую функцию

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

  1. Textual Entailment или Natural Language Inference (NLI): Текст и гипотеза конкатенируются и разделяются с помощью разделительного маркера $.
  2. Текстовое сходство: Для этой задачи, в отличие от энтелемента, не имеет значения порядок, в котором входные последовательности подаются в сеть. Следовательно, вычисляются обе энтитемы (т.е. в обоих порядках), и они складываются поэлементно.
  3. Ответы на вопросы и здравый смысл: Для этих задач у нас в основном есть контекст, в котором, возможно, присутствует ответ на заданный вопрос; и, по желанию, несколько вариантов возможных ответов в данном контексте. Здесь контекст (z) и вопрос (q) объединяются с каждым из вариантов ответа (a_k), т.е. [z; q; $; a_k]. Все это подается на отдельные декодеры-трансформеры, а затем оценки нормализуются с помощью softmax.

Заключение

Мы рассмотрели архитектуру и принцип работы модели OpenAI GPT. Хотя эта модель устарела в 2020 году, она является основополагающей для большинства современных языковых моделей, и поэтому ее стоит понять.

Вы можете найти предварительно обученные веса и архитектуру модели с помощью huggingface transformers здесь

Источник:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *