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

Главная мысль не изменилась. LLM держится на трёх опорах: архитектура (трансформер и его эволюция), масштаб (размер модели, данные, вычисления) и обучение (предобучение, дообучение, обучение рассуждению). Но между ними течут не просто условные зависимости — это плотно переплетённая система. Трансформер сделал остальные две опоры возможными, но сам по себе он ничего не «знает». Знание появляется из данных и процесса обучения.

Базовые понятия: словарь, без которого не обойтись

Прежде чем лезть внутрь трансформера, нужно понять, с чем он вообще работает. Модель не видит текст так, как видим его мы. Между человеческим предложением и нейросетью стоит несколько преобразований.

Токены: как текст превращается в числа

Нейросеть не умеет работать с буквами и словами напрямую — она работает с числами. Поэтому первый шаг любой LLM — разбить текст на кусочки, которые называются токенами. Токен — это не обязательно слово. Чаще это часть слова: для английского грубое правило такое — один токен в среднем равен примерно четырём символам или трём четвертям слова.1

Почему не делить просто по словам? Потому что слов слишком много, а ещё бывают опечатки, редкие термины и новые слова, которых модель никогда не видела. Поэтому используют метод BPE (byte pair encoding, «кодирование пар байтов»). Идея простая до наивности: начинаем с отдельных символов, потом находим самую частую пару соседних символов и склеиваем её в новый токен. Повторяем тысячи раз, пока не наберём нужный размер словаря.2 В итоге частые слова получают свой отдельный токен, а редкие разбираются на узнаваемые куски. Размер словаря у современных моделей — около 100 тысяч токенов; у GPT-4, например, это набор из 100 277 токенов.3

Здесь же прячется неочевидная ловушка. Раз модель видит не буквы, а токены, она плохо «чувствует» внутреннюю структуру слова. Классический пример — модель может ошибиться, посчитав буквы в слове, потому что для неё это слово может быть одним нечленимым токеном. Более того, ошибки в токенизации становятся скрытыми ошибками модели: плохая граница между токенами может сбить её при работе с кодом, числами, редкими языками. Токенизация — тихий источник целого класса ошибок, и об этом мы ещё вспомним.

Эмбеддинги: смысл как координаты в пространстве

Токен превратили в номер из словаря. Но номер — это просто метка, в нём нет смысла: 5012 ничем не «ближе» к 5013, чем к 90000. Чтобы у модели появилось понятие похожести, каждому токену сопоставляют вектор — длинный список чисел. Это и есть эмбеддинг (embedding, «вложение»).

Главная идея эмбеддингов: похожие по смыслу слова получают близкие векторы. Слова, которые встречаются в похожих контекстах, оказываются рядом в этом многомерном пространстве — на этом принципе «слово узнаётся по компании» построена вся современная векторная семантика.4 Знаменитый ранний пример — модель word2vec, которая научилась таким представлениям и показала, что с векторами слов можно делать почти арифметику: вектор «король» минус «мужчина» плюс «женщина» оказывается близок к вектору «королева».5 Смысл превратился в геометрию.

Для LLM это фундамент. Эмбеддинги — это входной язык модели. Вся дальнейшая работа трансформера — это операции над этими векторами: модель постепенно уточняет их так, чтобы из «слова вообще» получилось «слово в этом конкретном предложении».

Контекстное окно: сколько модель видит за раз

Контекстное окно — это максимальная длина последовательности токенов, которую модель может обработать за один раз. Всё вместе — и ваш запрос, и ответ модели — должно уместиться в это окно.1 Если текст длиннее, самое старое просто не помещается.

Окно ограничено не капризом разработчиков, а математикой механизма внимания: стоимость растёт квадратично от длины. Удвоили длину входа — вычислений и памяти стало вчетверо больше. Поэтому контекстное окно — это всегда компромисс между «видеть больше» и «считать дешевле». К этой квадратичной проблеме мы ещё вернёмся, потому что именно из-за неё появились альтернативы трансформеру и методы, которые пытаются её преодолеть.

Параметры: где хранится «знание»

Параметры (их же называют весами) — это настраиваемые числа внутри модели. Именно их подкручивают во время обучения, и именно в них в размазанном виде хранится всё, что модель «знает». Когда говорят «модель на 175 миллиардов параметров» — речь про GPT-3,6 — это и есть масштаб: 175 миллиардов чисел, каждое из которых обучение чуть-чуть сдвинуло в нужную сторону.

Параметры — это не база данных с фактами. Это, скорее, сжатое статистическое отражение всего обучающего текста. Отсюда и сила модели, и её слабости: она хорошо обобщает, но может и уверенно выдумывать.

Языковое моделирование: одна задача, из которой растёт всё

