Перейти к содержимому
Китайская линза

Kimi, Qwen, GLM, MiniMax — разбор ключевых идей

Что четыре китайские лаборатории добавили к рецепту DeepSeek — MuonClip и агентные данные Kimi K2, гибридное мышление Qwen3, Gated DeltaNet, slime и DSA у GLM, путь MiniMax от линейного внимания к полному и дальше.

УРОКchina/08-kimi-qwen-glm.mdx2 ч 30 минМатериал 8 из 10
После урока вы сможете
  • Назвать главную инженерную идею Kimi, Qwen, GLM и MiniMax и задачу, которую каждая решает
  • Реализовать QK-Clip из Kimi K2 и gated delta rule из Qwen3-Next на NumPy
  • Объяснить, почему MiniMax вернулась к полному вниманию и что это говорит о выборе архитектуры
  • Перенести уроки этих лабораторий на свои проекты — стабильность, данные, режимы мышления, честные компромиссы

DeepSeek — не единственная китайская лаборатория, публикующая веса и подробные отчёты. В 2025 году Moonshot (Kimi), Alibaba (Qwen), Zhipu (GLM) и MiniMax выпустили модели фронтир-уровня, и у каждой была своя инженерная ставка. Если вы знаете только DeepSeek, вы видите одну точку в пространстве решений. Четыре соседние точки показывают, какие ещё есть оси: стабильность оптимизатора, данные для агентов, режимы мышления, тип внимания.

Урок устроен так: по одной ключевой идее на лабораторию — с механизмом, числами и кодом. В конце — сводка уроков для инженера. Механику многих идей вы проходите в модулях 5.4, 5.5 и 6.4; здесь важнее зачем и какой ценой.

ЛабораторияМодельВсего / активноДоля активныхКлючевая идея
DeepSeek (для сравнения)V3, 12.2024671B / 37B5.5%MLA, MoE, FP8
Moonshot AIKimi K2, 07.2025≈1T / 32B≈3.2%MuonClip, синтез агентных данных
AlibabaQwen3-235B-A22B, 04.2025235B / 22B9.4%гибридное мышление, strong-to-weak
AlibabaQwen3-Next-80B-A3B, 09.202580B / 3B3.75%Gated DeltaNet + gated attention
Zhipu (Z.ai)GLM-4.5, 07.2025355B / 32B9.0%ARC в одной модели, RL на slime
MiniMaxMiniMax-01, 01.2025456B / 45.9B10.1%Lightning Attention
MiniMaxM2, 10.2025230B / 10B4.3%возврат к полному вниманию

Уже по таблице виден тренд: смесь экспертовсмесь экспертов (MoE)EN mixture of experts (MoE) становятся всё разреженнее. У моделей второй половины 2025 года доля активных параметровактивные параметрыEN activated (active) parametersСколько параметров MoE-модели реально участвует в обработке одного токена. «A22B» в названии Qwen3-235B-A22B — 22 млрд активных из 235 млрд. опускается до 3–4%, хотя GLM-4.5 и Qwen3 держатся около 9%.

Kimi K2 близка к архитектуре DeepSeek-V3: многоголовое латентное вниманиемногоголовое латентное внимание (MLA)EN multi-head latent attention (MLA)Предложено DeepSeek в DeepSeek-V2 (2024)., MoE с общим экспертом. Ключевых отличий два, и оба обоснованы экспериментами. Экспертов 384 вместо 256 при тех же 8 активных — разреженность 48. Авторы вывели «закон масштабирования разреженности»: при фиксированных активных параметрах больше экспертов — ниже loss. Голов внимания 64 вместо 128: на контексте 128K удвоение голов увеличило бы FLOPs инференса на 83%, а выигрыш в loss был скромным. Для агентной модели, которая живёт на длинных контекстах, это неудачный размен.

