Открыть сервисСервис

Часть GPT: компоненты архитектуры

Часть GPT — это отдельный структурный элемент нейросетевой модели-трансформера, входящий в состав её архитектуры. Под «частями» обычно понимают как крупные блоки (кодировщик, декодировщик, механизм внимания, полносвязные слои), так и их внутренние компоненты (матрицы весов, слои нормализации, позиционные кодировки). Модели семейства GPT (Generative Pre-trained Transformer) построены на стеке однотипных декодерных блоков, каждый из которых состоит из набора повторяющихся частей.

Общая архитектура

GPT относится к классу авторегрессионных языковых моделей на основе трансформера. В отличие от исходной архитектуры «кодировщик — декодировщик», предложенной в статье Attention Is All You Need (2017), GPT использует только декодировщик. Это означает, что модель предсказывает следующий токен, опираясь исключительно на предыдущий контекст.

Основные части модели:

  • входной слой (эмбеддинги токенов);
  • позиционные кодировки;
  • стек декодерных блоков;
  • выходной слой (проекция на словарь).

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

Входной слой и эмбеддинги

Текст разбивается на токены — фрагменты слов, слова или их части. Каждый токен сопоставляется с вектором фиксированной размерности. Эта часть называется эмбеддингом токена. Размерность вектора (например, 768, 1024, 4096) зависит от версии модели и определяет её «ширину».

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

Механизм самовнимания

Центральная часть каждого блока — многоголовое самовнимание (multi-head self-attention). Каждый токен формирует три вектора: запрос (query), ключ (key) и значение (value). Внимание вычисляется как взвешенная сумма значений, где веса определяются скалярным произведением запросов и ключей.

Ключевая особенность GPT — причинная (каузальная) маска. Она запрещает токену «подглядывать» в последующие позиции, что обеспечивает корректную авторегрессионную генерацию. Несколько «голов» внимания работают параллельно, каждая улавливает свои зависимости — синтаксические, семантические, позиционные.

Полносвязная сеть и нормализация

После внимания сигнал проходит через полносвязную сеть прямого прохода (feed-forward network). Она состоит из двух линейных преобразований с нелинейной активацией между ними (чаще всего GELU). Внутренняя размерность этой части обычно в четыре раза превышает размерность модели.

Слои нормализации (Layer Normalization) стабилизируют обучение. В GPT применяется предварительная нормализация — перед вниманием и перед полносвязной сетью. Остаточные связи (residual connections) позволяют сигналу обходить блоки, что облегчает обучение глубоких сетей.

Выходной слой

Выход последнего блока проецируется на размер словаря. Полученные логиты преобразуются в вероятности с помощью softmax. Модель выбирает следующий токен — либо наиболее вероятный, либо с использованием сэмплирования (temperature, top-k, top-p). Эта часть определяет стратегию генерации текста.

Масштабирование частей

С ростом версий GPT увеличивалось число частей и их размеры. Если GPT-1 (2018) содержал около 117 млн параметров и 12 блоков, то GPT-3 (2020) — уже 175 млрд параметров и 96 блоков. Увеличение числа голов внимания, размерности эмбеддингов и глубины стека стало основным способом повышения качества.

ВерсияГодПараметрыЧисло блоков
GPT-12018~117 млн12
GPT-22019до 1,5 млрддо 48
GPT-32020175 млрд96

Значение и особенности

Разделение модели на части важно для понимания её работы, обучения и оптимизации. Разные части отвечают за разные функции: эмбеддинги — за представление слов, внимание — за связи между ними, полносвязные слои — за нелинейные преобразования. Анализ отдельных частей (например, голов внимания) позволяет интерпретировать поведение модели.

Помимо GPT, схожие части используются в других трансформерных моделях — BERT, T5, LLaMA. Различия касаются в основном того, какие части задействованы: только декодировщик, только кодировщик или оба.

Источники: Attention Is All You Need (Vaswani et al., 2017); Language Models are Unsupervised Multitask Learners (Radford et al., 2019); Language Models are Few-Shot Learners (Brown et al., 2020).

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru