MSA 稀疏注意力三国杀:NSA / DSA / MoBA / MSA 四方案深度对比¶
Ch01.188 MSA 稀疏注意力三国杀:NSA / DSA / MoBA / MSA 四方案深度对比¶
📊 Level ⭐⭐ | 21.0KB |
entities/msa-sparse-attention-three-kingdoms-huashu.md
MSA 稀疏注意力三国杀:NSA / DSA / MoBA / MSA 四方案深度对比¶
本实体整理自 原文存档,并参考 MiniMax M3 论文 MiniMax Sparse Attention(https://github.com/MiniMax-AI/MSA/blob/main/docs/MiniMaxSparseAttention.pdf )。 这是一份把 2026 年稀疏注意力赛道 4 份方案 (NSA / DSA / MoBA / MSA) 摆到一张桌上的完整对比。
一句话总结¶
2026 年稀疏注意力已成国产长上下文模型的"标配动作"——DeepSeek NSA (2025-02 论文) + DSA (2025-09 V3.2 落地)、Kimi MoBA (2025-02)、MiniMax MSA (2026-06 M3 配套)。四份方案表面相似,骨子里在三个分歧轴 (颗粒度 / KV 压缩 / 辅助分支) 上分道扬镳,外加一条正在收敛的暗线(训练配方从端到端 → 蹭信号 → KL 对齐)。背后是两种信念:DeepSeek 押"信息禁得起压",MiniMax 押"要省就省在挑选上"。
为什么大家都奔向稀疏¶
Transformer full attention 计算量是 O(n²)——1M 上下文下算力直接吃满,KV cache 把显存也吃满。稀疏注意力的核心思路:生成下一个词时,没必要真的回头看完前面 100 万个 token,挑出真正相关的一小撮来精算。
挑谁、怎么挑、挑多细——这就是三国杀的全部分歧。
MSA 架构:粗筛 + 精算¶
MSA 由两条分支组成:Index Branch(索引分支)+ Main Branch(主分支)。
第一步:粗筛¶
索引分支把上下文切成块(每块 128 token),用很轻的打分动作估每块相关性:
- 给块内每个 token 打分
- 取块内最高分当这块的分(论文叫 block max pooling)
- 挑出 16 块——当前位置所在的块必选,其余按得分高低挑
第二步:精算¶
主分支只在挑出的 16 块上跑完整 attention。
16 块 × 128 token = 每生成一个词固定只精算 2048 个 token——不管上下文是 10 万还是 100 万。预算焊死就是省钱的核心。
索引分支训练:KL 对齐¶
挑 top-k 这个动作不可导——索引分支不能用正常训练方法教它"该挑哪块"。论文的解法:
- 让索引分支拿主分支的 attention 分布当老师,用 KL 散度对齐("你主分支真正关注谁,我就学着给谁打高分")
- 训练信号只更新索引分支自己的参数(梯度截断)
- 开头 40B token 先跑全 attention 热身,等索引分支学得差不多再开启稀疏
效果:索引分支挑出来的块,覆盖了主分支九成以上的 attention 权重——用结果说话。
Kernel 创新:Outer Gather Q¶
问题:常规稀疏 kernel 以 query 为中心——每个 query 各自去把它要的 KV 块捞出来,同一块数据被不同 query 反复读。
MSA 反过来:以 KV 块为外层——把所有选中了这块的 query 聚集到一起,一次性算完,每块数据只读一次。
GPU 是算得快、搬数据慢的架构(瓶颈在访存),衡量 kernel 看 计算访存比:
| 中心化方式 | 计算访存比 |
|---|---|
| Query 为中心 | ≈ 组内头数(实验模型下 16) |
| KV 块为中心 | ≈ 块大小 × 2/3(128 块下 85) |
仅 top-k 选择这一步 kernel 实现快 3-5 倍。这一反转是 MSA kernel 的核心创新。
MSA 性能数据(109B 实验模型,1M 上下文)¶
| 指标 | 数字 |
|---|---|
| 注意力计算量 | 缩到全 attention 基线的 1/28 |
| H800 prefilling 加速 | 14.2× |
| H800 decoding 加速 | 7.6× |
论文老实承认实测加速追不上 28.4 倍理论值——建索引、挑 top-k、聚集 query 这些动作本身有开销。这些数字全来自论文的实验模型,M3 本体多大、实际跑起来快多少,论文没披露——只能等第三方实测。
MSA 能力不掉:3T token 对照实验¶
同一个 109B 模型,一个用全 attention 训,一个从头用 MSA 训,loss 曲线几乎重合。下游 benchmark:
- 从头稀疏训练版(MSA-PT):长文本检索、数学、视频理解等好几项反超全 attention 基线
- RULER-8K:84.2 vs 79.8(MSA-PT vs Full Attention)
- MSA-CPT:拿全 attention 模型花 400B token 继续训练,可改装成稀疏版,能力几乎无损
MSA-CPT 残余差距:综合检索分差全 attention 0.6 分,重排序任务差 2 分多。要靠更长稀疏训练或加大选择预算去填。
附录最有意思:head 涌现的三种模式¶
把训练好的索引分支到底在挑什么可视化,每个头一张选择概率热力图:
- 沿对角线的深色带——永远关注最近的内容
- 最左边一条竖线——所有头都盯着开头几个 token 不放(attention sink 现象:注意力分数必须全部分出去,没什么值得看时,开头几个 token 成了"停车场")
- 各组各不相同的斜向条纹——不同头各自负责回看不同距离的远程信息
没人教过它这些,全是 KL 对齐训练自己涌现的。
试过的强制规则都被砍掉: - 显式加 sink 参数(GPT-OSS 思路)→ 没收益,砍掉 - 强制选开头第一块 + 附近窗口 → 模型自己就会这么选,强制规则纯属多余,砍掉 - 最终版只保留一条强制规则:当前 token 所在块必选
论文开篇自己写了:遵循奥卡姆剃刀,消融实验做完,只留下必不可少的组件。
三国杀:3 个核心分歧轴¶
场上四份方案:
| 方案 | 团队 | 时间 | 性质 |
|---|---|---|---|
| NSA | DeepSeek | 2025-02 论文 | 学术完备(三分支架构) |
| DSA | DeepSeek | 2025-09 V3.2 | 生产实现(Lightning Indexer) |
| MoBA | Kimi | 2025-02 | 块级混合(可切回全 attention) |
| MSA | MiniMax | 2026-06 M3 | 选择器(不压 KV) |
NSA 和 DSA 同源思想不同实现——论文偏学术完备,落地偏生产效率。
分歧一:颗粒度——token 级还是块级?¶
| 方案 | 颗粒度 | 细节 |
|---|---|---|
| DSA | token 级 | Lightning Indexer 给每个 token 单独打分(ReLU + FP8),精确挑 2048 个 |
| MSA | 块级 | 16 块 × 128 token = 2048 token 预算 |
| MoBA | 块级 | 块内 key 向量取平均当代表,无额外参数 |
对仗细节:DSA 每个 query 挑 2048 token,MSA 挑 16 块 × 128 = 2048 token,预算一模一样,分歧全在颗粒度。
赌的: - DSA:逐 token 挑能捞到散落各处的零碎信息 - MSA:相关内容通常成段聚着,块级足够,且块状访存对 GPU 友好
MSA 论文点了 token 级一句:长上下文下,光是从 100 万 token 里做 top-k 挑选本身就占不可忽略的延迟。
分歧二:压不压 KV?¶
DeepSeek 路线 = 两层叠加: - 底层 MLA 把 KV 压成更小的潜向量("与其存高清原图,不如存压缩图,放大有点糊但大轮廓都在"),省显存 - DSA 叠在 MLA 之上——在压缩后的 KV 上做 token 级稀疏选择 - 官方报告写得很直白:DSA 是"建在 MLA 之上"的
MSA 路线 = 不压 KV——论文原话 "selector-only design",KV 原原本本存着,所有功夫花在"选得准"上。
两种信念的冲突:
| 立场 | 押什么 |
|---|---|
| DeepSeek | 信息禁得起压,糊一点没关系,省下来的显存更值钱 |
| MiniMax | 要省就省在挑选上,真正要算的那一下别糊 |
这条分歧在 2026-04 DeepSeek V4 上更激化:1M 上下文下每 token 推理计算量压到 V3.2 的 27%,KV cache 剩 10%——靠的是压缩得更狠的新一代 attention。DeepSeek 把"压"的信念贯彻到底;MiniMax 刚交的是"选"的答卷。
分歧三:要不要辅助分支?¶
NSA = 三件套: - 压缩分支(把连续块压成代表) - 选择分支(挑最重要块精算) - 滑动窗口分支(照顾最近 token)
三条各管一摊,最后用学出来的门控加权汇总。复用压缩分支算 attention 的副产品作选块分数,几乎零成本。
MSA 砍掉另外两条,只留初筛 + 精算。减法是对照实验做出来的:固定只看开头一块 + 最近窗口的 baseline 在一堆 agent 任务上一致地更差——位置固定的稀疏模式不如让模型自己动态挑。滑窗分支不是忘了做,是验证过不值得单独留。
MoBA 的特殊取舍:能在全 attention 和稀疏 attention 之间灵活切换——百万上下文实验里:模型最后 3 层保留全 attention、其余层用 MoBA;预填充阶段用稀疏、生成阶段切回全 attention。说明 Kimi 自己也清楚稀疏在哪些环节有短板,用混合配置绕开。
暗线:训练配方正在收敛¶
四家给了三种答案教"挑块的小脑":
| 方案 | 训练方式 | 适用 |
|---|---|---|
| NSA | 端到端一起训(搭主结构便车) | 学术方案 |
| MoBA | 蹭主模型学习信号(不给小脑配参数) | 极简方案 |
| DSA + MSA | 单独给小脑找老师(KL 对齐) | 生产方案 |
越靠近生产的方案,越往第三种靠——千亿参数规模,训练稳定性比架构优雅重要得多。
深度分析¶
1. 长上下文之争的核心矛盾:从"能做"到"用得起"¶
四份方案折腾来折腾去,本质都在干同一件事——把长上下文从"能做"变成"用得起"。这件事的意义比 1M 数字本身大:
- 长程 Agent 连干十几个小时
- 在百万行代码库里排查问题
- 把几小时视频一次喂进去理解
这些更性感的能力,全压在"长上下文用得起"这个前提上。底座便宜了,楼才盖得起来。
2. "Selector-only" vs "Compress-then-Select" 的范式选择¶
四份方案最深层的分歧其实只在 2 条线上:
- Selector-only(MSA):选得准 > 压得狠
- Compress-then-Select(DeepSeek DSA):省显存 > 算得精
这两种选择背后是对模型智能的信任: - 选得准派相信模型能识别"哪些相关"——优先发展选择能力 - 压得狠派相信模型能容忍"信息模糊"——优先发展压缩能力
从工程落地看,selector-only 风险更低(KV 完整 → 出问题可解释),但 KV cache 占用更大;compress-then-select 工程风险高(压缩一旦破坏关键信息就难诊断),但推理吞吐量更大。
3. KL 对齐作为"小脑"训练范式的工程意义¶
DSA + MSA 都选了 KL 对齐训练"挑块的小脑",这背后有几个工程含义:
稳定性:梯度截断保护主网络不被打乱 → 大规模训练可恢复 可解释性:小脑=学"模仿主网络的 attention 模式" → 出现异常时可直接观察小脑选了什么 可蒸馏性:用主网络当老师 → 学生(小脑)规模可以极小(MSA 索引分支只用 1 个打分头)
这与 Agent 自我改进循环 中"用强模型教弱模型"的范式一脉相承——但这里的"强弱"是同一模型的不同角色(main branch 是老师,index branch 是学生)。
4. Head 涌现模式反映的训练稳定性¶
附录里 head 涌现的三种模式(对角线 / attention sink / 斜条纹)说明:
- 模型自己学到了"局部性 + 持久化 + 多尺度"的 attention 模式
- 这些模式与人类设计的归纳偏置(sliding window + global token + multi-scale)不谋而合
- 人为强制规则都被砍掉——模型会自己学会这些
这给稀疏注意力训练提供了一个重要经验:不要过度工程化。最好的设计是给模型自由度 + 简单约束("当前块必选"),让它自己涌现合理的模式。
5. 论文级别的负结果为何重要¶
MSA 论文花了大量篇幅讲"试过、没用、砍掉":
- 显式 sink 参数 → 砍
- 强制开头 + 窗口 → 砍
- 多分支辅助 → 砍(对照实验证明)
这种"负结果"比"正结果"更难得——大多数论文只展示 work 的部分,不展示"我试过 X 但 Y"。MSA 论文展示了完整的"奥卡姆剃刀"过程:
论文开篇原话:"遵循奥卡姆剃刀,消融实验做完,只留下必不可少的组件"。
这种"负结果透明"应成为稀疏注意力研究的新标准——避免后人重复踩坑。
实践启示¶
对 LLM 训练团队¶
- 1M 上下文的成本是新基准——能不压 KV 但仍能 1M 推理(MSA),就别压;如果一定要压(DeepSeek V4 路线),就压得彻底
- 训练配方比架构更影响生产稳定性——选 KL 对齐这种"梯度隔离 + 模仿主网络"的范式
- 从 3B token 改装起跑——MSA-CPT 证明 400B token 改装就够了,不必从头训练
对 Agent / 应用开发者¶
- 长上下文用得起是 agent 化的前提——M3 + MSA 1M 上下文是质变信号
- kernel 开源红利:MSA kernel 单独开源(待仓库地址放出),可被其他模型直接复用
- 选择用谁看场景:编程 + 多模态选 M3;纯长文检索选 DeepSeek V4
对 LLM 研究者¶
- head 涌现模式是研究金矿——attention sink / 局部性 / 多尺度这些现象值得更深入的可解释性研究
- 稀疏 + 稀疏 = 更稀疏——MoBA + 残差 attention 的混合架构是新的可探索方向
- 附录的负结果应当成为研究标准——MSA 论文展示了"奥卡姆剃刀"的过程,比 SOTA 数字更启发人
与现有实体的互补关系¶
- MiniMax M3 开源 Frontier 模型 — MSA 是 M3 的核心架构创新
- DeepSeek V4 Flash Pro 1M 上下文 — 压得狠路线的最新代表
- DeepSeek V4 训练方法学 — 训练配方对比
- Lighthouse Attention — 另一款稀疏 attention 方案(对称 Q/K/V 池化)
- Attention Mechanism — 稀疏注意力的概念基础
- Context Engineering — 长上下文管理的核心议题
- 近期 LLM 架构进展 — 注意力架构的近期综述
- Agent 自我改进循环 — KL 对齐作为 "强教弱" 范式的理论基础
- M3 开源三件套 — 同一文章的不同角度解读
总结:长上下文之争转向"成本"¶
哪种赌注能赢,得等更多真实场景的长跑验证:
| 方案 | 赌注 | 风险 |
|---|---|---|
| DSA | 多花一笔打分成本,赌细粒度挑选物有所值 | 延迟被 top-k 吃掉 |
| MSA | 赌选得准比压得狠重要 | KV cache 占用大 |
| NSA | 赌面面俱到(压缩 + 选择 + 窗口) | 工程复杂度高 |
| MoBA | 赌灵活切换(混合配置兜底) | 架构一致性弱 |
但有一点已经挺清楚了:长上下文这场仗,比的不再是谁能做到 1M,而是谁能让 1M 便宜到随便用。
→ 原文存档