Moonshot сделала ставку на оптимизатор MuonMuon (оптимизатор)EN Muon optimizerОптимизатор для матриц весов (Келлер Джордан, 2024) — momentum, затем ортогонализация обновления итерациями Ньютона–Шульца. Moonshot масштабировала его до Kimi K2. (Келлер Джордан, 2024): обновление матрицы весов ортогонализуется итерациями Ньютона–Шульца. В работе Moonlight (arXiv:2502.16982, модель 16B-A3B) команда показала, что Muon в масштабе даёт примерно двукратный выигрыш в вычислительной эффективности по сравнению с AdamW. Подробно — в уроке 5.4.4.

При масштабировании вылезла беда: максимальные attention-логиты q⋅k/dq \cdot k / \sqrt{d} некоторых голов росли без ограничений. Огромный логит превращает softmax почти в one-hot, градиенты становятся резкими, и loss начинает скакать.

Стандартные средства здесь не подходят. QK-NormQK-нормализация (QK-Norm)EN QK-NormНормализация (обычно RMSNorm) запросов и ключей перед скалярным произведением. Ограничивает рост attention-логитов; используется, например, в Qwen3. (нормализация запросов и ключей) требует целых ключей, а в MLA на инференсе хранится только латент, ключи целиком не материализуются. Поэтому Moonshot придумала QK-ClipQK-ClipEN QK-ClipПриём из Kimi K2 — если максимальный attention-логит головы превысил порог τ, веса W_q и W_k этой головы умножают на √(τ / max). Вместе с Muon — оптимизатор MuonClip.. Идея простая: если логиты головы слишком велики, уменьшить веса запросов и ключей этой головы. После каждого шага оптимизатора для каждой головы hh берут максимальный логит Smax⁡hS^h_{\max}, который она выдала на батче, и при Smax⁡h>τS^h_{\max} > \tau делают

γh=τSmax⁡h,Wqh←γh Wqh,Wkh←γh Wkh.\gamma_h = \frac{\tau}{S^h_{\max}}, \qquad W_q^h \leftarrow \sqrt{\gamma_h}\, W_q^h, \qquad W_k^h \leftarrow \sqrt{\gamma_h}\, W_k^h .

Логит — произведение запроса на ключ, поэтому он умножится ровно на γh\gamma_h, и максимум станет равен τ\tau. В K2 порог τ=100\tau = 100. Три детали, которые стоит понять:

  • По головам, а не глобально. Большинство голов здоровы; общий множитель исказил бы и их.
  • Веса, а не логиты. Обрезать сами логиты (soft-cap) — значит менять функцию модели на каждом шаге. QK-Clip корректирует сами параметры и срабатывает, только когда голова превысила порог; в остальное время он ничего не меняет.
  • Особенность MLA. Масштабируются только части, принадлежащие голове: контентные части запроса и ключа — на γh\sqrt{\gamma_h}, RoPE-часть запроса — сразу на γh\gamma_h. Общий для всех голов RoPE-ключ не трогают, иначе пострадали бы соседние головы.

Muon вместе с QK-Clip и рядом доработок называют MuonClip. Результат: претрейн K2 на 15.5T токенов без единого всплеска loss. Это сильное утверждение, и в отчёте его подтверждает график loss за весь прогон.

Вторая половина отчёта K2 — о данных для агентов. Коротко: более 3000 реальных MCP-инструментов с GitHub и более 20 000 синтетических, тысячи «агентов» с задачами и рубриками успеха, траектории с симулированным пользователем (для кода — настоящие песочницы) и LLM-судья, который пропускает в обучение только успешные. В RL проверяемые награды дополнены самокритикой по рубрикам. Весь конвейер по шагам разобран в уроке 8.3.4. Урок отсюда: для агентов главный актив — не архитектура, а фабрика сред и задач.

