Часть 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-1 | 2018 | ~117 млн | 12 |
| GPT-2 | 2019 | до 1,5 млрд | до 48 |
| GPT-3 | 2020 | 175 млрд | 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).