Когда OpenAI выпустила GPT-4, большинство публикаций в прессе сосредоточились на впечатляющих результатах тестов и «почти человеческих» ответах. Значительно меньше внимания уделялось вопросу: как именно это работает? Цель данной статьи — заполнить этот пробел: технически точно, но читабельно.
Область применения материала: статья предназначена для читателей с базовым пониманием математики (линейная алгебра, вероятности) и общим представлением о том, что такое нейронные сети.
1. Что такое языковая модель: формальное определение
Языковая модель — это функция, которая принимает последовательность токенов и возвращает распределение вероятностей над всем словарём для следующего токена. Формально:
P(w_t | w_1, w_2, ..., w_{t-1})
Вся магия GPT заключается в том, как именно моделируется это условное распределение. До трансформеров использовали RNN и LSTM — последовательные архитектуры с «памятью». Трансформер отказался от последовательности в пользу параллельной обработки через механизм внимания.
2. Токенизация: не слова, а токены
Первый шаг любой LLM — превратить текст в числа. GPT использует алгоритм Byte-Pair Encoding (BPE), который работает следующим образом: вместо разбивки на отдельные символы или слова алгоритм итеративно находит наиболее часто встречающиеся пары символов и заменяет их новым токеном.
Например, слово unbelievable может быть разбито как un + believ + able. GPT-4 использует словарь из ~100 000 токенов. Важный нюанс: пробел, предшествующий слову, часто кодируется как часть токена, что влияет на контекстную интерпретацию.
3. Эмбеддинги: токены становятся векторами
После токенизации каждый токен преобразуется в вектор — эмбеддинг. Если у нас словарь размером V и размерность эмбеддинга d_model, то матрица эмбеддингов имеет размер V × d_model. Для GPT-3 d_model = 12 288.
К токенным эмбеддингам добавляются позиционные эмбеддинги — информация о том, где в последовательности находится данный токен. GPT использует обучаемые позиционные эмбеддинги (в отличие от оригинального трансформера с синусоидальными функциями).
«Механизм внимания — это единственная причина, по которой трансформеры вытеснили все предыдущие архитектуры. Всё остальное — инженерные детали.» — Andrej Karpathy, бывший директор по ИИ, Tesla
4. Самовнимание (Self-Attention): ядро трансформера
Механизм самовнимания — это то, что позволяет модели при обработке каждого токена «смотреть» на все другие токены в контексте и взвешивать их важность.
Для каждого токена создаются три вектора: Query (Q), Key (K) и Value (V). Они получаются линейным преобразованием входного вектора:
Q = X · W_Q
K = X · W_K
V = X · W_V
Затем вычисляется матрица внимания:
Attention(Q, K, V) = softmax(Q · K^T / √d_k) · V
Деление на √d_k — нормализация, предотвращающая взрывной рост градиентов при большой размерности. Функция softmax превращает числа в вероятности, суммирующиеся в 1.
5. Многоголовое внимание (Multi-Head Attention)
Один механизм внимания улавливает один тип зависимостей. GPT-4 использует 96 «голов» внимания — каждая специализируется на своём аспекте: синтаксических зависимостях, семантических ролях, кореференции и т.д.
Результаты всех голов конкатенируются и проходят через линейный слой:
MultiHead(Q,K,V) = Concat(head_1,...,head_h) · W_O
6. Блок трансформера: полная картина
Один блок трансформера-декодера GPT содержит:
- Multi-Head Self-Attention — с маскировкой будущих токенов (causal masking)
- Нормализация слоя (LayerNorm) — стабилизирует обучение
- Feed-Forward Network (FFN) — два линейных слоя с активацией GELU
- Остаточные соединения (Residual connections) — облегчают обучение глубоких сетей
GPT-4 содержит 96 таких блоков, последовательно соединённых. Каждый блок «уточняет» представления токенов, обогащая их контекстом всей последовательности.
7. Generative Pre-Training: как GPT обучается
Предобучение — это задача следующего токена (next-token prediction) на огромном корпусе текстов. Модель не получает явных меток — она обучается на сигнале самого текста. Это делает предобучение самосупервизированным.
GPT-3 обучался на ~300 миллиардах токенов: Common Crawl, WebText2, Books, Wikipedia, GitHub и других источниках. Стоимость обучения GPT-3 оценивается в $4–12 млн при использовании тысяч GPU A100.
8. RLHF: почему ChatGPT «вежлив»
После предобучения применяется Reinforcement Learning from Human Feedback — обучение с подкреплением на основе человеческой обратной связи. Этапы RLHF:
- Supervised Fine-Tuning (SFT): модель дообучается на примерах «хорошего» поведения
- Обучение модели вознаграждения (Reward Model): отдельная модель учится ранжировать ответы
- PPO-оптимизация: основная модель обучается максимизировать оценку Reward Model
RLHF объясняет, почему ChatGPT отвечает вежливо, отказывается от опасных запросов и структурирует ответы — это не свойство предобученной модели, а результат тонкой настройки.
9. Контекстное окно и KV-кэш
Контекстное окно — максимальное количество токенов, которые модель может «видеть» одновременно. GPT-4-turbo обрабатывает до 128 000 токенов. Для эффективной генерации используется KV-кэш: вычисленные ключи и значения для уже обработанных токенов кэшируются, что исключает их повторный пересчёт при генерации каждого нового токена.
Итог: что делает LLM «умной»
LLM не «понимает» язык в человеческом смысле. Она обучилась статистическим закономерностям на огромном массиве текстов и научилась предсказывать вероятное продолжение с учётом контекста. Впечатляющие результаты — следствие масштаба (миллиарды параметров) и качества обучающих данных, а не наличия «понимания».
Именно это делает интерпретируемость и объяснимость LLM одной из ключевых исследовательских задач современной науки об ИИ.
Связанные материалы: ИИ в образовании · Исследования рынка LLM · Глоссарий терминов ИИ