Qwen3 (апрель 2025, Apache-2.0) — семейство от 0.6B до 32B плотных моделей и две MoE: 30B-A3B и 235B-A22B. Претрейн на 36T токенов, 119 языков и диалектов. Главная продуктовая идея — гибридный режим мышлениягибридный режим мышленияEN hybrid thinking modeОдна модель умеет отвечать и с длинным рассуждением, и сразу. В Qwen3 режим переключается флагами /think и /no_think.: одна модель умеет и долго рассуждать, и отвечать сразу. Режим включается флагом в сообщении пользователя (/think, /no_think) или параметром chat-шаблонаchat-шаблонEN chat templateПравило (обычно Jinja в tokenizer_config.json), которое превращает список сообщений с ролями в одну строку со спецтокенами. enable_thinking. В режиме без рассуждения ответ начинается с пустого блока <think>. При enable_thinking=False его подставляет сам шаблон, а на флаг /no_think модель выводит его сама — этому её учили на этапе слияния режимов (о нём ниже):

<|im_start|>user
Сколько будет 17 × 24? /no_think<|im_end|>
<|im_start|>assistant
<think>
</think>
408<|im_end|>

Модель видит, что рассуждение «уже закончилось», и сразу отвечает. На том же приёме держится бюджет мышления: когда рассуждение достигает заданной длины, его обрывают, вставляют закрывающий тег и просят ответить. В отчёте показано, что качество плавно растёт с бюджетом. Получается ручка «точность ↔ задержка» в руках пользователя.

Флагманы обучали в четыре этапа: длинный CoT как холодный старт → RL на рассуждения → слияние режимов (SFT на смеси данных с рассуждением и без) → общий RL на более чем двадцати типах задач. Первые два этапа — рецепт R1 (урок 7 этого трека), третий — собственная идея Qwen.

Для моделей 0.6B–14B и 30B-A3B четырёхэтапный конвейер не используют. Вместо него — дистилляция «от сильной к слабой»дистилляция «от сильной к слабой»EN strong-to-weak distillationСхема Qwen3 для маленьких моделей. Сначала обучение на ответах большой модели (off-policy), затем подгонка к её логитам на собственных генерациях ученика (on-policy). в две фазы:

  1. Off-policy: SFT на ответах большой модели-учителя в обоих режимах.
  2. On-policyon-policy (обучение на данных текущей политики)EN on-policyПротивоположность — off-policy, обучение на данных другой политики.: ученик сам генерирует ответы, а обучается приближать свои логиты к логитам учителя на своих же последовательностях — минимизирует KL между распределениями.

On-policy-фаза лечит знакомую проблему: при обычном SFT ученик видит только «идеальные» префиксы учителя и не учится выбираться из собственных ошибок. Когда последовательности сэмплирует сам ученик, учитель поправляет его там, где ученик реально ошибается. По отчёту, такая дистилляция даёт маленьким моделям больше, чем RL, и требует примерно в 10 раз меньше GPU-часов. Тот же вывод, что и в R1 §4.1. Подробнее — в уроке 6.4.4.

Qwen3-Next: память, которая умеет перезаписывать

Заголовок раздела «Qwen3-Next: память, которая умеет перезаписывать»

Длинный контекст упирается в квадратичное внимание и растущий KV-кэшKV-кэшEN KV cache. линейное вниманиелинейное вниманиеEN linear attention хранит вместо кэша матрицу памяти фиксированного размера SS. Запись — S←S+vk⊤S \leftarrow S + v k^\top, чтение — o=Sqo = S q. Беда в том, что записи только накапливаются: значения по похожим ключам смешиваются, а забыть что-либо нельзя.

Delta rule записывает не значение, а ошибку предсказания: что память сейчас возвращает по ключу kk и что должна. Gated добавляет гейт забывания αt∈[0,1]\alpha_t \in [0, 1], а βt∈[0,1]\beta_t \in [0, 1] задаёт силу записи. Ключи нормируются к единичной длине (∥kt∥=1\lVert k_t \rVert = 1). Получается правило Gated DeltaNet (работа NVIDIA и MIT, не китайская, но Qwen сделала её основой своей архитектуры):

