Описание архитектуры и принципов реализации

Рассмотрим отличительные особенности моделей GPT от ранее рассмотренного Трансформера. Прежде всего, в моделях GPT отказались от использования энкодера, оставив только декодер. При этом отказ от энкодера повлек и отказ от внутреннего слоя Encoder-Decoder Self-Attention. На рисунке ниже представлен блок трансформера в GPT.

Блок GPT

Блок GPT

Так же как и в классическом Трансформере, в моделях GPT данные блоки выстраиваются друг над другом. Каждый блок имеет свои матрицы весовых коэффициентов для механизма внимания и полносвязных слоев Feed Forward. Количество таких блоков определяет размер модели. Как оказалось, стек блоков может быть довольно большим. В GPT-1 и самой маленькой из GPT-2 (GPT-2 Small) их 12, в GPT-2 Extra Large — 48, а в GPT-3 их уже 96.

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

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

Как и в классическом трансформере, внутри механизма Self-Attention для каждого токена генерируются три вектора: запроса Query, ключа Key и значения Value. В авторегрессионной модели, когда на каждой новой итерации входная последовательность изменяется только на 1 токен, нет необходимости пересчитывать векторы для каждого токена. Поэтому в GPT каждый слой осуществляет расчет векторов только для новых элементов последовательности и сохраняет их для каждого элемента последовательности. Каждый блок трансформера сохраняет свои векторы для последующего использования.

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

И конечно, в моделях GPT используется механизм многоголового внимания Multi-Head Self-Attention.