MiMo-V2-Flash Technical Report

Xiaomi LLM-Core · 2026-01-08 · arXiv:2601.02780
关键词: 309B/15B MoE · 5:1 Hybrid SWA-GA · 128 SWA window · MTP × 3 · 27T pre-train · 256K context · MOPD post-training

速读卡片 (TL;DR)

一句话:用 5:1 的 SWA(W=128) 与 global attention 混合架构 + 256/8 fine-grained MoE + 多层 MTP 自蒸馏 draft,做出一个推理/agentic 双修的 309B (15B activated) 开源模型,性能逼平 DeepSeek-V3.2 / Kimi-K2,而总参数只是它们的 1/2~1/3。

~6×
长上下文 KV cache 缩减
3.6
MTP-3 acceptance length
2.6×
decode 实测加速

立场:不是单点突破,是系统级整合——架构(hybrid SWA + sink bias)、训练(FP8 + MTP 副 loss)、后训练(Multi-Teacher On-Policy Distillation)、推理(MTP 自 spec decoding)四件事配合得很紧。读这篇等于围观一个"现代 production MoE"的全栈。


1 · 动机:为什么这一代 MoE 都奔向 hybrid attention

1.1 历史脉络:全 softmax 在长上下文时代的"两个崩塌"

2017 vanilla Transformer 之后,前 5 年 attention 的"全连接 softmax"几乎被默认是不可触碰的圣物。但到了 reasoning + agentic 时代(2024 起),两件事让 full softmax 不可持续:

所以 2024–2026 这一波 MoE 几乎集体押注"sub-quadratic attention":

Hybrid SWA 这条路最"保守"——softmax 计算公式不动,kernel 不用重写,只是 mask 形状变了——但工程友好度最高。MiMo-V2-Flash 押的就是这条。

1.2 别的方案为什么"够呛"

方案核心改动代价 / 风险
Full softmax (Llama, Kimi-K2)不动long context 下 KV cache 与 attention compute 双双爆炸,decode 严重 memory-bound
Linear / Lightning attention (MiniMax-M1)把 softmax 换成 kernel feature map要重写 kernel;长 retrieval 性能下降明显;模型质量难追平
Sparse / NSA / DSA (DeepSeek-V3.2)选 top-k key 做 sparse softmaxrouting 复杂,paper 显示长 context 推理 (GSM-Infinite) 在 64–128k 显著退化
Mamba / SSM不用 attention长 retrieval 是已知短板,ICL 偏弱
SWA + Global hybrid (本文)大多数层只看 W=128,少数层做 globalsoftmax 原地 reuse,KV cache 缩 ~6×,长 context 性能由 GA 层兜底
MiMo-V2-Flash 的论文里有一张说服力很强的 GSM-Infinite Hard 表(Table 6):DeepSeek-V3.2 在 16K 拿 50.4,但 128K 只剩 25.7 — 几乎腰斩;MiMo-V2-Flash 从 37.7 跌到 29.0 —— 起点低但退化幅度小得多。这反过来说明 hybrid SWA 在长 context reasoning 上比 sparse attention 更鲁棒。

1.3 但"hybrid SWA 不平凡"在哪

看 Gemma 3 报告会发现一个反复出现的警告:SWA 的 window size 和 SWA:GA ratio 一旦激进,长 context 性能会严重塌方。Gemma 3 用 W=1024, ratio 5:1 才敢声明"性能不掉"。

MiMo-V2-Flash 的胆子:

能这么做的关键是引入 attention sink bias(从 gpt-oss 学来),它给每个 head 一个可学习的"沉没"通道,允许 token 在没有合适 key 时把注意力倒进 sink 而不是被迫均摊到所有 key。论文 ablation(Table 2)显示去掉 sink bias 这套架构是塌的——这正是论文最关键的"non-trivial"点。

同时,W=128 给出的是一种"分工压力":SWA 层没有能力处理远距离信息,被迫只做 local;远距离 dependency 必须由 9 个 GA 层(占总层数 ~19%)统一吸收。论文称之为 "clearer division of labor"——这是个有点诗意但工程上确实成立的解释:模型不再有"两边都不专"的层。


2 · 背景速查

2.1 关键术语

术语含义
SWASliding Window Attention,每个 token 只能 attend 到前 W 个 token (W=128 here)
GAGlobal Attention,标准 causal full attention
Hybrid SWA:GA = 5:1每 6 层里 5 层 SWA + 1 层 GA,交错堆叠
Attention sink给每个 head 一个可学习偏置 sink ∈ ℝ,加到 softmax 分母,使 token 可以"什么都不 attend"
MoE 256/8每个 MoE 层 256 个 routed expert,top-8 激活,无 shared expert
GQA 64/8 (or 64/4)Grouped Query Attention: 64 个 Q head 共享 8 (或 4) 个 KV head
MTPMulti-Token Prediction: 训练时让模型同时预测下 1, 2, 3 个 token,推理时复用为 draft
MOPDMulti-Teacher On-Policy Distillation, 本文新提出的后训练范式
R3Rollout Routing Replay: 在 RL training step 上复用 rollout step 选过的 expert,解决 MoE rollout/train numerical mismatch
Acceptance length αspec decoding 一次平均接受的 token 数 (1 + 接受的 draft 数)
Reverse KLKL(π_student || π_teacher),student 在自己的分布上算 KL,鼓励 mode-seeking

2.2 标准回忆: SWA 的 mask 长什么样

Causal mask vs SWA mask (W=4 示意, 8 token) Full Causal (GA) q0q1q2q3 q4q5q6q7 attended slots = O(L²/2) SWA W=4 (本文 W=128) q0q1q2q3 q4q5q6q7 attended slots = O(L·W) ≈ 128·L
左: 完整 causal mask, attention 每个 q 看完整前缀,KV cache 必须保留全部历史 token。右: SWA 只看前 W 个 token,KV cache 逻辑上只保留最近 W 个 KV slot。MiMo-V2-Flash 中 39 层 SWA 各自只保留 128 KV / token, 9 层 GA 仍保留全部。混合后整体 KV cache ~ 6× 缩小。

3 · 架构 1: 5:1 Hybrid SWA + Global Attention

3.1 架构总览

整个 backbone 共 48 层:

合计: 39 SWA + 9 GA = 48 层 (其中 GA = 1 dense + 8 在每 block 末尾)。

MiMo-V2-Flash 48-layer 堆叠 (前向方向 →) L1 GA+dense SWA SWA SWA SWA SWA GA Hybrid Block #1 (5×SWA + 1×GA) ··· SWA SWA SWA SWA SWA GA Hybrid Block #8 LM head MTP × K (K=3 inference) SWA + dense FFN, 0.33B/head 从 last hidden 自回归预测 数字一览 总参数: 309B 激活/token: 15B hidden: 4096 MoE: 256 experts / top-8 SWA Q/KV: 64/8 heads, head_dim 192/128 GA Q/KV: 64/4 heads SWA window: 128 SWA:GA ratio: 5:1 RoPE base: SWA 10K, GA 5M expert intermediate: 2048 no shared experts FP8 mixed-precision (类 DSv3)
整体堆叠示意。蓝色 = SWA(W=128, KV cache 紧凑), 橙色 = GA(全 attention, 仍保留 256K KV)。第 1 层 + 每 6 层有 1 个 GA 来吸收远距离依赖,其余 SWA 层只做 local mixing。

3.2 数字感受 — KV cache 真的省了多少?

设序列长 L=256K, head_dim_v=128, num_kv_heads=8 (取 SWA 设置), 每 KV slot in fp8 ≈ 1 byte/element。

KV per layer per token = 2 (K+V) × 128 × 8 × 1 byte = 2KB
方案每 token KV cache (256K seq, fp8)
All GA, 48 层2KB × 48 × 256K = 24 GB
Hybrid (39 SWA × 128 + 9 GA × 256K)2KB × 39 × 128 + 2KB × 9 × 256K = 10MB + 4.5 GB

缩减 ~5.3×(论文宣称 ~6×, 略乐观)。SWA 层贡献几乎可忽略 — KV 主要由 9 个 GA 层占。

3.3 反向论证: 为什么 W=128 比 W=512 反而好?

论文 Table 3 实测:

反直觉。论文给出的解释:"clearer division of labor"。W=128 时 SWA 层物理上无法处理远距离依赖,模型被迫把"远距离任务"全部交给 GA 层。W=512 时 SWA 层偶尔也能看到 256–512 距离的 token,变得"半懂不懂",最终两类层都没专精。

这听起来像后验解释,但和稀疏专家网络中"specialization"的现象学是一致的——给一个 expert 能力上限,反而能逼出更清晰的角色。


4 · Attention Sink Bias: 让 W=128 不掉点的关键

4.1 公式

原版 attention:

a_ij = q_i · k_j / √d ; s_ij = softmax_j(a_ij)

加 sink bias 之后:

s_ij = exp(a_ij − m_i) / [exp(sink − m_i) + Σ_j' exp(a_ij' − m_i)]
m_i = max(max_j a_ij, sink)

每个 head 一个标量 sink ∈ ℝ(可学习)。注意 sink 项加在分母里,但对应任何 value——也就是说,如果 sink 很大,所有 s_ij 一起被压小,等效于"这个 token 的 attention 总和 < 1",可以"什么都不看"。

4.2 直觉:为什么 SWA 离不开 sink

SWA 的天然缺陷:窗口 W=128 内,如果当前 token 的 query没有任何真正相关的 key,标准 softmax 会强制把 attention 均摊到这 128 个 key 上。模型没有"我什么都不需要"的选项。

这在 long-context 场景非常致命: token 间距离一旦 > W,模型完全应该"忽略"窗口内的旧 key,但 softmax 不允许。

Sink bias 提供了一个"逃生通道":当 q_i · k_j 都很弱时,sink 项主导分母,所有 s_ij ≈ 0,output ≈ 0(value 加权和接近 0 向量)。模型可以学习"把消息留给残差/下一层处理"。

Softmax 分配示意 (3 个 key, 1 个 query) 不带 sink: 必须全部分配 0.40 k1 (相关) 0.30 k2 (噪音) 0.30 k3 (噪音) → 60% attention 倒进噪音 带 sink: 可以"留白" 0.20 k1 (相关) 0.05 k2 0.05 k3 0.70 sink (虚拟) → 70% 流到 sink, 等效"无 attention" 关键: sink 不对应任何 value,所以"流向 sink 的 attention" 物理上是 attention 输出 ≈ 0 向量 论文 Table 2: 去掉 sink, hybrid SWA 的 MMLU 从 58.3 掉到 54.9, 比 all-GA 还差
Sink bias 的直观效果。它本质上是给 softmax 分母加一个不对应 value 的"虚拟 logit"。当所有 real key 都不够好时,attention 总质量被 sink 吸收 → 输出接近 0 → 残差路径主导这一层。这是 W=128 这种激进窗口能保住性能的关键。

4.3 Worked example

设某 head 在第 5000 个 token 上,query q 在 W=128 窗口内的 128 个 key 上得到 logits 全部都在 0~2 之间(没有强信号),sink 学到 = 4。

看起来吃得不多,但实测里 sink 学到的值随 head 不同从 0 到 6 都有。sink 大的 head 显示出"有事就用,没事关掉"的开关性质——这是 attention sink 论文(Xiao et al. 2023)早期观察到的现象的"显式参数化"。


5 · 架构 2: 256 专家细粒度 MoE

5.1 设计选择

MiMo-V2-FlashDeepSeek-V3Qwen3-MoEMixtral 8x22B
Total experts256256 + 1 shared1288
Activated/token88 + 1 shared82
Shared expert有 (1)
Expert intermediate20482048256016384
Total params309B671B235B141B
Active params15B37B22B39B

MiMo-V2-Flash 没有 shared expert —— 这跟 DeepSeek 系列正好相反。Shared expert 的本意是"all-token 共有的基础能力",但实测中容易让模型把通用知识塞给 shared,稀释 routed expert 的特化。MiMo 选择不要这层"安全垫",彻底 rely on 256 个 routed expert。

5.2 Auxiliary loss & expert bias

MiMo-V2-Flash 用两层平衡机制:

  1. Sequence auxiliary loss(系数 1e-5):标准 load-balance loss
  2. Expert bias update(0.001 in stage 1/2, 1e-5 in stage 3):每个 expert 一个动态 bias 加到 routing score 上,根据负载实时调整。和 DeepSeek-V3 的 auxiliary-loss-free balancing 是同一个 trick。

5.3 SFT 期间的"num-zeros 监控"

论文有个有意思的工程发现 — SFT 阶段最稳定的训练健康指标不是 loss,而是 zero-gradient 参数比例:

调它的两个 lever:expert bias update rate 和 AdamW ε。这种"看似 trivial 的 SFT 工程"在 MoE 上经常决定后续 RL 能不能跑起来。


6 · 架构 3: 轻量 MTP — 同时是训练 aux 和 draft

6.1 MTP 是什么

Multi-Token Prediction (Gloeckle et al. 2024):标准 LM 训练只预测下 1 个 token,MTP 让模型同时预测下 1, 2, ..., K 个 token。每个未来位置一个独立的 head,共享主干 hidden states。

6.2 本文的设计取舍

Main backbone (48 layers, last hidden h_t ∈ ℝ^4096) Embedding (tied with main model) MTP head 1 (0.33B) Linear ([h_t; emb(t+1)]) SWA (W=128) + GQA 64/8 dense FFN (no MoE) → predict t+2 MTP head 2 (0.33B) 输入: head1 hidden + emb(t+2) SWA + GQA dense FFN → predict t+3 MTP head 3 (0.33B) 输入: head2 hidden + emb(t+3) SWA + GQA dense FFN → predict t+4 tied LM head (与主模型共享)
3 个 MTP head 链式自回归。每个 head 只 0.33B,刻意做轻:dense FFN(不是 MoE 避免 routing 开销)+ SWA(不是 GA 避免大 KV cache)+ tied embedding/LM head。pre-train 期间只挂 1 个 head 加 aux loss;post-train 阶段把 head 复制 K=3 次同时联合训练。

6.3 关键工程取舍

选择理由
Dense FFN, not MoEK 个 head 都用 MoE 会让 draft 比 backbone 还重 — 完全违背 lightweight 目标
SWA, not GAdraft KV cache 不能比主模型还大 — SWA 让 KV 几乎不增长
Tied embedding & LM head0 额外参数 + 让 draft 与主模型词表对齐
Pre-train 只 1 head预训练时 K head 训练成本随 K 线性增加,不划算;只用 aux loss 拿 1 head 的"训练加成"
Post-train 复制成 K=3这阶段计算便宜,3 head 联合训练能让链式 draft 稳定

6.4 worked example: 一次 spec decoding step

设当前已生成 token 序列 "3 + 4 = ",token id 序列 [..., 91]:

  1. 主模型 forward 一步,得 last hidden h_t ∈ ℝ⁴⁰⁹⁶,主模型自身预测下 1 token = "7" (作为已采样的 t+1)
  2. MTP head 1 输入 [h_t, emb("7")],SWA + dense FFN → predict t+2 = " " (空格,概率 0.95)
  3. MTP head 2 接 head 1 的 hidden + emb(" ") → predict t+3 = "答案" (概率 0.31, 不算很高)
  4. MTP head 3 接 head 2 的 hidden + emb("答案") → predict t+4 = "是" (概率 0.40)
  5. 主模型在下一次 forward 时,把 [t+1, t+2, t+3, t+4] 一次输入,得到每个位置的真实 logits
  6. 对 t+2/t+3/t+4 逐个 rejection sample:接受 t+2 概率 ≈ 0.95(几乎肯定),接受 t+3 概率 = min(1, p_main("答案")/0.31) — 假设 p_main = 0.10,接受概率 0.32,采样到拒绝就停
  7. 本步合计产出 1 (主) + 1 (t+2 接受) + 0 (t+3 拒绝, 重采) = 3 个 token,acceptance length α = 3

注意 MTP 的 spec decoding 与 EAGLE-3 的本质区别:MTP 是"模型自带的",不需要单独训练一个外部 draft 模型;EAGLE-3 是 add-on draft head,要做单独的 distillation。MTP 等于把 spec decoding 内化进 pre-training。

6.5 实测数字 (论文 Figure 7 + Table 10)

Acceptance length 与 next-token entropy 的拟合: α = 4(1 − 0.58·entropy^0.58),R²=0.995 — 这个拟合相当干净,说明 MTP 的 acceptance 几乎完全由模型自己的 prediction 信心决定,与具体任务的"难度"无关,只与 entropy 相关。


7 · 预训练: 27T tokens 三阶段 + FP8

7.1 三阶段 schedule

StageTokensContext侧重
Stage 1 (Pre-train)0–22T32K通用 web/书/代码,打基础
Stage 2 (Mid-train)22–26T32Kupsample code + ~5% 合成 reasoning data
Stage 3 (Context Ext)26–27T32K → 256Kupsample 长依赖数据,RoPE base of GA: 640K → 5M

7.2 Learning rate schedule

7.3 MTP loss weight 调度

MTP aux loss 占比有意识地 anneal:Stage 1 = 0.3, Stage 2/3 = 0.1。直觉是早期需要靠 MTP 的"前瞻信号"提升表征质量,后期主任务已经够强,MTP 转为"配角"。

7.4 Pre-train 数据细节(论文披露不多)

训练语料:web pages + 书 + 学术论文 + code + math + STEM。重点:

7.5 FP8 mixed-precision

主体 FP8(类似 DeepSeek-V3),但保留:

这套 FP8/BF16/FP32 的精度切割是当前 MoE 训练的"通用方案",DeepSeek-V3 之后基本是 production 标配。


8 · 后训练: MOPD (Multi-Teacher On-Policy Distillation)

这是论文最有"研究气"的部分。

8.1 问题:capability imbalance + learning inefficiency

标准做法是"先 SFT 然后 RLHF",或者跑多个独立 RL 然后参数合并。两条路都有问题:

8.2 MOPD 三阶段

MOPD 流水线 Stage 1: SFT 通用 instruction following millions samples × thinking/non Stage 2: Domain RL/SFT 独立训练 N 个 teacher: code / math / search / safety / ... 每个 domain 单独 reward + RL Stage 3: MOPD student 自己 rollout + token-level KL reward + outcome reward Stage 3 一步 RL update 的数据流 Student π_θ rollout: x → y_1...y_T Domain teacher π^domain forward on student's y token-level reward (Eq. 8) Â_t = log(π_T(y_t)/π_θ(y_t)) + α·Â_ORM 每个 token y_t 拿到 dense reward, 用 truncated importance sampling 修正 train/inference gap → 标准 policy gradient 更新 student,teacher 永远保持冻结 本质: 把 reverse KL 蒸馏改写成 RL form,享受 on-policy 稳定性 + token-level signal 密度
三阶段流水线。核心创新在 Stage 3: student 在自己的分布上采样(避免 exposure bias),同时收两类信号 — token-level 的 reverse KL 信号(来自 domain teacher logits)和 outcome-level 的 ORM 信号(GRPO 风格)。等价于一个"teacher-as-shaped-reward"的 GRPO。

8.3 Loss 推导

从 reverse KL 出发(Eq. 5):

L_rev-KL = -E_{x, y_t ~ π_θ} [ log( π_T(y_t|x,y<t) / π_θ(y_t|x,y<t) ) ]

对 θ 求梯度(Eq. 6,REINFORCE-like):

∇L = -E [ log(π_T/π_θ) · ∇log π_θ(y_t) ]

把 log(π_T/π_θ) 当作"per-token advantage"。再加上 train/inference distribution mismatch correction(因为 inference 用 μ_θ 采样,training optimize π_θ),得到 surrogate(Eq. 7-8):

L_MOPD = -E_{x, y ~ μ_θ} [ (1/|y|) Σ_t w_t · Â_MOPD,t · log π_θ(y_t) ]
w_t = sg[π_θ/μ_θ] if ε_low ≤ π_θ/μ_θ ≤ ε_high else 0
Â_MOPD,t = sg[ log(π_T(y_t) / π_θ(y_t)) ] + α · Â_ORM

三件事融合在一个 loss 里:

  1. w_t: importance sampling 的 truncation,过滤 train/inference mismatch 异常大的 token (gpt-oss / Zhao 2025 套路)
  2. log(π_T/π_θ): 蒸馏信号,token-level dense
  3. α · Â_ORM: 经典 outcome reward (GRPO 算的 advantage)

8.4 实测效果 (论文 Table 7)

BenchmarkStudent before MOPDBest teacherStudent after MOPDΔ
AIME 202589.393.9 (RL)94.1+0.2 vs teacher
HMMT 202576.982.6 (RL)84.4+1.8
LiveCodeBench77.582.6 (RL)83.2+0.6
SWE-Bench Verified67.874.2 (RL)73.4−0.8
τ²-Bench75.979.6 (RL)80.3+0.7
BrowseComp42.551.7 (SFT)45.4−6.3
Arena-Hard (Hard)50.050.0 (Self)54.1+4.1
Arena-Hard (Creative)90.190.1 (Self)86.2−3.9

大部分项 student 能匹敌甚至略超 best teacher;但 BrowseComp 和 creative writing 出现明显 regression — 论文承认 MOPD 不是 silver bullet。我个人解读:MOPD 适合"有可验证 reward 的 hard skill 域",对开放式生成 / 长 horizon search 仍然不稳


9 · RL 基础设施: R3 / Data Scheduler / Toolbox

9.1 Rollout Routing Replay (R3) — 解决 MoE rollout/train mismatch

MoE 训练的一个老问题:rollout 用 SGLang(inference engine, FP8 计算可能不严格 deterministic),training 用 Megatron-LM,两边对同一个 token 算出的 router score 不完全一致 → expert 选择不一致 → π_θ(y_t) 在 training/inference 不同 → importance sampling 假设崩塌 → RL 训不稳。

R3 的解法很直接:training 时强制使用 rollout 时记录下的同一份 expert routing 决策。这意味着 routing 不再是 training 的一部分 — 它被"freeze"在 rollout 决策上。开销的关键在压 routing log 的存储/通信成本。

9.2 Data Scheduler — 解决 long-tail straggler

RL rollout 经常出现"绝大多数轨迹 1k tokens 内结束,少数 32k 不收"的长尾分布。同步等会让 GPU 空转。本文方案:

9.3 Toolbox — 解决 agentic RL 的 tool 资源争用

这一节细节不多,但传达的信号是 agentic RL 的瓶颈早就不是 GPU 算力,而是外部 tool 的资源调度


10 · MTP 推理加速实测

10.1 Acceptance ↔ Entropy 拟合

论文 Figure 7 的拟合公式:

α = 4 · (1 − 0.58 · H0.58), R² = 0.995

其中 H = next-token cross-entropy(模型自己的预测信心)。

Entropy Hα (3 MTP layers)
0.05 (低不确定, e.g. WebDev)~3.6
0.10~3.4
0.20~3.1
0.30 (高不确定, e.g. MMLU-Pro)~2.9

10.2 Decoding speedup (论文 Table 10)

Batch size (per node)α=2.8α=3.2α=3.6α=3.8
321.86×2.12×2.39×2.52×
641.97×2.25×2.53×2.67×
961.99×2.28×2.56×2.70×
1281.82×2.07×2.33×2.46×

16K input, 1K output。bs=96 是甜点 — 太小没填满 SM,太大 attention KV I/O 成瓶颈。

注意: 这个 speedup 是纯 decoding 加速,不含 prefill。在 RL rollout 这种"prompt 短 + 输出超长"的场景,decoding 占绝对大头,所以端到端基本能拿到接近 2× 的加速。但在"长 prompt + 短输出"场景(如 RAG)spec decoding 优势会被 prefill 稀释。

11 · 与同类工作对比

模型Total / ActiveAttentionMTP / Spec特别之处
MiMo-V2-Flash309B / 15BHybrid SWA W=128, 5:1 + sink3-layer MTP, α≈3.6MOPD 后训练 + R3 routing replay
DeepSeek-V3 / V3.2671B / 37BFull GA (V3); DSA sparse (V3.2)1-layer MTPMLA 替代 GQA, 1 shared expert
Kimi-K2 (Thinking)1043B / 32BFull GA大模型纯 RL post-train
Qwen3-MoE235B / 22BFull GA + Native MTP (next 系列)128 expert, top-8
MiniMax-M1456B / 45.9BLightning + Full 7:1linear attention 主导
Gemma 327B denseSWA W=1024, 5:1 + GASWA 但 W 大得多
gpt-oss-120B120B / 5.1BSWA + sink bias本文 sink 来源

11.1 几条关键差异化


12 · 局限 / 个人 take / 待验证问题

论文承认的局限

我的疑问

  1. W=128 极限究竟在哪?论文只 sweep 了 128 vs 512。W=64 / 32 加 sink 可能依然能 work,这意味着 KV 还能再缩。
  2. Sink bias 学到什么?论文没分析每个 head 学到的 sink 值分布。GA 层的 sink 是不是接近 0(因为 GA 不需要 escape valve)?
  3. MOPD 在 BrowseComp / creative writing 上掉点 — 是不是 token-level reverse KL 在长序列复杂任务上 over-regularize 了?把 KL 换成 forward KL 或 JS 会不会更好?
  4. R3 是不是过度保守?training 时强制用 rollout 的 expert routing,等于让 router 不再被 RL gradient 影响。这是不是变相冻结了 routing 的演化?
  5. 3-layer MTP 的内存代价:K=3 时每个 head 0.33B,推理时还要维护 3 套独立的 SWA KV cache。在长 context 下,这块 KV 会不会再次成为瓶颈?
  6. 27T tokens 数据细节非常 sparse — 没说预训练数据混合比例,没说 quality filter。复现性接近 0。
  7. SWE-Bench Verified 73.4% 实测有 reward hacking(Appendix B 提到),论文没披露去除 hacking 后的真实分数。

记忆点

立场 hybrid SWA(W=128) + sink bias 是当下 MoE 长 context 的"安全甜点",比 sparse / linear 更鲁棒
公式 α = 4(1 − 0.58·H0.58) — MTP acceptance 由 entropy 决定,与任务无关
数字 309B/15B, 5:1 SWA:GA, W=128, 256 expert/top-8, 27T tokens, 256K context, 3 MTP layers
非平凡 没有 sink bias, 这套架构会塌(MMLU 58.3 → 54.9)
后训练 MOPD = on-policy reverse KL 蒸馏 + ORM,把多个 RL teacher 的能力整合到一个 student
基础设施 R3 (routing replay) 解 MoE RL 的 train/inference mismatch
陷阱 MOPD 在 creative writing / BrowseComp 上仍掉点,不是 silver bullet
省钱 KV cache 缩 ~5–6×, decode 实测 ~2.6×, 端到端 generation 受益巨大

精读笔记 · 配套论文 PDF: /data/szhang967/papers/paper-notes/MiMo-V2-Flash_2601.02780.pdf