动态稀疏
保存可选择的历史块,强项是精确检索;风险是索引器成本和漏选。
这期节目不是把三篇论文简单排成“谁更快”的榜单,而是从注意力的基本计算讲起,比较三种减少长上下文成本的路线:DeepSeek 的 Native Sparse Attention、Kimi 的 MoBA,以及 MiniMax 的 Lightning Attention。读懂这期的关键,是先理解模型到底在保存什么、跳过什么,以及算法为什么必须和 GPU 的执行方式一起设计。
下面先按节目自身的推进解释三个问题:注意力在算什么,三篇工作分别怎样省成本,嘉宾为什么把硬件和训练放在论文机制旁边。后面的“证据审计”才会区分论文报告与独立判断。
| 节目时间 | 内容推进 | 听众需要先掌握的概念 |
|---|---|---|
| 00:00–00:15 | 嘉宾背景、三篇新论文为何同时出现。 | 长上下文让注意力成为计算、显存和推理吞吐的瓶颈。 |
| 00:15–01:19 | DeepSeek Native Sparse Attention。 | 动态选择、压缩摘要、局部窗口、硬件原生训练。 |
| 01:19–01:44 | Kimi MoBA。 | 把注意力块当成可路由的专家,稀疏程度由 query 决定。 |
| 01:44–02:30 | MiniMax-01 Lightning Attention。 | 线性状态与少量 softmax 精确检索的混合。 |
| 02:30–结束 | 强化学习、研究路线与未来模型的猜测。 | 长上下文不是单纯扩窗口,而是为推理时计算重新分配预算。 |
杨松琳先把听众拉回 Transformer 的基础。对一个 token 来说,模型会产生 Query、Key 和 Value 三种向量。Query 可以理解为“我现在要找什么”,Key 是每个历史 token 提供的“我是什么线索”,Value 则是被取回的内容。模型计算 Query 与各个 Key 的匹配分数,再用这些分数对 Value 做加权求和。因此,序列中每个位置都可能和其他位置建立关系,这正是注意力擅长处理长距离依赖的原因。
代价也从这里出现:如果长度是 L,所有 Query 和 Key 两两比较,训练阶段的主要计算量大致随 L² 增长;生成阶段还要把历史 Key/Value 留在 KV cache 里,缓存空间随上下文长度增长。这里的“二次复杂度”和“线性 KV cache”不是两个互不相关的数字:长上下文把算力、显存带宽和通信同时推高,最终影响训练、prefill、decode 和服务成本。
主持人把问题连接到 AGI 和 test-time scaling:如果模型在推理时需要读更长的上下文、生成更长的思考过程,注意力就不再是论文里的一个层,而是决定模型能否把更多推理预算变成有效计算的基础设施。
节目先讲 DeepSeek 的 Native Sparse Attention。杨松琳把它放在“动态稀疏注意力”一类:与固定窗口、固定间隔等静态模式不同,每个 Query 可以根据当前内容决定关注哪些历史块。这样做的直觉是,长文本里并不是所有过去 token 对当前问题都同样重要;如果能保留全局粗粒度信息,再对少数相关区域做细粒度检索,就有机会同时保住远程信息和计算效率。
他解释的 NSA 结构包含三路信息:第一路把较大的历史区块压缩成粗粒度摘要,避免每个 Query 逐 token 扫描;第二路从候选块中选择少量重要块,并在这些块里保留更细的 token 信息;第三路保留滑动窗口,让当前位置附近的局部依赖不被稀疏选择漏掉。三路结果经过学习到的门控合并。对听众而言,这不是“随机少算一点”,而是一种分层记忆:压缩分支负责远处的轮廓,选择分支负责需要精确回看的内容,窗口分支负责局部连续性。
“Native”在节目中被反复解释为硬件原生和训练原生。很多稀疏注意力只在推理阶段看起来省计算,因为训练时的反向传播、稀疏索引和 GPU kernel 并不友好,最终还是要付出全注意力的成本。NSA 的目标是让稀疏模式从预训练开始就参与前向和反向,并让压缩、块选择和局部窗口都落到可高效执行的算子上。杨松琳尤其被论文声称在部分长上下文和推理任务上不弱于 Full Attention 所吸引,但节目没有逐表展开全部基线、数据和消融。
主持人问这是不是为下一代 DeepSeek 模型准备的。嘉宾给出“很可能服务于后续大模型”的判断,并把它和 R1 的 test-time scaling 连接起来。这是一个合理的研究路线推测,却不是论文已经证明的产品路线;这里必须把“论文提供了架构”和“嘉宾预测公司会怎样使用”分开。
第二条路线是 Kimi 的 Mixture of Block Attention。杨松琳把它和 NSA 放在一起,因为两者都让 Query 动态决定看哪些历史区域,但它们的组织方式不完全相同。MoBA 先把长上下文切成块,再把每个块视作一个可以被选择的注意力分支;当前 Query 不需要对所有块做完整注意力,而是根据相关性挑选少数块参与计算。
“Mixture of Block”这个名字借用了 Mixture of Experts 的直觉:不是每个 token 都激活全部专家,而是路由到少量专家;这里的“专家”不是独立的前馈网络,而是历史上下文中的块。它的好处是结构直接、容易理解,并且可以在全注意力和稀疏注意力之间调节。杨松琳认为 MoBA 的方案相对简洁,工程风险可能与更复杂的动态稀疏结构不同,但这仍是嘉宾的比较,不是同一训练预算下的公开胜负。
这一段把一个重要问题说清楚:稀疏注意力的核心不只是少算,而是要有一个足够便宜、足够准确的“先验选择器”。如果选择器本身要扫描全部历史,省下来的主注意力计算可能被抵消;如果选择得太少,模型会漏掉关键前提。于是稀疏注意力的系统成本至少包括索引、主计算、内存访问、块大小和漏选后的能力损失。
第三条路线不是动态挑选历史块,而是把线性注意力和 softmax 注意力混合起来。线性注意力的想法是把历史逐步写入固定大小的状态,避免每个新 token 都与全部历史重新两两比较,因此更适合超长序列和流式生成。但固定状态也带来信息压缩:如果两个看似相似的事实需要在未来被区分,状态可能没有足够容量保留它们。
节目把 Lightning Attention 解释成一种折中:绝大多数计算使用线性状态,少量层或少量通路保留 softmax attention,用于精确读取历史。嘉宾提到过约七层线性、一路 softmax 这样的直观比例,但这是节目中的解释和经验数字,不能替代不同版本论文的具体配置。它的关键不是“线性一定赢”,而是把精确回看从全层预算改成稀缺资源,只在任务需要时使用。
这里还涉及一个容易混淆的概念:Lightning Attention 和 MoE 都能降低平均计算,但它们解决的是不同问题。MoE 主要把前馈层的总参数容量与每 token 激活计算分开;Lightning Attention 主要改变序列历史如何被存储和访问。MiniMax-01 把 Lightning Attention 与 MoE、并行策略和通信重叠放在一起,是因为真正的训练/推理成本取决于它们的乘积,而不是单一模块的复杂度。
节目也提到线性模型在多跳推理上可能出现回退:如果任务需要反复回到多个相距很远的证据,固定状态会发生冲突,团队可能重新增加全注意力层。这不是对线性注意力的否定,而是说明“上下文很长”和“需要精确检索”并不是同一个需求。
杨松琳最后把论文拉回研究方法。一个算法写成 O(L) 不代表 GPU 上就一定更快;递归状态可能暴露串行依赖,稀疏索引可能导致不规则内存访问,块太小又会增加 kernel launch 和通信开销。只有把数学更新改写成适合批量并行的 chunkwise 算法,再用 CUDA、Triton、低精度和框架集成把它跑起来,复杂度才会转化为吞吐和成本。
这也解释了为什么三家公司在注意力之外都谈 MoE、FP8、训练框架和 infra。模型总参数、每 token 激活参数、KV cache、带宽、通信和数值稳定性共同决定产品能否训练、能否服务。主持人进一步问到 DeepSeek 后续项目和 V4,嘉宾给出了一系列方向性预测;节目没有把这些预测当作确定路线,听众也不应把它们和已发表论文混为一谈。
原文讲解到这里。下文把三条路线抽象成信息预算,再审计论文自报结果和节目判断的边界。
三篇工作的共同问题是:长上下文让“看全部历史”越来越贵,但模型又不能简单地忘掉历史。它们的差异在于把历史访问预算放在哪里。NSA 让模型动态选择少量块,并用压缩与局部窗口兜底;MoBA 把块路由成可调节的注意力专家;Lightning Attention 让大部分历史进入固定状态,只保留少量精确通路。
保存可选择的历史块,强项是精确检索;风险是索引器成本和漏选。
把历史压进固定状态,强项是长序列和低缓存;风险是状态碰撞与不可逆丢失。
让多数层便宜运行,少数层精确回看;风险是层级配方、训练和评测复杂。
| 步骤 | NSA / MoBA 的做法 | Lightning Attention 的做法 | 关键失败模式 |
|---|---|---|---|
| 候选形成 | 把历史切成块,形成可选择的候选。 | 历史持续写入递归状态,少数路径保留原始访问。 | 块边界或状态摘要丢掉跨段关系。 |
| 预算分配 | 由当前 Query 动态选块或选 token。 | 按层/通路分配线性与 softmax 的比例。 | 选择成本吃掉收益,或精确通路太少。 |
| 内容读取 | 对选中的块做较细注意力,局部窗口补近邻。 | 从固定状态读取压缩历史,softmax 通路精确检索。 | 多跳推理需要同时读取多个远处证据。 |
| 硬件执行 | 需要高效稀疏、块访问和门控 kernel。 | 需要并行化递归、chunking 和低精度稳定。 | 理论复杂度与真实 GPU 吞吐不一致。 |
因此对这类论文最重要的评测不是只报一个长上下文 benchmark 分数,而是同时问四个问题:第一,选择器或状态是否真的减少了端到端算力;第二,在相同参数、数据、训练 token 和硬件下,能力损失是多少;第三,长程检索、多跳推理和冲突信息任务是否覆盖;第四,漏选或压缩错误是否可检测、可回退、可修复。
| 节目中的说法 | 证据层级 | 保守写法 |
|---|---|---|
| NSA 在部分长上下文、迁移和推理任务上可达到或超过 Full Attention。 | NSA 论文摘要和作者实验报告。 | “论文在其设置下报告”,不外推成所有任务的普遍超越。 |
| MoBA 可在全注意力与稀疏注意力之间转换,并服务 Kimi 长上下文。 | MoBA 论文摘要/官方公开说明。 | 记录为公开工作和部署方向,仍需等预算对齐的独立复现。 |
| MiniMax-01 可训练到百万 token 上下文,并与 GPT-4o 等比较。 | MiniMax-01 论文自报。 | 保留模型、上下文和 benchmark 条件,不能写成普遍质量等价。 |
| DeepSeek NSA 是为 V4 或后续产品准备的。 | 嘉宾预测。 | 明确标为路线推断,不能当作公司已确认计划。 |
| 线性注意力在多跳推理上会退化并触发回退。 | 嘉宾研发经验,未提供完整日志。 | 作为值得验证的失败假设,而不是线性路线的定理。 |
本文主材料是 Zhang Xiaojun Podcast #94 的完整节目与公开转录。节目中对论文的解释已经按原文顺序重建,但嘉宾对论文优劣、研究团队动机、MiniMax 研发经验和 DeepSeek 后续路线的判断不等于独立复现。下面列出的论文链接用于核对标题、方法和作者自报范围;本文没有把它们的 benchmark 结果重新跑一遍。
注意力机制的性能和成本高度依赖实现、硬件、序列长度、batch、精度与任务;任何论文摘要中的“更快”“更强”都必须带着这些条件一起阅读。