И вот самое важное понятие, которое часто проговаривают вскользь. Чему модель вообще учится? Одной-единственной задаче: предсказывать следующий токен. Дан кусок текста — назови наиболее вероятное продолжение. Это называется языковым моделированием.

Звучит примитивно, но в этой простоте вся суть. Чтобы хорошо угадывать следующее слово в миллиардах разных текстов, модель вынуждена выучить грамматику, факты, стиль, логику рассуждения и многое другое — потому что без этого не угадаешь. Цель тривиальна, а путь к ней требует выучить устройство языка и мира. Технически это оформляется как минимизация ошибки предсказания (cross-entropy loss), но идея именно такая: научись продолжать текст — и попутно научишься всему остальному.

Запомните эту мысль: вся «логика» LLM — это очень хорошо натренированное предсказание следующего токена. Трансформер — это машина, которая делает такое предсказание особенно точно.

Трансформер: двигатель, на котором всё едет

Теперь — к главному. Трансформер появился в 2017 году в статье с дерзким названием «Attention Is All You Need» — «Внимание это всё, что нужно».7 Название было программным заявлением: авторы предложили отказаться от того, как обрабатывали последовательности раньше, и оставить только один механизм — внимание.

Зачем он понадобился

До трансформера тексты обрабатывали в основном рекуррентными сетями (RNN): слово за словом, по очереди, как человек читает строку слева направо. У этого подхода две беды. Во-первых, медленно — последовательность нельзя обработать целиком, только шаг за шагом. Во-вторых, забывчивость — к концу длинного предложения сеть уже плохо помнит, что было в начале.

Трансформер решил обе проблемы одним ходом: он смотрит на все слова сразу и для каждого слова решает, на какие другие слова стоит обратить внимание. Никакой очереди — вся последовательность обрабатывается параллельно. Именно эта параллельность позже позволила обучать гигантские модели: их стало возможно эффективно считать на видеокартах.

Self-attention: каждое слово смотрит на остальные

Сердце трансформера — механизм самовнимания (self-attention). Объясню на примере. Возьмём фразу: «Кот не перешёл дорогу, потому что он устал». К чему относится «он» — к коту или к дороге? Человек понимает мгновенно: к коту, дороги не устают. Самовнимание делает примерно то же самое — позволяет слову «он» «подтянуть» к себе смысл слова «кот».

Как это устроено технически. Для каждого слова модель строит три вектора с говорящими названиями:

  • Query (запрос) — «что я ищу?»
  • Key (ключ) — «что я могу предложить другим?»
  • Value (значение) — «какую информацию я несу?»

Дальше происходит вот что. Запрос каждого слова сравнивается с ключами всех остальных слов — так получается оценка, насколько каждое слово релевантно. Чем лучше запрос совпал с ключом, тем выше оценка. Эти оценки превращают в веса (через softmax — функцию, которая делает из чисел доли, в сумме дающие единицу), и слово собирает себе новое представление как взвешенную смесь чужих значений. Слово «он» поставит высокий вес слову «кот» — и вберёт его смысл.

В оригинальной статье это записано одной компактной формулой:

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V

Расшифрую её словами, потому что за значками прячется ровно то, что я описал. QKᵀ — это сравнение всех запросов со всеми ключами (отсюда, кстати, и квадратичная стоимость: каждое слово сравнивается с каждым). Деление на √dₖ — техническая нормировка, чтобы числа не разлетались и обучение было устойчивым. softmax превращает оценки в веса. Умножение на V — сборка итогового представления из значений.7 Вот и весь механизм: сравнить, взвесить, смешать.

Multi-head attention: несколько точек зрения сразу

Одного внимания мало — у слов много типов связей. С одним «взглядом» модель уловила бы что-то одно: например, грамматическую связь, но упустила смысловую. Поэтому внимание делают многоголовым (multi-head attention): запускают несколько независимых механизмов внимания параллельно, каждый со своими матрицами Q, K, V.7 Одна «голова» может следить за тем, какое существительное к какому глаголу относится, другая — за тем, кто на кого ссылается местоимением, третья — за чем-то ещё. Потом их результаты склеивают вместе. В базовой модели из оригинальной статьи таких голов было восемь.7

Позиционное кодирование: вернуть порядок слов

У самовнимания есть забавный побочный эффект: оно смотрит на все слова сразу и поэтому само по себе не различает порядок. Для него «собака укусила человека» и «человек укусил собаку» — одинаковый набор слов. А порядок в языке — это всё.

В оригинальной статье 2017 года для кодирования позиции использовали синусоидальные функции: каждой позиции в предложении сопоставляли вектор из синусов и косинусов разных частот. Это работало, но позже нашли более удачные способы.

Современный стандарт — это RoPE (rotary position embedding).8 Вместо добавления позиционного вектора (аддитивный подход), RoPE кодирует позицию через вращение (rotation matrix) в пространстве представлений. Это фундаментально отличается: RoPE вводит явную зависимость относительной позиции между токенами прямо в механизм внимания через мультипликативное преобразование, а не аддитивное.8 На практике это даёт RoPE два больших преимущества. Во-первых, RoPE легче расширяется на длинные контексты — есть методы вроде position interpolation и YaRN, которые позволяют обучать модель на одной длине, а затем «растягивать» контекстное окно на инференсе. Во-вторых, RoPE точнее кодирует именно относительное расстояние между токенами, а не их абсолютные позиции, — а для языка важно как раз взаимное расположение слов.

Альтернатива — ALiBi (attention with linear biases): она добавляет в матрицу внимания фиксированное смещение, зависящее от расстояния между токенами. ALiBi вообще не требует обучаемых позиционных параметров и даёт неожиданно хороший инференс на длинных контекстах, но RoPE сейчас более распространена в фронтир-моделях.

KV-cache: память на инференсе

Во время генерации модель прогоняет последовательность через свои слои, и на каждом слое механизм внимания тратит вычисления. Поскольку генерация авторегрессионная — каждый новый токен дописывается к тексту, — возникает естественная экономия: Key и Value для уже обработанных токенов не меняются, и пересчитывать их на каждом шаге не нужно. Достаточно один раз вычислить и сохранить.

Вот это сохранённые Key и Value матрицы для всех слоёв — это и есть KV-cache. На практике это огромное облегчение: вместо того, чтобы на каждом шаге обрабатывать всю последовательность заново, модель обрабатывает только новый токен, а для остальных просто достаёт KV из кэша.

Но есть подвох: память под KV-cache растёт линейно с длиной контекста.9 На длинном контексте именно кэш становится главным потребителем памяти — нередко половина и больше всей памяти GPU. При достаточно длинном контексте он может весить больше, чем сами веса модели. Отсюда выросло целое поле оптимизаций: от простого INT4-квантования кэша до token eviction (выбрасывание старых малозначимых токенов), sparse KV-cache и гибридных схем с памятью GPU и CPU.9

Обзор 2026 года показал, что универсальной техники оптимизации KV-cache не существует: лучшая стратегия зависит от длины контекста, характеристик железа и профиля нагрузки. Для очень длинных контекстов выигрывают удаление и сжатие кэша; для serving с высоким throughput — гибридные системы вроде PagedAttention; для edge-устройств — линейное внимание; для reasoning-задач, где важна точность, — стандартное внимание с INT8-квантованием.9

Эффективное внимание: от сложности O(N²) к прежде невозможному

Квадратичная сложность внимания — это не просто неудобство, это физический потолок длины контекста на данном оборудовании. Сообщество искало способы обойти это ограничение десять лет. Сейчас есть несколько проверенных путей.

FlashAttention — это инженерный приём, а не новая архитектура. Идея: то же самое точное внимание, но вычисленное IO-aware способом, с минимумом обращений к медленной памяти (HBM).10 Классическое внимание требует Θ(Nd + N²) обращений к HBM; FlashAttention обходится Θ(N²d²M⁻¹), где M — размер быстрой SRAM на GPU. На практике это даёт ускорение вычисления внимания до 7,6× на типичных длинах (например, GPT-2 с контекстом 1K).10 Технически FlashAttention опирается на tiling (обработку блоками) и recomputation — пересчитывает внимание в backward pass вместо хранения N×N матрицы в памяти, по сути обменивая лишние вычисления на экономию памяти.11

Главное наблюдение: операции вроде softmax в внимании упираются в обращения к памяти, а не в арифметику (FLOP).11 FlashAttention выполняет даже больше арифметики, чем стандартное внимание (из-за пересчёта), но всё равно работает в 3–7,6× быстрее, потому что экономит обращения к HBM. Вывод для всей области оптимизации: у LLM узкое место — пропускная способность памяти, а не число операций.

Multi-Query Attention (MQA) и Grouped-Query Attention (GQA) — это архитектурные изменения, а не инженерная оптимизация. В стандартной multi-head attention каждая из h голов имеет свои KV-проекции. В MQA все h голов делят одну-единственную пару KV. Это уменьшает KV-cache в h раз и ускоряет инференс. Минус: падает качество, особенно у больших моделей.

GQA — компромисс: KV делят не на все h голов, а на g групп (g > 1). Качество падает меньше, чем у MQA, при том же ускорении. Google показал, как превратить готовый multi-head checkpoint в GQA-модель через uptraining — дополнительное обучение всего на 5% от исходного бюджета compute.12 После такого uptraining GQA-версия держит качество, близкое к multi-head, при скорости инференса почти как у MQA.

Важная деталь масштабирования: чем больше модель, тем больше в ней голов внимания. MQA сводит KV к одной голове — и с ростом модели это всё более резкое урезание пропускной способности. GQA сокращает KV пропорционально размеру модели, поэтому ровнее ведёт себя в семействах моделей разного размера.13

Нормализация и активации в FFN-слоях

В каждом трансформер-блоке после внимания идёт полносвязный слой (feed-forward, FFN) — на него обычно приходится бо́льшая часть параметров блока. Если внимание решает, откуда брать информацию, то FFN решает, что с ней делать.

Практически все современные модели используют pre-layer-norm (нормализацию перед подслоем, а не после него) и RMSNorm вместо оригинальной layer normalization. RMSNorm проще: вместо вычитания среднего и деления на стандартное отклонение он просто делит на RMS (root mean square). Это численно стабильнее и быстрее считается на GPU.

В FFN вместо простой ReLU используют GeLU (Gaussian Error Linear Unit) — сглаженный вариант ReLU, который даёт более удобные градиенты при обучении. Ещё более новый стандарт — SwiGLU: вход проходит через две линейные проекции, одну с активацией Swish, другую без, и их перемножают. Такой gated-вариант обучается заметно лучше обычного FFN.

Остальная обвязка: что делает башню устойчивой

Трансформер — это не один слой внимания, а высокая стопка одинаковых блоков (в больших моделях — десятки или даже сотни). Чтобы такую башню вообще можно было обучить, в каждый блок добавляют:

  • Остаточные связи (residual connections) — вход каждого подслоя добавляется к его выходу. Это позволяет информации беспрепятственно проходить сквозь десятки слоёв и спасает обучение от затухания.
  • Нормализация (layer normalization или RMSNorm) — удерживает числа в разумном диапазоне, чтобы обучение глубокой стопки не разваливалось.

Поэтому, вопреки названию статьи, одного внимания физически недостаточно — без этой обвязки глубокую модель не обучить.

Mixture of Experts: редкая активация вместо полной сети

В последние пару лет на фронтире появились модели на базе Mixture of Experts (MoE). Вместо того, чтобы каждый токен проходил через все FFN-параметры каждого блока, модели вроде Mixtral, DeepSeek-V2/V3 используют сотни экспертов — специализированных FFN-слоёв — и для каждого токена решают, через какие эксперты его пропустить.

В архитектуре DeepSeekMoE эксперты делятся на две группы.14 Shared experts работают всегда — они держат общее знание, нужное для любой задачи. Routed experts включаются редко: для каждого токена разреженная softmax-маршрутизация (gating) выбирает лишь несколько из них, и эти эксперты специализируются на отдельных доменах.

Это даёт разреженную активацию: у DeepSeek-V3 671 млрд параметров всего, но на каждый токен работают лишь ~37 млрд. Поэтому по стоимости инференса такая модель ближе к гораздо меньшей плотной сети, чем к своему полному размеру. Так сдвигается фронтир: модели растут, а инференс остаётся доступнее, чем у плотной модели тех же масштабов.

Минус MoE: нужно следить за балансировкой нагрузки, чтобы один эксперт не «перетягивал» на себя большинство токенов, и платить за маршрутизацию токенов между экспертами. Но выигрыш обычно перевешивает.

Как из всего этого получается ответ

Сложим картину целиком. Текст разбили на токены, превратили в эмбеддинги, добавили позиции (через RoPE или ALiBi). Дальше последовательность проходит через стопку трансформер-блоков, каждый из которых может быть dense или MoE. На каждом уровне самовнимание (в варианте multi-head или GQA) перемешивает информацию между словами, полносвязные слои (с активациями GeLU/SwiGLU) её обрабатывают, и представление каждого слова становится всё богаче и контекстнее. KV-cache сохраняет уже вычисленные Key-Value пары для ускорения инференса. Нижние слои ловят простое — грамматику, ближайших соседей. Верхние — сложное: смысл, связи на расстоянии, намерение.

На выходе модель берёт представление последнего слова и через финальный слой превращает его в вероятности: для каждого токена из словаря — насколько он подходит на роль следующего. Дальше один токен выбирается, дописывается к тексту, и всё повторяется заново. Слово за словом. Это называется авторегрессией: модель генерирует ответ по одному токену, каждый раз скармливая самой себе уже написанное.

На выходе модель выдаёт не один токен, а целое распределение вероятностей по словарю. Как выбрать из него следующий токен — отдельный вопрос со своими стратегиями декодирования. Самая простая, greedy, берёт токен с наибольшей вероятностью: воспроизводимо, но часто пресно. Sampling выбирает токен случайно, по распределению: живее, но иногда заносит в странное. Балансом управляет температура — логиты делят на неё перед выбором: высокая температура делает распределение более плоским, а ответ более случайным; низкая — заостряет его и приближает к greedy. Чтобы отсечь маловероятный хвост, поверх ставят фильтры: top-k оставляет k самых вероятных токенов, top-p (nucleus) — наименьшее множество токенов, на которое суммарно приходится вероятность p (скажем, 0,9). Выбор стратегии задаёт характер текста: greedy даёт ровные, но монотонные ответы, nucleus sampling — более естественные, но менее предсказуемые.

