MiniMax Sparse Attention:把长上下文算力成本打下来的工程艺术
> 一句话摘要:MiniMax 用极简的双分支块级稀疏注意力(MSA),把 1M 上下文的 per-token 注意力计算压到 1/28.4,配合定制 GPU kernel 实现 14.2× prefill 和 7.6× decoding 加速。核心洞察:不要 token-level 的复杂稀疏模式,而是 block-level 的轻量 Top-K 选择——把"好钢用在刀刃上"。
---
一、为什么长上下文是"吞金兽"
Transformer 的注意力机制有一个臭名昭著的特性:二次方复杂度。
对于长度为 N 的序列,标准 self-attention 的计算量是 O(N²)。这意味着:
- 4K 上下文 → 1600 万对注意力
- 128K 上下文 → 163 亿对注意力
- 1M 上下文 → 1 万亿对注意力
MiniMax 的解法不是更聪明的近似算法,而是极简的工程取舍。
---
二、MSA 的架构:两个分支,各司其职
MSA(MiniMax Sparse Attention)的核心是一个双分支架构,建立在 GQA(Grouped Query Attention)之上:
输入序列 → [Index Branch] → 选中的 Top-K 块索引
→ [Main Branch] → 只在选中的块上做精确 attention
Index Branch:轻量级"选股器"
这是一个极简的索引分支,只做一件事:给所有 key-value 块打分,选出最重要的 K 个。
具体设计:
- 每个 GQA 组只有一个 index query head 和一个共享的 index key head
- 对可见的 key token 打分,然后max-pool 到块级别
- Top-K 算子选出每个查询、每个 GQA 组的最高分布块
- 本地块(包含查询自身的块)始终被包含,防止"灯下黑"
- 块大小 Bk = 128 tokens
- 每查询保留 k = 16 个块
- 每个查询的 KV token 预算 = k × Bk = 2,048 tokens
Main Branch:精确但稀疏的 Attention
主分支只在 Index Branch 选中的块上做精确的 softmax attention。
- 每个 query head 保留自己的 query projection
- 但共享所属 GQA 组的块集合
- 应用标准的 scaled dot-product softmax attention,只是限制在选中的 token 上
GQA 组间独立
不同 GQA 组可以 attend 到不同的长程区域。这意味着:
- 一个组可以专注于"代码结构"
- 另一个组可以专注于"自然语言注释"
- 第三个组可以专注于"跨文件依赖"
三、块级稀疏:为什么不是 token-level?
MiniMax 做了一个看似保守但实际极聪明的选择:稀疏粒度是块(128 tokens),不是单个 token。
为什么?
Token-level 稀疏的问题:
- 需要复杂的索引结构(如 Sparse Transformer 的 strided pattern)
- GPU 的 tensor core 对不规则内存访问极不友好
- 实际加速往往远低于理论加速
- 内存访问模式是规则的、连续的
- 可以充分利用 GPU 的 block-granular 并行
- 实现简单,部署友好
> "Designed around a principle of simplicity and scalability, MSA is deliberately streamlined, making it straightforward to deploy efficiently across a broad range of GPUs."
这是工程优先于理论的典型案例。
---
四、GPU Kernel 的协同设计
光有稀疏策略不够,还需要让 GPU 真正能跑快。MiniMax 做了三件事:
1. Exp-free Top-K 选择
标准的 softmax attention 需要 exp 运算(数值稳定性)。但 Index Branch 的 Top-K 选择不需要 softmax——它只需要相对排序。
所以 MiniMax 设计了一个无 exp 的 Top-K kernel,省掉大量计算。
2. KV-outer 稀疏 Attention
标准的 attention 计算是 QK^T(内积),然后 softmax,然后乘 V。
MiniMax 设计了一个"KV-outer"路径:直接把稀疏性融入矩阵乘法的 tiling 策略,提升 tensor core 利用率。
3. Block-granular 内存访问
所有数据移动都以 128-token 块为单位,完美对齐 GPU 的 shared memory 和 cache line。
结果:在 H800 上,MSA 实现了 14.2× prefill 加速和 7.6× decoding 加速。
---
五、训练稳定性:三个关键机制
稀疏注意力最大的坑是训练不稳定——Index Branch 的选择是不可微的,容易导致梯度断裂。
MiniMax 用了三个机制来解决:
1. KL Loss 对齐
在训练时,加一个 KL divergence loss,让 Index Branch 的分布与 Main Branch 的 group-averaged 分布对齐。
这意味着:Index Branch 不只是"猜"哪些块重要,而是学习去模仿 Main Branch 的注意力模式。
2. 梯度分离
Index Branch 的梯度被显式分离(detach),不让选择操作的梯度回传到 Main Branch,防止不稳定。
3. GQA 组内共享选择
同一个 GQA 组内的多个 query head 共享相同的块选择。这减少了选择方差,提升了稳定性。
---
六、性能数据:1M 上下文下的 28.4× 计算削减
在 109B 参数(428B 总参数 / 23B 激活参数)的 MiniMax-M3 模型上:
| 指标 | GQA 基线 | MSA | 提升 |
|---|---|---|---|
| 1M 上下文 per-token attention 计算 | 1× | 1/28.4× | -96.5% |
| H800 prefill 速度 | 1× | 14.2× | +1320% |
| H800 decoding 速度 | 1× | 7.6× | +660% |
| 模型质量 | baseline | on par | 无损失 |
---
七、MiniMax-M3:MSA 的实战检验
MSA 不是纸上谈兵,它已经 powering MiniMax-M3——一个开源的生产级模型:
- 428B 总参数 / 23B 激活参数(稀疏 MoE)
- 原生多模态:从训练第一步就混合文本、图像、视频
- 1M 上下文窗口
- 三种推理模式:thinking(复杂推理)、adaptive(自动判断)、disabled(最小延迟)
- SWE-Bench Verified: 80.5
- OmniDocBench: 91.6
- VideoMME: 85.4
- BrowseComp: 83.5
---
八、与其他稀疏注意力方法的对比
| 方法 | 稀疏策略 | 训练难度 | 部署友好度 | 适用场景 |
|---|---|---|---|---|
| Sparse Transformer | 固定 strided pattern | 中 | 中 | 中等长度 |
| Longformer | 滑动窗口 + 全局 token | 中 | 中 | 文档级任务 |
| BigBird | 随机 + 窗口 + 全局 | 高 | 低 | 图/文档任务 |
| FlashAttention | IO-aware 精确 attention | 无 | 高 | 通用加速 |
| MSA (MiniMax) | 块级动态 Top-K | 低 | 极高 | 超长上下文 |
---
九、局限与思考
1. 块大小是超参数
Bk=128 是硬性设定。对于需要细粒度注意力的情况(如代码中的单个字符),可能丢失信息。
2. Top-K 的"遗漏"风险
如果关键信息恰好落在被丢弃的块里,模型会完全看不到。Index Branch 的选择质量至关重要。
3. 长程依赖的"跳跃"
某些任务需要 attend 到距离很远的特定 token(如变量定义在文件开头,使用在文件末尾)。块级选择能否捕获这种"跳跃"依赖,取决于 Index Branch 的学习能力。
4. 解码阶段的 KV-cache
虽然 MSA 减少了 attention 计算,但 1M 上下文的 KV-cache 仍然巨大。MiniMax 的解决方案是配合 MXFP8 量化,但这仍然是部署挑战。
---
十、对 Agent 开发者的启示
1. 长上下文不是"越大越好"
1M token 的上下文窗口听起来很酷,但如果每次推理都要处理 1M token,成本会压垮任何应用。MSA 的意义在于:让长上下文从"演示功能"变成"可部署特性"。
2. 稀疏是工程,不是魔法
MSA 没有提出新的数学理论。它的创新在于工程取舍:块级粒度、GQA 组内共享、exp-free Top-K、KV-outer kernel。这些细节才是加速的来源。
3. 动态选择 > 固定模式
滑动窗口、固定 strided pattern 的问题是"一刀切"。MSA 的 Index Branch 让模型学习去决定"哪里重要",这比人为设计的稀疏模式更灵活。
4. 协同设计是必需的
稀疏策略和 GPU kernel 必须一起设计。MSA 的 block-granular 内存访问和 tensor core 优化是加速的关键,不是可有可无的"锦上添花"。
---
参考论文
- Lai et al. (2026). MiniMax Sparse Attention. *MiniMax*, arXiv:2606.13392.
- MiniMax-M3: https://huggingface.co/MiniMaxAI/MiniMax-M3
- MSA 推理 Kernel: https://github.com/MiniMax-AI/MSA
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens