От GPT-2 до Kimi K3: семь лет эволюции внимания и счёт inference для агентов

Если вы сами поднимаете LLM или гоняете многоходовых агентов на длинном контексте, узкое место — не только «сколько параметров», а архитектура внимания и расход памяти на декодирование. Worklog inference-инженера Baseten @waterloo_intern — с исполняемым PyTorch от блока GPT-2 до Kimi K3 — полезен соло-разработчику как карта: почему один и тот же сценарий на разных моделях бьёт по задержке и стоимости по-разному.
Почему инженер по выводу моделей устроил семилетний разбор
В конце июля 2026 @waterloo_intern опубликовал на Baseten пост «22,580: GPT-2 to Kimi K3, explained»: не обзор релизов, а пошаговая история того, как в трансформерах только с декодером меняли способ хранить, обновлять и доставать память. Масштаб наглядный: GPT-2 (февраль 2019) — 124M параметров, open-source Kimi K3 (Moonshot AI) — 2.8T; соотношение 22 580× автор использует как рамку, а не как единственный аргумент «модель лучше».
Материал cdragon123code на Dev.to позиционирует как перекрёстную проверку тезисов Baseten по пяти первоисточникам — статьям и препринтам, — а не замену оригинала. Для читателя без отдельной ML-команды это удобный мост: сначала исполняемый код и интуиция инженера платформы развёртывания, потом сверка с papers.
Семилетняя линия — не «накрутили параметры», а цепочка ответов на один вопрос: как не платить полной ценой полного внимания на каждом токене декодирования.
Пять стадий памяти: от KV cache до гибрида K3
По сводке Dev.to (агрегация Baseten + papers) эволюцию можно разложить на пять стадий:
| Стадия | Представитель | Механизм | Что решает |
|---|---|---|---|
| 1 | GPT-2 + KV Cache | Полный кэш, рост O(N) | Не пересчитывать K/V на каждом шаге |
| 2 | Linear Attention | Фиксированное состояние O(D²) | Кэш не растёт с длиной N |
| 3 | DeltaNet (NeurIPS 2024) | Delta-обновления | Точечные правки памяти без полной перезаписи |
| 4 | Gated DeltaNet (ICLR 2025) | Gating + delta | Контролируемое «забывание» старого контекста |
| 5 | KDA / Kimi K3 | Поканальное gating + гибрид | Linear path + периодический softmax retrieval |
Отдельно стоит FlashAttention (Tri Dao, NeurIPS 2022): это оптимизация IO, а не замена softmax — ортогональна linear attention.
DeltaNet вводит delta rule: старое значение v_old = k @ S_old, поправка delta = v_new - v_old, обновление S_new = S_old + k^T @ delta. Gated DeltaNet добавляет коэффициент затухания: S_new = α × S_old + k^T @ delta. KDA (Kimi Delta Attention) уходит от скалярного gating к поканальному — шаг к архитектуре Kimi K3.
В Kimi K3 (техотчёт arXiv 2607.24653, по данным Dev.to) три четверти слоёв — KDA (linear path), четверть — gated MLA (full softmax retrieval). MoE — 896 routed experts, 16 active на токен (~1.8% параметров на forward). Baseten уточняет: всего 898 experts (2 shared на каждый токен + 16 из 896 routed); Attention Residuals каждые 12 слоёв добавляют ~2% latency, но дают selective retrieval и 1.25× compute advantage в их формулировке. Macrocycles: 23 блока по 4 слоя (3× KDA + 1× MLA), dense FFN на первом слое, далее latent MoE.
Исполняемый PyTorch: как читать worklog Baseten
В заголовке Dev.to фигурирует опечатка «Runable PyTorch» — в оригинале Baseten код встроен в статью как итерации: от Block и CausalSelfAttention GPT-2 через KV cache, linear attention, DeltaNet, Gated DeltaNet и KDA до фрагментов архитектуры K3. Отдельного публичного GitHub-репозитория в проверенных текстах не указано — исполняемый код означает «можно прогнать из тела блога», а не «скачай репо».
Стартовая точка, которую цитируют оба источника:
class Block(nn.Module):
def forward(self, x):
x = x + self.attn(self.ln_1(x))
x = x + self.mlp(self.ln_2(x))
return x
Для разработчика, который учится на коде, а не на слайдах, это ценнее пресс-релиза: каждая итерация — одна архитектурная боль и одна цена (память, пропускная способность, точность retrieval). Именно такой формат и разогнал интерес к оригиналу: автор Dev.to пишет о 2.4 million views in days у поста Baseten — цифра только из Dev.to, на странице Baseten она не подтверждена.
Длинный контекст, агенты и цена декодирования
Baseten разбирает пропускную способность памяти и KV cache как узкое место вывода модели при длинном контексте — не абстрактную «скорость GPU», а то, сколько данных таскать на каждый токен декодирования. В секции «What This Means for You» Dev.to связывает архитектуру attention с задачами длинного контекста: code review, document analysis, многоходовые агенты — «напрямую влияет на стоимость и качество ответа».
По таблице Kimi Linear (arXiv 2510.26692, октябрь 2025), которую приводит Dev.to:
| Метрика | Full MLA | Kimi Linear |
|---|---|---|
| KV Cache | 100% | −75% |
| 1M-context decode throughput | Baseline | 6× |
| Short-context performance | Baseline | Outperforms |
| RL scaling | Baseline | Outperforms |
Практический смысл для агента с накопленной историей: KDA сжимает KV cache до 25% от полного внимания — меньше давление на пропускную способность, выше скорость декодирования на длинных сессиях. Тренд, который видят оба источника, — гибрид: линейный путь обрабатывает основной объём, периодический softmax добирает точный поиск по контексту.
Что проверить перед выбором модели под свой стек
Перед тем как зафиксировать модель в проде или в локальном inference, имеет смысл задать вопросы, которые вытекают из разбора, а не из маркетингового одностраничника:
- Какой путь внимания у большинства слоёв — полный, линейный, гибрид?
- Как растёт KV cache с длиной контекста и что это значит для вашего типичного цикла агента?
- Есть ли независимые бенчмарки под ваш сценарий — в primary-цепочке только paper claims и таблица Kimi Linear, без стороннего сравнения K3 с конкурентами.
Если вы один закрываете и код агента, и деплой модели, архитектура внимания — такой же инженерный параметр, как квантование (у K3 в отчёте фигурируют MXFP4 weights и MXFP8 activations с quantization-aware training) или схема MoE. Параметры в триллионы сами по себе не объясняют счёт за миллион токенов контекста.
Источники
- How a Baseten Engineer Traced 7 Years of Attention Mechanism Evolution — Dev.to, cdragon123code — агрегация и сверка с papers; дата публикации 31 июля 2026; доступ 2026-08-01.
- 22,580: GPT-2 to Kimi K3, explained — Baseten, @waterloo_intern — первоисточник с runnable PyTorch; обновлено 30 июля 2026; доступ 2026-08-01.
- Kimi Linear — arXiv 2510.26692 (метрики KV cache и throughput, по таблице Dev.to); доступ 2026-08-01.
- Kimi K3 — arXiv 2607.24653 (архитектура KDA/MLA, MoE; по Dev.to); доступ 2026-08-01.