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

Обучение — это процесс ознакомления модели с большим количеством текста. Этот процесс был завершён. Все эксперименты, которые вы видите сейчас, проводятся на одной обученной модели. Предполагалось, что на это уйдёт 355 GPU-лет и 4,6 миллиона долларов.

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

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

Теперь рассмотрим эти шаги более детально. GPT3 фактически генерирует выходные данные по одному токену за раз (здесь предположим, что токен — это слово).

Обратите внимание: эта статья описывает то, как работает GPT-3, а не рассказывает о нововведениях, которых пугающе много. Архитектура представляет собой модель декодера Transformer, описанную в этой статье (eng).

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

Эти числа являются частью сотен матриц внутри модели. Прогнозирование  —  это перемножение множества матриц. Заглянем внутрь модели, чтобы пролить свет на то, как эти параметры распределяются и используются. GPT3 имеет разрядность в 2048 токенов, это её “контекстное окно”, то есть у неё есть 2048 дорожек, обрабатывающих токены. 

Пойдём по лиловой дорожке. Как система обрабатывает слово robotics и синтезирует A?

Общее описание шагов:

  1. Преобразовать слово в вектор (список чисел), представляющих слово.
  2. Вычислить прогноз.
  3. Преобразовать полученный вектор в слово.

Важные вычисления GPT3 происходят внутри её стека из 96 слоёв декодера Transormer. Видите все эти слои? Это  —  та самая глубина в глубоком обучении.

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

Разница с GPT2 состоит в чередовании плотных и разреженных слоёв внутреннего внимания.

Вот рентгеновский снимок входных данных и ответа Okay human в GPT3. Обратите внимание, как каждый токен проходит через весь стек. Нас не интересуют выходные данные первых слов, но интересует вывод после ввода всех данных. Мы возвращаем каждое слово обратно в модель.

В примере генерации React, описанием будет приглашение ввода (оно отмечено зелёным), в дополнение к паре примеров описание => код. Код react сгенерирован здесь в виде розовых токенов один за другим.

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

Работает действительно впечатляюще: вы просто ждёте, пока точная настройка для GPT3 развернется. Возможности обещают быть ещё более удивительными. Точная настройка фактически обновляет вес модели, делая её более подходящей для выполнения определённой задачи.

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Jay Alammar: How GPT3 Works — Visualizations and Animations

Предыдущая статьяGo скучный. И это здорово!
Следующая статьяПространства имен и области видимости в Python