Вот здесь и рождается то, что мы воспринимаем как «логику» и «рассуждение» LLM. Никакого отдельного модуля мышления внутри нет. Есть очень глубокая стопка внимания, которая на гигантском объёме текста научилась так перемешивать смыслы слов, что предсказание следующего токена раз за разом оказывается осмысленным. Связное рассуждение — это побочный продукт безупречно натренированного угадывания продолжения.

Две породы трансформеров: GPT против BERT

Стоит развести два семейства, потому что их часто путают. Оригинальный трансформер состоял из двух частей — кодировщика (encoder) и декодировщика (decoder). Дальше пути разошлись.

BERT — это только кодировщик.15 Он смотрит на предложение в обе стороны сразу (двунаправленное внимание) и учится, угадывая спрятанные слова в середине текста. Он отлично понимает текст — но не предназначен его генерировать. Это инструмент для классификации, поиска, анализа.

GPT — это только декодировщик.6 Он смотрит лишь назад, на уже написанное (внимание с «маской», которая закрывает будущее), и учится предсказывать следующее слово. Именно поэтому он умеет генерировать текст — и именно эта порода стала основой современных чат-ботов. Когда сегодня говорят «LLM», почти всегда имеют в виду decoder-only модель в духе GPT.

Обучение: где на самом деле появляется ум

Архитектуру разобрали. Но сама по себе свежесобранная модель — это пустая башня со случайными весами, она не умеет ничего. Ум появляется на этапе обучения, и здесь спрятана половина ответа на вопрос «что важнее трансформера».

Предобучение и законы масштаба

Предобучение (pretraining) — это та самая тренировка предсказывать следующий токен, но на колоссальном объёме текста: книги, статьи, веб-страницы, код. GPT-3 обучали примерно на 300 миллиардах токенов.6 Модель прогоняет через себя терабайты текста и миллиарды раз чуть-чуть подкручивает свои веса.

И тут обнаружилась удивительная закономерность. Качество модели предсказуемо растёт с масштабом по простому математическому правилу — степенному закону. Команда из OpenAI показала: ошибка модели плавно падает, если увеличивать размер модели, объём данных или вычислительный бюджет — и так на много порядков.16 Эти законы масштаба (scaling laws) стали неожиданным открытием: оказалось, что прогресс можно во многом просто купить за вычисления, а не только изобрести.

Позже это правило уточнили. Работа про модель Chinchilla показала, что ранние модели были «недокормлены» данными: на каждое удвоение размера модели нужно удваивать и количество обучающих токенов.17 Грубое практическое правило — около 20 токенов данных на каждый параметр для compute-optimal обучения. Показательный результат: модель Chinchilla с 70 миллиардами параметров, но обученная на 1,4 триллиона токенов, обошла модель Gopher на 280 миллиардов параметров, обученную на меньших данных.17 Вывод, который трудно переоценить: меньшая модель на правильных данных бьёт большую модель на недостаточных. Данные — не менее важный рычаг, чем размер.

Недавний тренд 2024–2026 — переход от compute-optimal к overtraining: берут модель меньше compute-оптимальной и обучают её на гораздо больших данных. По compute это расточительно, зато готовая модель имеет меньше параметров при том же или лучшем качестве — а значит, дешевле в инференсе. Это критично, когда инференс обходится дороже обучения.

Возникающие способности и обучение в контексте

При достаточном масштабе у моделей проявляются возникающие способности (emergent abilities) — навыки, которых у маленьких моделей просто нет, а у больших вдруг появляются. По определению из соответствующей работы, способность считается возникающей, если её нельзя было предсказать, экстраполируя поведение моделей поменьше.18 Маленькая модель не умеет складывать многозначные числа или следовать инструкции — большая внезапно начинает.

Самый яркий пример — обучение в контексте (in-context learning). Большая модель умеет осваивать новую задачу прямо по нескольким примерам в запросе, без всякого дообучения — просто из текста подсказки.6 Вы показываете ей два-три примера перевода прямо в промпте, и она продолжает в том же духе. Это не было запрограммировано — это эмерджентное свойство масштаба.

Дообучение и RLHF: как из «продолжателя текста» сделать собеседника

Предобученная модель умеет продолжать текст, но это ещё не помощник. Спросите её — и она с равной вероятностью выдаст ответ или продолжит ваш вопрос новыми вопросами, потому что в интернете встречается и то, и другое. Чтобы превратить её в послушного собеседника, нужно дообучение.

