Все современные LLM собраны из одних и тех же блоков — слоёв трансформера. Разбираемся, как это работает, без сложной математики.
Модели не читают текст. Они работают с числами. Токенизатор режет фразу на кусочки — субсловные токены — и превращает каждый в ID. Слово «tokenization» может разделиться на [“token”, “ization”]. Отсюда классический баг: LLM путаются, когда их просят посчитать буквы R в «strawberry». Они не видят буквы, только токены.
Каждый ID превращается в вектор — эмбеддинг. Это как координаты смысла в многомерном пространстве. «Король» близок к «королеве», «Париж» — к «Франции». С этими векторами даже можно делать арифметику: king − man + woman ≈ queen. Но эмбеддинг не знает, на каком месте в предложении стоит слово. Это исправляет позиционное кодирование.
Современные модели (LLaMA, Mistral, Gemma, Qwen) используют Rotary Position Embeddings, или RoPE. Вместо того чтобы добавлять код позиции к вектору, RoPE поворачивает вектор в пространстве. Чем дальше токен от начала, тем сильнее поворот. При сравнении токенов в следующем шаге важна разница между их поворотами — так модель понимает расстояние между словами. Правда, даже с RoPE работает эффект «потерянных в середине»: информация с краёв длинного промпта усваивается лучше, чем из середины.
Главный механизм — внимание (attention). Каждый токен играет три роли: Query («что я ищу»), Key («что я предлагаю другим») и Value («какую информацию передаю»). Query одного токена сравнивается с Key всех остальных (через скалярное произведение), получаются баллы совпадения. Softmax превращает их в веса. По этим весам берётся среднее от Value — так токен «заимствует» информацию у подходящих соседей. У GPT и подобных моделей есть каузальная маскировка: токен видит только свои и предыдущие позиции, но не будущие.
У внимания один недостаток — в полной версии каждый токен сравнивается со всеми, поэтому удвоение длины промпта учетверяет объём работы. Исследователи нашли внутри внимания специализированные головы, например induction heads (их открыла Anthropic в 2022). Они ловят повторяющиеся паттерны вроде «A B … A» и предсказывают B.
Одной головы мало — язык слишком сложный. Поэтому внимание делают многоголовым (Multi-Head Attention). Каждая голова — отдельный проход со своими проекциями, и у каждой своя специализация: одни ловят грамматику, другие — связь местоимений с именами, третьи — длинные ссылки между предложениями. Чтобы не хранить кучу Key и Value для каждого сгенерированного токена (это KV cache, главный потребитель памяти), многие модели (LLaMA-2, Mistral) используют Grouped-Query Attention (GQA): несколько query-голов делят одну пару key/value. Памяти нужно меньше.
После внимания — Feed-Forward Network (FFN). Это обработка каждого токена по отдельности. Сначала вектор расширяется в 4 раза (у современных SwiGLU-моделей — иначе), потом применяется нелинейность (сейчас популярны GELU и SwiGLU), потом сжимается обратно. Без нелинейности сеть бы схлопнулась в одно линейное преобразование. В плотных моделях именно в FFN хранится большая часть знаний. Исследователи даже научились править факты прямо в весах — метод ROME может заменить «Эйфелева башня в Париже» на «в Риме» одним точечным изменением матрицы.
В гигантских моделях FFN заменяют на Mixture of Experts (MoE). У Mixtral 8x7B восемь «экспертов» на слой, но на каждый токен работают только два. Всего параметров 46,7 млрд, но на один токен тратится около 12,9 млрд — вычислительная стоимость растёт медленнее.
Ключевая штука, сделавшая возможными глубокие трансформеры, — residual stream (остаточный поток). Результат каждого блока не заменяет вектор, а прибавляется к нему. Через сто слоев информация просачивается напрямую от входа к выходу, не затухая. Без этого сеть не обучалась бы. Layer normalization (сейчас популярно упрощённое RMSNorm) держит числа в стабильном диапазоне, чтобы они не улетали в бесконечность.
Генерация — это простой цикл: берётся последний вектор, из него получаются logits (сырые оценки для каждого токена из словаря), softmax превращает их в вероятности. Температура (temperature) и top-k/top-p влияют на «творчество» модели. Каждый новый токен добавляется к входу, и цикл повторяется, пока не встретится токен конца последовательности. Ускорение даёт speculative decoding: маленькая модель черновик накидывает несколько токенов вперёд, большая проверяет их пачкой.
Базовая модель тренируется только на одной задаче — предсказывать следующий токен. Всё остальное (инструкции, безопасность, диалог) — результат пост-тренировки. Но сама архитектура у всех современных LLM практически одинаковая: RoPE, SwiGLU, GQA, pre-norm, RMSNorm — это стандарт де-факто для моделей 2023-2025 годов. Разница — в данных обучении, количестве слоёв и пост-обработке. Возможно, будущее за Mamba и state-space моделями, но базовые задачи (токены, позиции, внимание, нелинейность) останутся.