St=αt St−1(I−βt ktkt⊤)+βt vtkt⊤⟺St=αtSt−1+βt (vt−αtSt−1kt) kt⊤.\begin{gathered} S_t = \alpha_t\, S_{t-1}\left(I - \beta_t\, k_t k_t^\top\right) + \beta_t\, v_t k_t^\top \\ \Longleftrightarrow \\ S_t = \alpha_t S_{t-1} + \beta_t\,\big(v_t - \alpha_t S_{t-1} k_t\big)\, k_t^\top . \end{gathered}

При α=β=1\alpha = \beta = 1 и единичном kk чтение по тому же ключу после записи возвращает ровно новое vv: старое значение стёрто. Пример из задания ниже: по ключу k=(1,0,0)k = (1, 0, 0) записали v1=(1,2)v_1 = (1, 2), затем v2=(5,−1)v_2 = (5, -1). Линейное внимание прочитает (6,1)(6, 1) — сумму, delta rule прочитает (5,−1)(5, -1).

Qwen3-Next-80B-A3B (сентябрь 2025) чередует слои 3:1: три слоя Gated DeltaNet и один слой обычного внимания с выходным гейтом. Ещё в модели 512 экспертов и MTP. Выходной гейт — отдельная работа Qwen (arXiv:2505.06708, доклад на NeurIPS 2025): после внимания выход умножается на σ(XWg)\sigma(X W_g). Это добавляет нелинейность, делает внимание разреженнее и убирает attention sink«сток» внимания (attention sink)EN attention sinkПервые токены получают аномально большой вес внимания независимо от смысла — туда softmax «сливает» лишнюю массу. Не путайте со сходным китайским термином из d2l-zh («схождение внимания»): там так переведено attention pooling (взвешенное усреднение значений). — аномально большой вес первого токена. Тот же гибрид 3:1 перешёл во флагман Qwen3.5 (февраль 2026). У Kimi похожий путь: Kimi Linear (arXiv:2510.26692) заменяет скалярный гейт поканальным (KDA) и тоже чередует его с MLA. Механику линейного внимания вы разбираете в уроке 5.5.3.

GLM-4.5 и GLM-5: агентное обучение и заимствование идей

Заголовок раздела «GLM-4.5 и GLM-5: агентное обучение и заимствование идей»

GLM-4.5 (Zhipu, июль 2025, MIT): 355B-A32B и облегчённая Air 106B-A12B. Позиционирование — ARC: агенты, рассуждения и код в одной модели с гибридным режимом мышления. Два архитектурных решения идут против моды:

  • модель глубже и уже, чем V3 и K2: меньше ширина и число экспертов, больше слоёв — глубина помогала рассуждениям;
  • 96 голов внимания при скрытом размере 5120, в 2.5 раза больше обычного. Loss от этого не улучшился, а вот бенчмарки рассуждений (MMLU, BBH) росли стабильно. Хорошее напоминание: loss — не единственная метрика.

Пост-трейнинг: сначала обучают отдельные экспертные модели (рассуждения, агенты, общий чат), затем сливают их в одну через самодистилляцию. RL идёт на собственном фреймворке slime (github.com/THUDM/slime): обучение на Megatron, генерация на SGLang. Ключевая возможность — асинхронный режим. В агентной задаче один эпизод — это минуты взаимодействия со средой. В синхронном RL обучающие GPU всё это время простаивали бы, поэтому генерацию и обучение развязывают. Выигрыш и цену такого режима (устаревшие траектории) мы считали в уроке 8.3.4.

GLM-5 (февраль 2026, arXiv:2602.15763, MIT): 744B-A40B, и в нём используется DeepSeek Sparse Attention из DeepSeek-V3.2. Дешёвый «lightning indexer» оценивает все прошлые токены, а полное внимание считается только по top-k из них (подробно — в уроке 5.5.2). Лаборатория взяла чужую открытую идею через несколько месяцев после публикации. Это и есть главный эффект открытых весов и отчётов: инновации одной команды становятся строительными блоками для других. Сообщается также, что GLM-5 адаптирована под семь китайских чиповых платформ.

MiniMax: от линейного внимания к полному — и дальше

Заголовок раздела «MiniMax: от линейного внимания к полному — и дальше»

MiniMax — самый поучительный сюжет урока, потому что команда несколько раз меняла курс и объясняла почему.

flowchart LR
A["MiniMax-01, 01.2025<br/>Lightning Attention<br/>7 линейных : 1 softmax"] --> B["M1, 06.2025<br/>тот же гибрид<br/>+ RL с CISPO"]
B --> C["M2, 10.2025<br/>полное внимание"]
C --> D["M3, 06.2026<br/>разреженное MSA"]
Путь MiniMax: смена типа внимания за полтора года

MiniMax-01 — 456B / 45.9B. Lightning Attention — линейное внимание с тайлингом: внутри блока считается обычная маскированная матрица, между блоками переносится рекуррентное состояние. Семь таких слоёв чередуются с одним слоем softmax-внимания. Контекст при обучении — до 1M токенов, на инференсе — до 4M.

MiniMax-M1 (arXiv:2506.13585, Apache-2.0) — reasoning-модель на той же базе. Новый RL-алгоритм CISPO обрезает веса выборка по значимостивыборка по значимости (importance sampling)EN importance samplingПеревзвешивание сэмплов старой политики отношением π_new / π_old — основа PPO., а не обновления токенов, так что градиент получают все токены (подробнее — в уроке 6.4.3). Это важно для редких «развилочных» слов вроде «однако» и «перепроверю». Весь RL занял три недели на 512 H800 и обошёлся в 534 700 долл. аренды. На генерации длиной 100K токенов M1, по заявлению авторов, тратит около 25% FLOPs DeepSeek-R1: вот где окупается линейное внимание.

MiniMax-M2 (октябрь 2025) — 230B / 10B и… полное внимание. Команда объяснила решение в посте «Why did M2 end up as a full attention model?». В пересказе аргументы такие:

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

MiniMax-M3 (июнь 2026, по данным отчёта arXiv:2606.13392) снова отходит от полного внимания, но уже к разреженному: индексная ветвь выбирает top-k блоков KV отдельно для каждой группы GQA, примерно 2048 токенов на запрос, контекст 1M. Это свежий результат; детали стоит сверять с первоисточником.

  1. Стабильность — это фича. Логируйте максимальные attention-логиты: это дешёвый ранний индикатор будущих всплесков loss (см. урок 3.3.3 об отладке обучения).
  2. Для агентов данные важнее архитектуры. K2 и GLM-4.5 вкладываются в синтез сред, инструментов и рубрик.
  3. Режимы мышления — продуктовый компромисс. Гибрид удобен, раздельные модели качественнее. Qwen попробовала оба пути.
  4. Маленькие модели — дистиллируйте. Strong-to-weak у Qwen3 и R1-Distill приходят к одному выводу.
  5. Проверяйте на своих задачах. История MiniMax показывает, что «не хуже на бенчмарках» ещё не значит «не хуже у вас».
  6. Идеи текут между лабораториями. K2 построена на архитектуре V3, GLM-5 взял DSA у DeepSeek, Qwen — Gated DeltaNet у NVIDIA и MIT. Открытая публикация ускоряет всех.

Два коротких задания на NumPy — по одному на самую «инженерную» идею урока.

QK-Clip из Kimi K2numpy · нужен интернет6 тестов
"""QK-Clip из Kimi K2 (arXiv:2507.20534): не даём attention-логитам взрываться.

Формы:  X — (T, d) входы слоя;  Wq, Wk — (H, d, d_h) проекции запросов и ключей каждой головы.
Логит головы h:  s_h[i, j] = q_i · k_j / sqrt(d_h),  q_i = X[i] @ Wq[h],  k_j = X[j] @ Wk[h].
"""
import numpy as np


def max_logits(X, Wq, Wk):
    """Массив (H,): максимальный логит каждой головы по парам (i, j) с j <= i (причинная маска)."""
    # TODO: ваш код (подсказка: np.einsum или цикл по головам; маска np.tril)
    ...