Сначала идёт инструктивное дообучение (instruction tuning) — модель учат на примерах «вопрос — хороший ответ». А затем — самый интересный шаг, RLHF, обучение с подкреплением на обратной связи от человека. Людям показывают несколько ответов модели, они отмечают, какой лучше; на этих оценках обучают отдельную модель-«оценщика», и уже она дальше подталкивает основную модель давать ответы, которые нравятся людям.19

Вот насколько это важно: небольшая модель InstructGPT на 1,3 миллиарда параметров, прошедшая RLHF, давала ответы, которые люди предпочитали ответам стократно большей модели GPT-3 на 175 миллиардов параметров.19 Дообучение перевесило стократную разницу в размере. Та магия «понимания запроса» и «вежливости», за которую мы любим современные чат-боты, рождается в основном здесь, а не в архитектуре трансформера.

Обучение рассуждению: вычисления на этапе ответа

RLHF научил модель быть собеседником, но не рассуждать глубже, чем позволяет одно беглое прохождение по тексту. Следующий шаг сделали уже на наших глазах: модель стали отдельно учить думать перед ответом. Вместо мгновенного ответа она сначала разворачивает длинную цепочку рассуждений — черновик мысли — и только потом выдаёт итог.

Самое неожиданное — как этому учат. Оказалось, развёрнутое рассуждение можно вырастить почти чистым обучением с подкреплением: модель получает награду за правильный итоговый ответ, а как к нему прийти — придумывает сама. Работа DeepSeek-R1 показала, что при таком обучении у модели сами собой проявляются проверка собственных шагов, возврат назад и смена стратегии — приёмы, которым её напрямую никто не показывал.20

Результат? На AIME 2024 (сложные математические задачи) DeepSeek-R1-Zero прошёл от базового результата в 15,6% до 77,9% точности через чистый RL, без supervised fine-tuning.20 С self-consistency decoding (несколько проходов, выбор большинства) результат поднялся до 86,7%. Это трансформирует представление о том, как учить моделей рассуждать: вместо сложных систем отслеживания логики можно просто правильно настроить reward signal.

Отсюда — новая ось, которой не было в исходной картине: вычисления на этапе ответа (test-time compute). Раньше всё решали затраты на обучение; теперь модель можно сделать умнее, просто дав ей подумать подольше прямо во время генерации. Это уточняет тезис, с которого мы начали: рассуждение по-прежнему собирается из предсказаний следующего токена, но цепочку этих предсказаний теперь специально удлиняют и затачивают под верный ответ. «Побочный продукт» превратился в то, что тренируют намеренно.

Однако простое удлинение генерации (вроде добавления слова «Wait» несколько раз подряд) не работает стабильно: модель начинает колебаться между разными ответами, качество не растёт линейно.21 Чтобы это работало, нужна правильная структура длинной цепочки рассуждений и обучающий RL-сигнал.

Практические ограничения и альтернативы

Квадратичная сложность внимания

Поскольку каждое слово сравнивается с каждым, стоимость растёт как квадрат длины текста. Это прямое ограничение на длину контекста и причина, по которой длинные документы даются моделям дорого. На инференсе это выливается в рост KV-cache, о котором мы уже говорили. На обучении — в уменьшение batch-size для длинных последовательностей или в необходимость экономить память специальными приёмами (например, gradient checkpointing).

Методы расширения контекста вроде position interpolation и YaRN помогают, но основная сложность остаётся O(N²) для вычисления матрицы внимания.

Трансформер — не единственная возможная архитектура

В 2023 году появилась Mamba — модель на основе пространств состояний (state-space model), которая обрабатывает текст с линейной, а не квадратичной сложностью, даёт примерно впятеро более высокую пропускную способность и тянет последовательности до миллиона элементов.22 Есть и другие альтернативы — RWKV, разные варианты линейного внимания.23 Правда, у них своя цена: такие модели заметно хуже справляются с задачами, где нужно точно скопировать или найти конкретный фрагмент из ранее увиденного — там классическое внимание пока выигрывает. Универсального победителя нет, но монополия трансформера — не закон природы.

Квантизация для дешёвого инференса

Хранить и считать сотни миллиардов параметров в float32 (32 бита на число) дорого. Поэтому почти все боевые развёртывания используют квантизацию — хранят параметры в меньшей битности: INT8 (8 бит), INT4 (4 бита). INT8 обычно почти не задевает качество; INT4 бьёт по нему заметнее, но экономия памяти часто того стоит. На инференсе это даёт 2–4-кратное сокращение памяти и ускоряет операции, которые упираются в память.

Модель не «понимает» в человеческом смысле

