GPT-3 в картинках: краткий обзор

Автор оригинала: Jay Alammar
  • Перевод

Технологический мир охватил новый хайп — GPT-3.


Огромные языковые модели (вроде GPT-3) все больше удивляют нас своими возможностями. И хотя пока доверие к ним со стороны бизнеса недостаточно для того, чтобы представить их своим клиентам, эти модели демонстрируют те зачатки разума, которые позволят ускорить развитие автоматизации и возможностей «умных» компьютерных систем. Давайте снимем ауру таинственности с GPT-3 и узнаем, как она обучается и как работает.


Обученная языковая модель генерирует текст. Мы можем также отправить на вход модели какой-то текст и посмотреть, как изменится выход. Последний генерируется из того, что модель «выучила» во время периода обучения путем анализа больших объемов текста.



Обучение – это процесс передачи модели большого количества текста. Для GPT-3 этот процесс завершен и все эксперименты, которые вы сможете увидеть, проводятся на уже обученной модели. Было подсчитано, что обучение должно было занять 355 GPU-лет (355 лет обучения на одной видеокарте) и стоить 4.6 миллиона долларов.


02-gpt3-training-language-model


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


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


gpt3-training-examples-sliding-window


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


Поначалу предсказания модели будут ошибочны. Мы подсчитываем ошибку в предсказании и обновляем модель до тех пор, пока предсказания не улучшатся.


И так несколько миллионов раз.


03-gpt3-training-step-back-prop


Теперь давайте рассмотрим эти этапы обучения чуть более подробно.


GPT-3 генерирует выход по одному токену за раз (условимся пока, что токен – это одно слово).


04-gpt3-generate-tokens-output


Стоит отметить, что эта статья — лишь описание работы GPT-3, а не обсуждение того, что нового эта модель предложила миру (по сути все сводится к до смешного огромным размерам). В основе архитектуры – модель декодирующего Трансформера, описанная в статье.


GPT-3 поистине ОГРОМНА. Она кодирует то, чему выучивается, в 175 миллиардов чисел (называемых параметрами). Эти числа используются для подсчета генерируемого за один прогон токена.


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


gpt3-parameters-weights


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


В видео «Введение в ИИ на Youtube» показана простая модель машинного обучения с одним параметром – отличное начало для разбора этого 175-миллиардного монстра.


Чтобы пролить свет на то, как эти параметры распределяются и используются, нам нужно открыть модель и посмотреть на нее изнутри.


Ширина GPT-3 составляет 2048 токенов – это её «контекстное окно», что означает наличие 2048 траекторий, по которым продвигаются токены во время их обработки.


05-gpt3-generate-output-context-window


Давайте пройдем по фиолетовой траектории. Как система обрабатывает слово «robotics» и генерирует «A»?


Высокоуровнево шаги выглядят так:


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

06-gpt3-embedding


Важные вычисления GPT-3 происходят внутри стека из 96 слоев декодера Трансформера.


Видите все эти слои? Это и есть та самая «глубина» «глубокого обучения» (deep learning).


У каждого слоя есть свои 1.8 миллиардов параметров для вычислений. Здесь и происходит вся «магия». Верхнеуровнево этот процесс можно изобразить следующим образом:


07-gpt3-processing-transformer-blocks


Вы можете увидеть детальное описание всего, что происходит внутри декодера, в статье GTP-2 в картинках.


Отличие GPT-3 состоит в изменении плотных (dense) и разреженных (sparse) слоев внутреннего внимания (self-attention).


Рассмотрим подробнее пример ввода предложения и вывода ответа «Okay human» внутри GPT-3. Обратите внимание, как каждый токен проходит через все слои стека. Нам не важен выход для первых слов: он начинает иметь значение, только когда ввод окончен. Далее мы отправляем слова выхода обратно в модель.


08-gpt3-tokens-transformer-blocks


В примере генерации React кода на вход подается описание (выделено зеленым), по всей видимости, в дополнение к нескольким примерам вида описание => код. Затем код React генерируется точно так же, как и розовые токены здесь, один за другим.


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


09-gpt3-generating-react-code-example


То, как это работает, впечатляет. Вам просто нужно подождать, пока завершится тонкая настройка (fine-tuning) GPT-3. И возможности буду еще более потрясающими.


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


10-gpt3-fine-tuning


Авторы


Комментарии 4

    0
    обновите картинки в посте, не все доступны
      0
      Какие конкретно картинки недоступны? У меня все отображается.
        0
        странное поведение, в мобильном клиенте половина отсутствует
          0
          Вероятно не отображаются картинки, которые располагаются на сайте автора оригинальной статьи. Они весят много, так что загрузить их на Habrastorage не получилось.

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое