MiniMax-01: Scaling Foundation Models with Lightning Attention

MiniMax · 2025-01-14 · arXiv:2501.08313 · 456B MoE / 45.9B active / 32 experts
关键词: lightning attention · linear attention · hybrid attention · MoE · LASP+ · 1M / 4M context · MFU 75%

速读卡片 (TL;DR)

一句话:第一次在商业级规模(456B / 45.9B active)落地 linear attention—— 7 层 lightning attention + 1 层 softmax attention 的 hybrid 架构 + 32-expert MoE,训练时 context 1M、推理外推到 4M tokens,在长文本上拉开 GPT-4o / Claude-3.5 一个数量级。

456B / 45.9B
total / active params
7 : 1
lightning : softmax 比例
1M → 4M
train / inference 长度

立场:linear attention 不是替代品,是主角加副驾。纯 linear 在 retrieval 上垮,纯 softmax 在长文本上算不动;让 lightning 当主力 + 每 8 层放一个 softmax 当 retrieval 锚点,既拿到 O(n) scaling,又保住 in-context learning。


1 · 动机:context-length 撞上的那堵墙

1.1 历史脉络

2024 年的 frontier model 大多停在 32K–256K context window。Gemini-1.5 Pro 把它顶到 1M 是个例外,但代价是极高的延时和 TPU 集群成本;开源生态(Llama-3.1, Qwen2.5, DeepSeek-V3, Mistral)集体没有突破 256K。

问题不在算法上没人想长上下文 — 是在算力上算不动。Transformer 的 softmax attention 是 O(n²d)。把 context 从 32K 翻到 1M(32×),attention compute 涨 1024×。即使 H800 / B200 翻番,也跟不上 context 翻 8×。

于是 prefilling 1M 个 token 就要花几百秒——本论文 Figure 2 给的硬数据:GPT-4o API 在 128K 上花约 70 秒,而 MiniMax-Text-01 在 1M 上只需 ~50 秒,在 256K 上 ~10× 于其他大模型。

序列长度 N (log) Compute / Memory softmax O(N²d) lightning O(Nd²) hybrid (7:1) 32K 256K 1M 三种 attention 在长上下文下的 compute 曲线
当 N 从 32K 跨到 1M 时,softmax 的 quadratic 项 (n / 6d) 已经吃掉 FLOPs 的 90%+,而 lightning 的 (1/2h) 项几乎不变。Hybrid 7:1 把 softmax 的 quadratic 成本除以 8,曲线在 1M 处仍是平的。

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

从 2020 年起,业界提了一打"线性化 / 稀疏化 attention"的方案。每个都有理论吸引力,但没一个真扩到了百亿千亿规模。论文用一段话点评了对手:

方案家族代表为什么没扩
Sparse attentionLongformer, BigBird稀疏 pattern 在长 reasoning trace 上漏关键 token,且 kernel 难写
Sliding windowMistral SWA窗口外 token 永远丢失,retrieval 极差;论文 Table 4 显示 win=1024 在 1B 上 NIAH 仅 53.9
State Space ModelMamba, Mamba-2退化为固定状态; recurrent state 容量 O(d),retrieval 低于 hybrid
Linear RNNRWKV, HGRN-2训练速度受 cumsum 拖累; HGRN2 23.3K TGS 远低于 lightning 33.4K
Linear attentionPerformer, cosFormercausal mask 把 right-product 优势打掉,要 cumsum,实测打不过 FlashAttn-2
Long convolutionHyena, M2FFT-based,序列稍短(数 K 内)就比 attention 还慢
Lightning + Hybrid 👈本文tiling 把 cumsum 拆掉; hybrid 把 retrieval 留给 softmax
这是论文最锋利的论点。之前所有 linear-attention 工作都没解决"causal cumsum 不并行"这个根 bug,只能在 toy scale 上自夸 O(n);一旦扩到生产规模,FlashAttention-2 反而更快。Lightning attention 的 tiling 是把它做并行的第一个工作。

1.3 为什么"扩到 456B / 1M"非平凡?

就算 lightning attention 在 7B / 8K 上能跑,要扩 65× model + 125× context,仍然有三道工程坎:

论文 4 / 5 的篇幅都在回答这堆"系统级"问题,所以这不仅是一个 architecture paper,更是一份完整的 production-grade tech report。


2 · 背景速查

2.1 关键术语

术语含义
Softmax attention标准 Transformer attention,O = softmax(QK⊤/√d)·V,causal mask 下 O(N²d)
Linear attention去掉 softmax,用 right-product trick: O = Q(K⊤V),causal 下需要 cumsum,O(Nd²)
Lightning attentionLinear attention 的 I/O-aware 实现,用 tiling 把 cumsum 干掉(Qin et al. 2024b)
Hybrid attentionLightning + softmax 按 7:1 交替,本文核心架构
TransNormerQin 等 2022 提的 NormAttention 块,lightning 实际算的就是它
MoE / top-K routingMixture of Experts,每 token 选 top-k 个专家
EP / ETP / EDPExpert Parallel / Expert Tensor Parallel / Expert Data Parallel,本文为 MoE 自定义的三个 ProcessGroup
CPContext Parallel,把 sequence 维度切到不同 rank 上
LASP / LASP+Linear Attention Sequence Parallelism,本文把 LASP 的串行依赖改成并行
Varlen ring attentionRing attention 的 variable-length 版本,适配 data-packing
RoPERotary Position Embedding;本文只对 softmax 头的一半 dim 加 RoPE
DeepNorm / PostNorm把 LayerNorm 放在残差之后,深网络下表现优于 PreNorm
RULERNV 提的长上下文 retrieval/reasoning 13 任务套件,本文长文本主战场
MFUModel FLOPs Utilization,实际 FLOPs / 理论峰值

2.2 Linear attention 的 right-product 复习

Softmax attention 必须 (QK⊤)V:先算 N×N 的 attention matrix,再乘 V。Linear attention 把 softmax 拿掉后,矩阵乘法满足结合律,可以变成 Q(K⊤V):

O = Norm( Q · (K⊤V) )

左边的 K⊤V ∈ ℝd×d,跟 N 无关。所以总 FLOPs 是 O(Nd²) 而不是 O(N²d)。当 N >> d(比如 N=1M, d=128),后者比前者大 8000×。

但有一个致命限制:在 causal 语言建模里,第 t 步只能看到前 t 个 token,即 K⊤V 是逐步累加的(kv_t = kv_{t-1} + k_t v_t⊤)。这个 cumsum 是串行的,GPU 上没法和 N 并行,所以"O(Nd²) 比 O(N²d) 快"在小 N 上反而被并行度吃掉。这就是 9 年来 linear attention 没在大模型里落地的根原因。


3 · Lightning Attention 是什么

3.1 一句话核心

Lightning attention 用 tiling(分块) 把 causal cumsum 切成 "block 内 left-product" + "block 间 right-product" 两条路径,前者并行(因为 block 小),后者递推但只走一次。这是 FlashAttention 思路在 linear attention 上的对应物。

Lightning Attention 的 tiling 计算图 block 1 (B=256) block 2 block 3 block T 序列 Q, K, V 沿 N 维切成 T = N/B 块 Intra-block (左乘): O_intra = [(Qₜ Kₜ⊤) ⊙ M] Vₜ 每块独立 → T 块完全并行;块内 B×B 小矩阵,causal mask M 在小矩阵上能展开 B=256 → 块内 attention 是 256×256,FlashAttn 风格 fused kernel + Inter-block (右乘): O_inter = Qₜ · KV_{<t}, KV ∈ ℝd×d 递推维护 KV: KVₜ = KV_{t-1} + Kₜ⊤Vₜ,只走 T 步,而非 N 步 T = N/B = 4000(N=1M, B=256),迭代深度从 1M 降到 4K
关键 insight: Block 内用 left-product (传统 attention 计算),Block 间用 right-product (linear attention)。Block 内可并行 → 吃满 SM;Block 间只有 T = N/B 次串行更新 KV state(d×d),整体复杂度 O(Nd² + NBd),N >> d² 时近似 linear。

具体一点: 1M context 上的 lightning attention forward

设 N = 1,048,576, d = 128(head dim), B = 256(block size), h = 64 heads。一次 forward:

  1. 分块:把 Q, K, V ∈ ℝN×d 切成 T = 4096 块,每块 256×128
  2. 初始化 KV ∈ ℝd×d = ℝ128×128 = 0,在 SRAM 中常驻
  3. 主循环 for t = 1..4096:
    • 从 HBM 加载 Q_t, K_t, V_t(每个 256×128 = 32KB,FP16)到 SRAM
    • O_intra = (Q_t K_t⊤ ⊙ M) V_t ⟶ B²d FLOPs ≈ 8M FLOPs
    • O_inter = Q_t · KV ⟶ Bd² FLOPs ≈ 4M FLOPs
    • O_t = O_intra + O_inter,写回 HBM
    • 更新 KV += K_t⊤ V_t (d²B FLOPs)
  4. 总 FLOPs ≈ N(Bd + d²) = 1M·(256·128 + 128²) ≈ 50G FLOPs/head

对比 softmax attention 在 1M 上 ≈ N²d = 1M·1M·128 ≈ 130T FLOPs/head — 差 2600 倍。这就是 Figure 2 里 1M prefilling 拉开的根。

3.2 反向论证:不做 tiling 会怎样?

如果直接用朴素 linear attention 公式 kv_t = kv_{t-1} + k_t v_t⊤; o_t = q_t kv_t,你会得到一个长度 N 的串行 dependency chain。GPU 即便有 1024 个 SM,每一步都要等上一步,实测 训练速度比 softmax(FlashAttn-2)还慢(论文 Figure 8 的 HGRN2 / Mamba2 数据印证)。Tiling 把 dependency chain 缩到 T = N/B 步,每步又能并行 B² 个内积,这才有 33.4K TGS 的吞吐。


4 · Hybrid 架构:7 + 1 的设计

4.1 整体结构

MiniMax-Text-01 总共 80 层,其中:

一个 8-layer group(共重复 10 组 = 80 层) Lightning Attn + MoE L1 LA + MoE L2 LA + MoE L3 LA + MoE L7 Softmax GQA + RoPE½ + MoE L8 ⭐ "retrieval anchor" 每 8 层显式做一次 global token interaction 为什么是 7+1 ? Capacity 论证 (§6 详谈) lightning state 容量 O(d²/h),softmax state 容量 O(d) — lightning 反而记得多 softmax 层用作"重置点 / global lookup",防止累积误差;7:1 是 NIAH 性能的实测最优 总参数 456B,每 token 激活 45.9B,context 1M 时单层峰值显存 ~ 80GB → 8×80GB H800 单机做 INT8 推理
每个 8-layer 组里,7 个 lightning 层做高效长程信息混合,最后一个 softmax 层做"retrieval anchor"——确保模型每过 8 层都能精确回看任意位置。比例 7:1 是论文实测出来的(Table 4 / Figure 7):比例越高越快但 NIAH 越差。

4.2 RoPE 只对一半 dim 用

论文一个细节: softmax 层只对 head dim 的前 64 维(共 128)加 RoPE,后 64 维不加。这样长度外推时,前半携带"相对位置信息"会受 RoPE 抑制,后半保留"位置无关的内容信息",得到更平滑的外推曲线。RoPE base = 10000,后续 long-context 训练阶段拉到 5M / 10M(详见 §8)。

4.3 反向思考:为什么不 1:1 / 3:1 / 15:1?

论文做了 ablation(Table 4):


5 · MoE 整合: 32 experts × top-2 + Global Router

5.1 路由公式

h_t = Σᵢ Softmaxᵢ( TopK(x_t · W_g) ) · FFNᵢ(x_t)

每 token 选 top-2 个 expert(K=2),取 softmax 加权。32 个 expert,每 expert FFN 内部 dim = 9216,每个约 14B 参数。所以总参数 32 × 14B + 共享部分 ≈ 456B,激活 2 × 14B + 共享 ≈ 45.9B。

5.2 Global Router (路由崩塌的修复)

标准 GShard auxiliary loss 在大集群 + 大 batch下会失灵:每个 EP group 看到的 token 分布都不一样,group A 的 expert 被打爆,group B 的 expert 闲着。论文加一步 allgather:在 dispatch 之前先全局同步每个 expert 已收到的 token 数,再做全局调度。这一步代价是 O(world_size · E) 个数,通信量极小但能把 token drop rate 砍到接近 0。

Global Router: 跨 EP group 同步 token 分布 没有 global router EP grp A EP grp B EP grp C overload underused drop! 每组各算各的 → 部分 expert 爆,部分饿 加 global router EP grp A EP grp B EP grp C allgather token counts 先全局同步 → 整体均衡 → drop ↓ 仍然保留 GShard auxiliary loss L_aux = α · (1/E) Σᵢ fᵢ · mᵢ,系数 α=0.01,确保每个 expert 都有梯度通路
Global router 是论文针对大规模 EP 的实操修复。Token-drop 策略下,如果 expert 满了就丢 token——dropped token 等于浪费的训练数据;global router 把单 step 的 drop rate 从 5–15% 降到 <1%。

5.3 Worked example: 一个 token 的路由

设 input token x_t = "积分" 的 hidden h_t ∈ ℝ6144。Router 步骤:

  1. logits = h_t · W_g, W_g ∈ ℝ6144×32 → 32 个 score
  2. 例如 score = [..., expert_3: 4.2, expert_17: 3.8, expert_29: 3.5, ...]
  3. top-2 选出 expert 3 和 17,softmax([4.2, 3.8]) = [0.60, 0.40]
  4. FFN_3(h_t) ∈ ℝ6144, FFN_17(h_t) ∈ ℝ6144
  5. output = 0.60 · FFN_3(h_t) + 0.40 · FFN_17(h_t)

整个 batch 的 ~30k token 同时做这个,每个 expert 期望承接 30k × 2 / 32 ≈ 1900 token;有了 capacity limit (e.g. 1.2× 期望) 后,超出的部分被丢。Global router 通过预先同步避免某个 expert 被打爆。


6 · Capacity 论证: 为什么 hybrid 反而比纯 softmax 还好

这是论文最反直觉的发现之一。常识里 hybrid 应该是权衡(略差但更快),但 Table 4 / Table 5 显示 hybrid-lightning 在 NIAH / SCROLLS 上甚至比纯 softmax 还高。论文给了一个干净的 capacity 论证:

6.1 把 softmax 看成线性 RNN

令 q_t, k_j 为 query/key 行向量。Softmax attention 可以重写成递推:

s_t^j = s_t^{j-1} + exp(q_t k_j⊤/√d)
o_t^j = (s_t^{j-1}/s_t^j) o_t^{j-1} + (1 − s_t^{j-1}/s_t^j) v_j

注意每个时间步 t 都要从 j=1 开始重算一遍 → 论文称这叫 "Going Through a Book"。这是为什么 softmax 在 retrieval 上强:它对每个 query整本书重读一遍,信息不会丢。

但仔细看:t 时刻保存的状态 (s_t, o_t) 都是 d 维向量 → recurrent state 容量 = O(d)

6.2 Lightning attention 的状态

而 lightning attention 的状态是 KV ∈ ℝd×d/h(每个 head),容量 O(d²/h)。在 d=128, h=64 时,d²/h = 256,而 d=128 → lightning 的状态容量是 softmax 的 2×。

机制recurrent state 大小每 query 是否重算retrieval 优势
Softmax attentionO(d) = 128是 (整本书重读)精确但容量小
Lightning attentionO(d²/h) = 256否 (一次性 sum)容量大但易遗忘细节
Hybrid 7+1两者结合每 8 层重读一次两个优势叠加

所以 hybrid 不是 trade-off,而是 "大容量 streaming + 周期性精确重读" 的组合。这解释了为什么 NIAH 上 hybrid 反而能超 pure softmax:lightning 那 7 层先把信息压缩进高容量状态,softmax 那 1 层再做精确 lookup,等于两次 representation 的协同。

记忆点:"linear attention 容量小于 softmax" 是错的——只对 RWKV / Mamba 这种 state 维度 = d 的方案成立。Lightning attention 的 state 是 d²/h,实际容量更大。

7 · 系统优化: LASP+ / Varlen Ring / EP-ETP

这一节是论文最"工程"的部分。能在 1500–2500 张 H800 上把 hybrid + MoE 跑到 75% MFU,几乎全靠这三件事:

7.1 LASP+: 把序列并行串行依赖打掉

原版 LASP (Sun 2024) 在 lightning attention 的 sequence parallel 模式下,需要 CP rank 之间用 send-recv 串行传 KV state——rank 0 算完 → 发给 rank 1 → rank 1 算完 → 发给 rank 2……一条链。这是因为 KV cumsum 必须按序累加。

LASP+ 的发现:每个 rank本地可以先算自己片段的 KV 局部前缀和(无依赖),再用一次 AllGather 把所有局部前缀和广播,各 rank 再独立组装出全局前缀和。把"链式 send-recv N 步"压成"一次 AllGather + 局部计算"。

论文实测:LASP+ 把 N 节点的速度从 1× 提到 1/N_pcn × 原 LASP 速度(基本恢复线性加速比)。

7.2 Varlen Ring Attention: 让 data-packing 不浪费

训练时把多条样本沿 sequence 维拼起来(data-packing),避免 padding 浪费。但传统 ring attention 假设单条等长样本,套用 data-packing 会让 attention 跨样本混淆,或要重度 padding。

Varlen ring attention 在每个 ring step 中用 variable-length causal mask 标记每条样本的边界 offset,让 attention 只在样本内部计算,跨样本部分被 mask 掉。配合 ring 通信,每个 CP rank 看到的 KV 跨 rank 滚动,整段 1M 长 packed sequence 直接训练,无任何 padding。

7.3 EP-ETP Overlap: 把 a2a 通信藏起来

MoE 的 all-to-all (a2a) 通信和 ETP 的 allgather/reduce-scatter 在不同 ProcessGroup 上,可以同时跑。论文把 token chunk 成 N 组,组间错开调度,让一组的 a2a 和另一组的 expert compute 并发。配合 EP-ETP 双层并行,把 MoE 通信开销从 baseline 减半。

7.4 一句话: 为什么 MFU 能到 75%

三件事叠加:

剩下的就是 lightning attention kernel 本身的高 SM 利用率(B=256 块对应 WGMMA 256×256 指令的 sweet spot)。


8 · 长上下文训练 recipe

论文最被工业界关注的部分: 怎么把 8K 训出来的模型扩到 1M / 4M。三阶段渐进训练:

阶段目标长度RoPE basetokensShort / Med / Long 比例
1 (初训)8K10K~10T
2128K5M300B30 / 70 / 0
3512K10M32B35 / 35 / 30
41M10M26B30 / 30 / 40
推理4M (extrapolate)10M

关键 trick:


9 · 实验关键结果

9.1 学术 benchmark (短文本)

MMLU 88.5 / MMLU-Pro 75.7 / MATH 77.4 / HumanEval 86.9 / GPQA 54.4 — 与 GPT-4o (11-20)、Claude-3.5-Sonnet 同档,部分超 DeepSeek-V3。属于"不输"级别,而不是"碾压"。

9.2 长上下文 RULER (核心战场)

ContextGPT-4oClaude-3.5-SonnetGemini-2.0-FlashGemini-1.5-ProMiniMax-Text-01
32k0.8880.9500.9570.9580.954
64k0.8840.9520.9370.9380.943
128k0.9380.8600.9170.947
256k0.7970.9160.945
512k0.7090.8610.928
1M0.8500.910

看 1M 列: Gemini-1.5-Pro 0.85,MiniMax 0.91。这是论文最有说服力的数字——之前只有 Gemini 能跑 1M,现在开源拿到了 +6 个点。

9.3 LongBench-V2 (推理 + 长文本)

w/ CoT 设置: MiniMax 56.5 vs GPT-4o 51.4,Long 子集 47.2 vs 43.5。在长 + 复杂推理交叉场景下显著领先。

9.4 MTOB (Long In-Context Learning)

这个 benchmark 让模型只能从 context 里的语法书 + 375 个例子学一门小语种 (Kalamang)。MiniMax 在 eng→kalam ChrF 半本书 +44.7 / 全本书 ~50,delta 全部超 GPT-4o / Claude / Gemini。说明 long-context 不只是 retrieval,而是真能做 in-context learning。

9.5 Prefill latency (Figure 2)

1M context: MiniMax-Text-01 H800 ~50s,Llama-3-70B H800 OOM(都跑不了)。256K: GPT-4o API ~70s,MiniMax ~5s。


10 · 与同类工作对比

工作核心机制规模本文与之差异
Mamba / Mamba-2SSM,state O(d)≤ 7B容量小,retrieval 弱;本文用 hybrid 解决,且 lightning state O(d²/h) 容量大于 Mamba
RWKV-7Linear RNN≤ 14B训练 cumsum 串行,大 batch 慢;本文 tiling 解决并行问题
Jamba (AI21)Mamba + Transformer hybrid 1:752B (12B active)主体是 Mamba,本文主体是 lightning(更高容量);本文规模大 9×
Mistral SWASliding window 4096≤ 22B窗口外丢信息;本文 lightning 不丢
Mixtral 8×22B纯 softmax + MoE141B / 39B active无 lightning,context 32K 上限;本文 1M
DeepSeek-V3纯 softmax + MLA + MoE671B / 37B active用 MLA 压 KV cache 但仍 quadratic;本文是 linear
Gemini-1.5-Pro未公开,可能 SSM hybrid未知1M 商业版;本文是首个开源 1M
MiniMax-01Lightning hybrid 7:1 + 32-expert MoE456B / 45.9B第一个商业级 linear-attention LLM
关注点提示: Jamba 是最近的对比对象。Jamba 的 1:7(softmax 多)反过来,因为它主体是 Mamba(状态容量小,需要 softmax 多帮),而 MiniMax 的 lightning 容量足够大,所以 7:1(lightning 多)。两者反映了不同 linear backbone 的容量差异决定了 hybrid 比例。

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

论文承认 / 隐含的局限

个人 take

我的疑问 (落地后想验证)

  1. Lightning attention 的 KV state 是 d×d/h ≈ 256 维 — 在长 reasoning(o1 / R1 风格)上,这个容量是否足够缓存中间推理步骤?
  2. RoPE 半维的设计在 4M 外推时有没有出现频率混叠?为什么没在论文里看到 4M RULER 数字?
  3. Lightning attention 的 prefix cache 怎么和 vLLM 的 paged KV 对齐?KV state 是 dense d×d 的,无法按 page 切分
  4. 32 experts × top-2 这个 K 值是否最优?DeepSeek-V3 的 256 experts × top-8 路径走向是否更好?
  5. Hybrid 7:1 在 reasoning RL post-training 里会怎样?如果 reward signal 强烈奖励"精确召回",训练会不会把 lightning 层"逼成" softmax?
  6. ETP 增加了 expert 维的 tensor parallel,但这要求 expert weight 切分,与 ZeRO-3 怎么协调没讲清楚

记忆点

立场 linear attention 不是替代,是主角;每 8 层留 1 个 softmax 当 retrieval anchor
公式 Lightning: O = [(QK⊤)⊙M]V (intra-block 左乘) + Q·(K⊤V) (inter-block 右乘),tiling B=256
规模 456B / 45.9B active,32 expert × top-2,80 layer,head dim 128, hidden 6144
容量 Lightning state O(d²/h)=256 > softmax state O(d)=128 → hybrid 不是 trade-off 是叠加
系统 LASP+ 把 sequence parallel 串行依赖改并行;Varlen ring 让 1M data-packing 无 padding
长度 三阶段训练 8K→128K→512K→1M,RoPE base 10K→5M→10M;推理外推 4M
数据 RULER 1M 0.91 vs Gemini-1.5-Pro 0.85;prefill 1M 仅 ~50s on 8×H800

精读笔记 v1 · 配套论文 PDF 在 /data/szhang967/papers/paper-notes/MiniMax01_2501.08313.pdf