Влиятельная критическая работа назвала большие языковые модели «стохастическими попугаями»: они виртуозно складывают форму языка по статистике, но не имеют модели мира за словами и, строго говоря, не понимают смысл так, как человек.24 Это объясняет галлюцинации — уверенные, гладкие и при этом ложные ответы. Модель оптимизирована на правдоподобие продолжения, а не на истинность; красивая ложь для неё статистически не хуже правды, если в данных так встречалось.

Токенизация — недооценённый источник ошибок

Мы начали с неё, ей и закончим. Поскольку модель видит токены, а не буквы и не цифры по отдельности, целый класс «глупых» ошибок — путаница в подсчёте букв, спотыкания на арифметике, чувствительность к опечаткам, проблемы с редкими языками и кодом — растёт именно из этапа токенизации, ещё до того, как в дело вступает трансформер. Это не проблема, которую можно решить лучше обучением — это физическое ограничение входного кодирования.

Итог: на чём всё держится

Вернёмся к исходному вопросу. На чём строятся LLM?

Если совсем коротко: на предсказании следующего токена, доведённом до совершенства тремя средствами — архитектурой, масштабом и обучением.

  • Базовые понятия — токены, эмбеддинги, контекстное окно, параметры, языковое моделирование — это язык и память, на которых модель работает. Без них трансформеру нечего обрабатывать.
  • Трансформер и его эволюция — self-attention, позиционное кодирование RoPE, GQA для эффективности, MoE для масштабируемости инференса, FlashAttention для скорости. Это двигатель, и его развитие идёт параллельно с растущими требованиями к контексту и скорости.
  • Масштаб и обучение — то, без чего двигатель не поедет. Гигантские данные дают знание, законы масштаба превращают вычисления в качество, RLHF превращает «продолжателя текста» в собеседника, а обучение рассуждению (через RL и test-time compute) — в того, кто думает перед ответом.

Трансформер — это правильный ответ на вопрос «что в центре», но неполный ответ на вопрос «за счёт чего LLM работает». Самое частое, что упускают, объясняя LLM, — это что ум модели живёт не в схеме внимания, а в данных и процессе обучения. Архитектура задала потолок возможностей; масштаб и обучение этот потолок достали.

Insufficient Evidence

  • Конкретные размеры моделей и датасетов для новейших закрытых систем (GPT-4 и позже, claude-opus и позже) в основном не публикуются производителями; приведённые точные числа относятся к моделям с открытыми техническими отчётами (GPT-3, Chinchilla, InstructGPT, DeepSeek-R1). Современные цифры для закрытых моделей здесь сознательно не приводятся, чтобы не выдавать оценки за факты.
  • Механизм in-context learning на низком уровне остаётся предметом исследования; есть несколько конкурирующих объяснений (implicit gradient descent, search in latent space), но прямого консенсуса нет.
  • Спор «архитектура против масштаба» — открытый исследовательский вопрос без однозначного консенсуса; в статье он представлен как живая дискуссия, а не как решённая проблема.
  • Степень и природа «понимания» у LLM — предмет продолжающихся споров на стыке информатики и когнитивной науки; критика «стохастических попугаев» отражает одну влиятельную позицию, но не единственную.
  • Детали обучения reasoning-моделей вроде o1/R1 (точный reward signal, размер датасета для RL, hyperparameters) в основном закрыты и не публикуются компаниями; информация берётся из открытых технических отчётов DeepSeek и косвенных источников.

Quality Metrics

ПараметрЗначение
Режимdeep (расширенный технический обзор)
Найдено источников30+ (первичные: arXiv, технические отчёты; вторичные: обзоры, документация)
Процитировано непосредственно24
Покрытие основных утверждений ссылками~95%
Триангуляция ключевых выводовscaling laws (Kaplan + Hoffmann), важность трансформера (Vaswani), эффективное внимание (Dao, FlashAttention), MoE (DeepSeek), reasoning (DeepSeek-R1), KV-cache (обзор 2026)
Adversarial-проходвыполнен: из 25 проверенных утверждений 14 подтверждены, 11 отбраковано (порог отбраковки — 2 из 3 голосов против); основные возражения (квадратичность, альтернативы архитектуре, галлюцинации, токенизация) включены явно
Статус верификацииотбракованные утверждения в текст не вошли; цитируемые источники открыты напрямую
Отбракованобудущедатированные и ошибочные arXiv-ID исключены; конкретные числа сверены с первоисточниками

  1. OpenAI. “Key concepts — Tokens and context length.” OpenAI API Documentation, 2026. https://developers.openai.com/api/docs/concepts ↩︎ ↩︎

  2. Hugging Face. “Summary of the tokenizers — Byte-Pair Encoding (BPE).” Hugging Face Transformers Documentation. https://huggingface.co/docs/transformers/tokenizer_summary ↩︎

  3. Karpathy, Andrej. “Let’s build the GPT Tokenizer” (Neural Networks: Zero to Hero). 2024. https://karpathy.ai/zero-to-hero.html ↩︎

  4. Jurafsky, Daniel; Martin, James H. “Vector Semantics and Embeddings” (Speech and Language Processing, 3rd ed., ch. 6). 2025. https://web.stanford.edu/~jurafsky/slp3/ ↩︎

  5. Goldberg, Yoav; Levy, Omer. “word2vec Explained: deriving Mikolov et al.’s negative-sampling word-embedding method.” arXiv:1402.3722, 2014. https://arxiv.org/abs/1402.3722 ↩︎

  6. Brown, Tom B., et al. “Language Models are Few-Shot Learners.” arXiv:2005.14165, 2020. https://arxiv.org/abs/2005.14165 ↩︎ ↩︎ ↩︎ ↩︎

  7. Vaswani, Ashish, et al. “Attention Is All You Need.” arXiv:1706.03762, 2017. https://arxiv.org/abs/1706.03762 ↩︎ ↩︎ ↩︎ ↩︎

  8. Su, Jianlin, et al. “RoFormer: Enhanced Transformer with Rotary Position Embedding.” arXiv:2104.09864, 2021. https://arxiv.org/abs/2104.09864 ↩︎ ↩︎

  9. Xu, Yichun; Khaira, Navjot K.; Singh, Tejinder. “KV Cache Optimization Strategies for Scalable and Efficient LLM Inference.” arXiv:2603.20397, 2026. https://arxiv.org/abs/2603.20397 ↩︎ ↩︎ ↩︎

  10. Dao, Tri; Fu, Dan W.; Ermon, Stefano; Rudra, Atri; Ré, Christopher. “FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.” arXiv:2205.14135, 2022. https://arxiv.org/abs/2205.14135 ↩︎ ↩︎

  11. Dao, Tri, et al. (FlashAttention paper, section on HBM vs FLOP analysis). arXiv:2205.14135, 2022. ↩︎ ↩︎

  12. Ainslie, Joshua, et al. “GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints.” arXiv:2305.13245, 2023. https://arxiv.org/abs/2305.13245 ↩︎

  13. Ainslie, Joshua, et al. (GQA paper, scaling analysis). arXiv:2305.13245, 2023. ↩︎

  14. Dai, Damai, et al. “DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models.” arXiv:2401.06066, 2024. https://arxiv.org/abs/2401.06066 (теоретический разбор стратегии shared/routed — Nguyen, Huy, et al. “On DeepSeekMoE: Statistical Benefits of Shared Experts and Normalized Sigmoid Gating.” arXiv:2505.10860, 2025. https://arxiv.org/abs/2505.10860↩︎

  15. Devlin, Jacob, et al. “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” arXiv:1810.04805, 2018. https://arxiv.org/abs/1810.04805 ↩︎

  16. Kaplan, Jared, et al. “Scaling Laws for Neural Language Models.” arXiv:2001.08361, 2020. https://arxiv.org/abs/2001.08361 ↩︎

  17. Hoffmann, Jordan, et al. “Training Compute-Optimal Large Language Models” (Chinchilla). arXiv:2203.15556, 2022. https://arxiv.org/abs/2203.15556 ↩︎ ↩︎

  18. Wei, Jason, et al. “Emergent Abilities of Large Language Models.” arXiv:2206.07682, 2022. https://arxiv.org/abs/2206.07682 ↩︎

  19. Ouyang, Long, et al. “Training language models to follow instructions with human feedback” (InstructGPT). arXiv:2203.02155, 2022. https://arxiv.org/abs/2203.02155 ↩︎ ↩︎

  20. DeepSeek-AI. “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning.” arXiv:2501.12948, 2025. https://arxiv.org/abs/2501.12948 ↩︎ ↩︎

  21. Wu, Guojun. “It’s Not That Simple. An Analysis of Simple Test-Time Scaling.” arXiv:2507.14419, 2025. https://arxiv.org/abs/2507.14419 ↩︎

  22. Gu, Albert; Dao, Tri. “Mamba: Linear-Time Sequence Modeling with Selective State Spaces.” arXiv:2312.00752, 2023. https://arxiv.org/abs/2312.00752 ↩︎

  23. Katharopoulos, Angelos, et al. “Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention.” arXiv:2006.16236, 2020. https://arxiv.org/abs/2006.16236 ↩︎

  24. Bender, Emily M.; Gebru, Timnit; McMillan-Major, Angelina; Shmitchell, Shmargaret. “On the Dangers of Stochastic Parrots: Can Language Models Be Too Big?” ACM FAccT, 2021. https://dl.acm.org/doi/10.1145/3442188.3445922 ↩︎