Обученная языковая модель генерирует текст. В качестве входных данных при желании ей можно также передать некоторый текст, влияющий на выходные данные. Выходные данные генерируются из того, что модель выучила, когда сканировала огромные объёмы текста.
Обучение — это процесс ознакомления модели с большим количеством текста. Этот процесс был завершён. Все эксперименты, которые вы видите сейчас, проводятся на одной обученной модели. Предполагалось, что на это уйдёт 355 GPU-лет и 4,6 миллиона долларов.
Для создания обучающих примеров для модели использовался набор данных из 300 миллиардов токенов текста. Эти три примера обучения собраны из предложения выше. Как видите, перемещаться по тексту и создавать множество примеров очень легко.
Модели представлен пример. Мы показываем ей только свойства и просим предсказать следующее слово. Предсказание модели может быть ошибочным. Мы вычисляем ошибку в предсказании и обновляем модель, чтобы в следующий раз прогноз был точнее. Это повторяется миллионы раз.
Теперь рассмотрим эти шаги более детально. GPT3 фактически генерирует выходные данные по одному токену за раз (здесь предположим, что токен — это слово).
Обратите внимание: эта статья описывает то, как работает GPT-3, а не рассказывает о нововведениях, которых пугающе много. Архитектура представляет собой модель декодера Transformer, описанную в этой статье (eng).
GPT3 внушительна. Она кодирует то, что узнаёт при обучении, в 175 миллиардов чисел, называемых параметрами. Эти числа обычно используются для расчёта того, какой токен генерировать при каждом запуске. Необученная модель начинает со случайных параметров. Обученная находит значения, приводящие к лучшим предсказаниям.
Эти числа являются частью сотен матриц внутри модели. Прогнозирование — это перемножение множества матриц. Заглянем внутрь модели, чтобы пролить свет на то, как эти параметры распределяются и используются. GPT3 имеет разрядность в 2048 токенов, это её “контекстное окно”, то есть у неё есть 2048 дорожек, обрабатывающих токены.
Пойдём по лиловой дорожке. Как система обрабатывает слово robotics
и синтезирует A
?
Общее описание шагов:
Важные вычисления GPT3 происходят внутри её стека из 96 слоёв декодера Transormer. Видите все эти слои? Это — та самая глубина в глубоком обучении.
У каждого слоя есть 1,8 миллиарда собственных параметров для вычислений, где и происходит вся магия. Высокоуровневый взгляд на процесс:
Разница с GPT2 состоит в чередовании плотных и разреженных слоёв внутреннего внимания.
Вот рентгеновский снимок входных данных и ответа Okay human
в GPT3. Обратите внимание, как каждый токен проходит через весь стек. Нас не интересуют выходные данные первых слов, но интересует вывод после ввода всех данных. Мы возвращаем каждое слово обратно в модель.
В примере генерации React, описанием будет приглашение ввода (оно отмечено зелёным), в дополнение к паре примеров описание => код
. Код react сгенерирован здесь в виде розовых токенов один за другим.
Основные примеры прайминга и описания добавляются в качестве входных данных с конкретными токенами, разделяющими примеры и результаты. Затем они загружаются в модель.
Работает действительно впечатляюще: вы просто ждёте, пока точная настройка для GPT3 развернется. Возможности обещают быть ещё более удивительными. Точная настройка фактически обновляет вес модели, делая её более подходящей для выполнения определённой задачи.
Перевод статьи Dana Kozubska: Why and where should you still use C/C++ languages?
Комментарии