def qk_clip(Wq, Wk, s_max, tau):
    """Вернуть НОВЫЕ (Wq, Wk) после QK-Clip.

    Для каждой головы h с s_max[h] > tau: gamma = tau / s_max[h], и Wq[h], Wk[h] умножаются
    на sqrt(gamma) каждая (тогда все логиты головы умножатся ровно на gamma).
    Остальные головы не трогать. Исходные массивы не изменять.
    """
    # TODO: ваш код
    ...


rng = np.random.default_rng(0)
X = rng.normal(size=(6, 8))
Wq = rng.normal(size=(3, 8, 4))
Wk = rng.normal(size=(3, 8, 4))
Wk[1] *= 5  # «разогнанная» голова 1
s = max_logits(X, Wq, Wk)
print("до:   ", s)
res = qk_clip(Wq, Wk, s, tau=10.0)
if res is not None:
    print("после:", max_logits(X, *res))
Gated delta rule против линейного вниманияnumpy · нужен интернет6 тестов
"""Память линейного внимания: обычное правило против gated delta rule (Gated DeltaNet в Qwen3-Next).

Память — матрица S формы (d_v, d_k). Запись пары (ключ k, значение v), чтение по запросу q: S @ q.
"""
import numpy as np


def read(S, q):
    """Прочитать из памяти: вектор S @ q формы (d_v,)."""
    # TODO: ваш код
    ...


def linear_update(S, k, v):
    """Обычное линейное внимание: просто прибавить внешнее произведение v kᵀ."""
    # TODO: ваш код
    ...


def delta_update(S, k, v, alpha, beta):
    """Gated delta rule:  S_new = alpha · S (I − beta · k kᵀ) + beta · v kᵀ

    alpha ∈ [0, 1] — гейт забывания (затухание всей памяти),
    beta ∈ [0, 1] — сила записи. Не изменяйте S на месте — верните новую матрицу.
    """
    # TODO: ваш код
    ...


k = np.array([1.0, 0.0, 0.0])
v1, v2 = np.array([1.0, 2.0]), np.array([5.0, -1.0])
S = np.zeros((2, 3))
print("линейное:", read(linear_update(linear_update(S, k, v1), k, v2), k))
print("delta:   ", read(delta_update(delta_update(S, k, v1, 1, 1), k, v2, 1, 1), k))
Проверь себя6 вопросов
1 Что делает QK-Clip после шага оптимизатора?
2 У головы Smax⁡=400S_{\max} = 400, порог τ=100\tau = 100. На какой множитель QK-Clip умножит WqW_q (и столько же WkW_k)?
3 Какие утверждения о гибридном мышлении Qwen3 верны?Можно выбрать несколько ответов
4 В память по единичному ключу kk записали v1v_1, затем v2v_2 (при α=β=1\alpha = \beta = 1). Что вернёт чтение SkS k у delta rule?
5 Почему MiniMax в M2 вернулась к полному вниманию?
6 Какие заимствования между лабораториями описаны в уроке?Можно выбрать несколько ответов
  • Kimi K2: разреженность 48 и 64 головы ради длинного контекста; QK-Clip удерживает логиты, и 15.5T токенов проходят без всплесков; данные для агентов синтезируются фабрикой сред.
  • Qwen3: гибридное мышление с бюджетом в одних весах и strong-to-weak дистилляция для маленьких моделей; Qwen3-Next чередует Gated DeltaNet и gated attention 3:1.
  • GLM: глубокая модель с множеством голов, экспертные модели и самодистилляция, асинхронный RL на slime; GLM-5 взял DSA у DeepSeek.
  • MiniMax: линейное внимание → полное → разреженное. Архитектуру выбирают по реальным задачам и зрелости инфраструктуры, а не только по асимптотике.

Дальше: как Китай учит ИИ — от школы до университета: откуда берутся инженеры этих лабораторий. Идеи этого урока примеряйте к своим экспериментам на ступенях 5–6, а за свежими релизами следите по уроку 9.2.2 — там о том, как читать статьи и отличать громкие заявления от проверенных.