← 返回 2026-05-11

MISA: 长上下文 LLM 推理的索引器混合稀疏注意力 MISA: Mixture of Indexer Sparse Attention for Long-Context LLM Inference

Ruijie Zhou, Fanxu Meng, Yufei Xu, Tongxuan Liu, Guangming Lu, Muhan Zhang, Wenjie Pei 📅 2026-05-08 👍 12 2026-07-13 08:36
DSA索引器加速 推理优化 混合专家MoE 稀疏注意力 长上下文推理

用MoE路由DSA索引器头,长上下文推理提速3.82×且精度持平

前置知识

稀疏注意力(Sparse Attention)

在长序列上只为每个 query 选一小部分前缀 token 参与注意力计算,主成本从 $O(L^2)$ 降到 $O(Lk)$ 或更低。代表方法有 Longformer 固定窗口、StreamingLLM 注意力 sink 缓存,以及 DeepSeek 的 token-wise 索引器。

MISA 是稀疏注意力索引器层的优化,必须先理解 DSA 风格的 top-k 索引器才能看清 MISA 改造的对象和接口。

DeepSeek Sparse Attention (DSA)

DeepSeek-V3.2 提出的推理时稀疏方案:一个轻量 learned indexer 用 $H_I$ 个头对前缀每个 token 打分后做 top-k 选择;下游 Sparse MLA 只在被选 token 上做注意力。$H_I=64$ on V3.2、$32$ on GLM-5。

MISA 显式声明自己是 DSA indexer 的 drop-in 替换,所有对比和成本分析都围绕 DSA 的 $H_I$ 头瓶颈展开。

混合专家(MoE)路由

在 FFN 层用路由器为每个 token 选 top-k 个专家子网络,不同 token 走不同专家,推理时只激活一小部分参数。代表工作有 Mixtral 与 DeepSeek-MoE;本文把 head 视为 MoE 专家池,沿用其"按 query 选专家"的思路。

MISA 的核心是把 DSA 索引器的 $H_I$ 个打分头组织为 MoE 池,用路由器挑出 $h\ll H_I$ 个活跃头承担实际打分,从而压缩成本。

Multi-Latent Attention (MLA) / Sparse MLA

MLA 把 KV 压缩为低秩 latent $c_t$,MQA 模式下多 query 头共享同一 latent entry;Sparse MLA 仅在 indexer 选中的 $k$ 个 token 上做 MLA,主成本从 $O(L^2)$ 降到 $O(Lk)$。

MISA 假设下游 Sparse MLA 保持不变,只动 indexer;理解 MLA 才能明白 indexer 的输出 top-k 集合就是接口,MISA 不需要重新训练 MLA。

研究动机

前沿 LLM(Qwen3、Kimi K2、GLM-5、DeepSeek-V3.2/4)已能处理数十万到上百万 token 的前缀,此时 dense attention 在 prefill 和 decode 上都成为主要成本。DSA 用 token-wise 索引器做 top-k 选择,是最强的细粒度推理时稀疏方案,DeepSeek-V4 的 CSA 仍然是在 4× 压缩 KV 上套 DSA。但 DSA 索引器本身仍用 $H_I=64$ 个头对 $L$ 个前缀 token 全打分,per-query 成本 $O(H_I L)$、prefill 累计 $O(H_I L^2)$,在 128K 上下文上即使 FP8 量化、ReLU 激活仍占主导。已有改进(IndexCache 跨层复用、HISA 块到 token 层级化)都只在 token 轴做文章,仍让全部 $H_I$ 个头在 kernel 内激活,且会牺牲 token 粒度检索能力。

本文的目标是本文目标是把 DSA 索引器单 query 成本从 $O(H_I L)$ 降到 $O(hL + H_I M)$,其中 $M=\lceil L/B\rceil\ll L$、$h\ll H_I$,且输出与 DSA 完全兼容的 top-k 集合以喂给原 Sparse MLA,drop-in 替换、无需重训。最终在 DeepSeek-V3.2 与 GLM-5 上验证 head 减少 8× 或 4× 前提下,LongBench/NIAH 精度不下降,kernel 端到端加速 3.82×。

与已有工作不同的是,作者认为先前工作都盯着 token 轴,忽略了 DSA 索引器成本的另一维度——head 轴:$H_I$ 个头虽然聚合起来表达力强,但任意单个 query 真正需要的相关性 pattern 只是头池的一个小子集,且该子集随 prefix 变化缓慢,可用廉价的块级统计预测。于是提出把 $H_I$ 个索引器头视为 MoE 专家池,用 block-pooled 路由器按 query 选出 $h$ 个活跃头,重计算只压到这些头上。此 axis 与 HISA 的 token-axis 层级化完全正交,可叠加组合。

核心方法

MISA 把 DSA 索引器的 $H_I$ 个打分头重新组织为 MoE 专家池:用一个极轻量的 router 算每个 query 对每个头的"全局重要度"并挑出 top-$h$ 个头,再用这些头对全部前缀 token 做细粒度打分,最后 top-k 选 token 喂给下游 Sparse MLA。router 用块池化后的 $M$ 个 pooled key 工作,$M\ll L$,开销可忽略;活跃头数 $h$ 默认 8,相对 DSA 在 V3.2 上减少 8×、GLM-5 上减少 4×。变体 MISA$^\dagger$ 走粗到细两阶段:第一阶段用 MoE 路径圈出 $k'=8192$ 个候选 token,第二阶段用原 DSA 全 $H_I$ 头索引器在候选集合上重排到 $k=2048$,几乎完全恢复 DSA 的 top-k。

MISA 的关键创新在于把"head 维度的稀疏性"显式建模为路由问题,并通过 block-pooled 近似让 router 自身只算 $O(H_I M)$。与已有工作的本质区别:(1) 与 HISA 互补——HISA 在 token 轴做块到 token 层级化并保持全部头激活;MISA 沿 head 轴挑头打分但保持 token 粒度,二者可在同一流水线串联。(2) 与 MoH 等 attention-side MoE 区分——MoH 路由的是写回残差流的值头,路由变化直接影响最终输出;MISA 路由的是"挑选 token 的相似度头",路由变化只影响 top-k 选择,不影响下游 dense attention,这种解耦让 $h$ 可以取很小而不损质量。(3) 与普通 MoE 的 FFN 路由区分——这里是 head-as-expert、score-as-output 的新组合,不引入新参数,直接复用 DSA 已有的 $q_{t,j}$ 和 $w_{t,j}$。

方法步骤详情

1. 块池化:前缀按 $B=1024$ 切 $M=\lceil L/B\rceil$ 块,池化得 pooled key。2. 路由打分:复用 DSA 的 $H_I$ 个 query 头与权重,算 $A_{t,j,b}=w_{t,j}\cdot\text{ReLU}(q_{t,j}\cdot\tilde k_{j,b})$ 与 $E_{t,j}=\frac{1}{M}\sum_b|A_{t,j,b}|$ 估每头重要度。3. 选头:TopK 取 $h=8$。4. 稀疏打分:仅 $H_t$ 内头按 $\hat I_{t,s}=\sum_{j\in H_t} w_{t,j}\cdot\text{ReLU}(q_{t,j}\cdot k_{j,s})$ 算相关性。5. 选 token:TopK 取 $k=2048$。6. 喂入原 Sparse MLA。MISA$^\dagger$ 把 4-5 跑两遍,第二遍用全 $H_I$ 头在 $k'$ 候选上重排。

技术新颖性

技术新颖性体现在三方面:(1) 第一次把"head 路由"作为与 token 层级化正交的效率轴系统化提出,给出量化成本公式 $O(H_I L)\to O(hL+H_I M)$,把 $H_I$ 头瓶颈变成 $h$ 头瓶颈 + 廉价 router。(2) 提出 block-pooled router,把路由成本压到 $O(H_I M)$,不引入新参数或重训,仅复用 DSA 已有的 $q_{t,j}$ 和 $w_{t,j}$,这是把 MoE 思想嫁接到索引器头上的关键工程技巧。(3) 设计了 MISA$^\dagger$ 粗到细组合,证明 head-路由与全 DSA 重排可叠加,实验上把 top-k 重合度(IoU)拉到 >92%,更逼近 dense DSA 选中集合。

Comparison of the DSA and MISA indexers
Figure 1: Comparison of the DSA and MISA indexers

实验结果

在两个原生支持 DSA 的开源模型(V3.2, $H_I=64$;GLM-5, $H_I=32$)实验,全部方法推理时插入、不重训。LongBench(表1)V3.2 平均 50.85 vs DSA 51.05(差 0.20),MISA$^\dagger$ 缩到 0.10 且单文档 QA 反超 0.02;GLM-5 上 MISA 46.43、MISA$^\dagger$ 46.51 反超 DSA 46.01 与 HISA 46.32。NIAH(图2,128K)MISA/MISA$^\dagger$ 再现 DSA 全绿热力图,Block-Sparse 在 >32K 出现 0.0 空洞。速度(图3)单 H200 TileLang kernel 上 1-stage MISA 加速从 8K 的 2.03× 到 128K 的 3.82×,2-stage MISA$^\dagger$ 128K 达 1.76×。消融(图4)$h=1,2$ 在 128K 出现空洞,$h=8$ 起与 dense 64-head 一致;LSHT 上 MISA 保留 >92% 的 DSA 选中 token。

LongBench results for DeepSeek-V3.2 and GLM-5 under different indexing strategies
Table 1: LongBench results for DeepSeek-V3.2 and GLM-5 under different indexing strategies
Needle-in-a-Haystack retrieval accuracy on DeepSeek-V3.2 up to 128K context
Figure 2: Needle-in-a-Haystack retrieval accuracy on DeepSeek-V3.2 up to 128K context
Indexer-kernel latency on a single NVIDIA H200 GPU for DSA and MISA, as a function of prefix length
Figure 3: Indexer-kernel latency on a single NVIDIA H200 GPU for DSA and MISA, as a function of prefix length
Ablation on the number of active heads h used by the MISA router on DeepSeek-V3.2 (HI = 64, B = 1024, k = 2048)
Figure 4: Ablation on the number of active heads h used by the MISA router on DeepSeek-V3.2 (HI = 64, B = 1024, k = 2048)
查看结构化数据
任务指标本文基线提升
LongBench 平均分(DeepSeek-V3.2) 6 类子任务平均分(越高越好) MISA 50.85 / MISA$^\dagger$ 50.95(活跃头 8/64) DSA 51.05(64/64);HISA 50.78;Block-Sparse 49.54 相对 DSA 差距仅 0.10-0.20 平均分;头数减少 8× 但分数几乎等同;MISA$^\dagger$ 还反超 HISA +0.17
LongBench 平均分(GLM-5) 6 类子任务平均分(越高越好) MISA 46.43 / MISA$^\dagger$ 46.51(活跃头 8/32) DSA 46.01(32/32);HISA 46.32;Block-Sparse 42.67 MISA$^\dagger$ 相对 DSA +0.50,相对 HISA +0.19,相对 Block-Sparse +3.84;头数 4× 减少且质量反超
Needle-in-a-Haystack(128K 全深度) 检索准确率(0-1,越高越好) MISA 与 MISA$^\dagger$ 几乎全 1.00 的绿热力图 DSA 全 1.00;HISA 偶发最深位置退化;Block-Sparse 在 >32K 出现多个 0.0 空洞 MISA 头数 8× 减少但与 dense DSA 视觉一致;相对 Block-Sparse 大幅消除深度方向的精度损失
Indexer kernel wall-clock 加速 单 H200 GPU TileLang kernel 延迟比 1-stage MISA 加速 2.03×(8K) → 3.27×(32K) → 3.82×(128K) DSA TileLang kernel 基线 long context 约 3.82× 端到端 kernel 加速;2-stage MISA$^\dagger$ 在 128K 达 1.76×
与 DSA top-k 的 token 重合度(LSHT) 每层 IoU 相对 DSA 全 $H_I$ 头 ground-truth MISA 恢复 >92% 的 DSA 选中 token DSA 自身 100% head 减少 8× 的前提下保持 >92% top-k 重合,MISA$^\dagger$ 进一步逼近 dense

局限与改进

作者在 Limitation 明确三点:(1) 速度实验只测 TileLang indexer kernel 自身,没有端到端 prefill/decode 延迟,3.82× 是 kernel 层面而非真实服务时的端到端加速;(2) MISA 减少 head-token 计算但未减少 KV cache 内存访问量,长上下文内存带宽仍是隐性瓶颈;(3) 全部结果是把 MISA 插入预训练 DSA 模型不做 finetuning 得到的,联合训练 router + indexer 仍有空间去弥合那些 MISA 略低于 DSA 的细分类目。我自己的观察:(a) 评测仅覆盖 V3.2 和 GLM-5,未在 Llama、Qwen 等更广架构验证 indexer-head routing 可迁移性;(b) $B=1024$ 远大于 HISA 的 $B=128$,router 假设"相关头集合在 prefix 上缓慢变化",此前提在 >1M token 或分布剧变任务上是否成立文中没给压力测试;(c) NIAH/LongBench 都属检索理解型基准,对开放式生成、长程推理类硬任务影响尚未评估。

独立分析的弱点

独立看,MISA 仍有几个可被未来工作改进的弱点。第一,router 用 block 池化做 head-importance 估计本质是粗近似;当 prefix 中存在多个语义跨度不同的相关片段(多文档 QA)时,块级 $E_{t,j}$ 可能给某些只在特定深度相关的头偏低打分,导致召回损失——LongBench 多文档 QA 类别 MISA 与 DSA 仍有 0.04-0.42 差距,改进方向是分层 router 或对块统计做窗口平滑。第二,$B=1024$ 是经验调出,$B$ 过大会让 router 退化为"全局均值",过小又重新引入 $O(H_I L)$ 成本——理想是让 $B$ 自适应到当前 head 集合的稳定性指标。第三,1-stage MISA 依赖 $h=8$ 的"魔法值",$h$ 太小掉精度、$h$ 太大无收益,改进方向是动态 $h$ 如 router 输出每头概率做加权而非硬 top-k。第四,文章没有量化 router 在 tensor parallelism / 多卡场景下的通信开销,可能引入额外同步点。

未来方向

作者明确列出的开放问题:(i) 测端到端 prefill/decode 延迟而非单 kernel 延迟;(ii) 通过设计进一步降低 KV cache 内存访问(如 router 选头时联动 KV 预取/分片);(iii) 把 router 与 indexer 联合 finetune,关闭 MISA 仍略低于 DSA 的几类目差距。基于 MISA 的设计,未来可延伸的方向:(a) 把 head 路由与 HISA、IndexCache 串联使用,token 轴和 head 轴同时压缩,理论成本可压到 $O(hL/\alpha + H_I M)$ 其中 $\alpha$ 为 token 轴压缩比;(b) 把 router 思想搬到 CSA 等 4× 压缩 KV 场景,探索 head 路由在 compressed-token 上的等效性;(c) 用 learned router 替代当前 TopK 硬路由,引入可微松弛让训练和推理一致;(d) 在更大模型(>100B)和更长上下文(512K-1M)上做真实端到端服务时延评测,看 3.82× kernel 加速能否转化为对应请求吞吐提升。

复现评估

可复现性方面表现良好:作者在论文首页给出 GitHub 链接 https://github.com/MuLabPKU/TransArch,并明确"without any additional training",所有方法直接插入预训练 DeepSeek-V3.2 和 GLM-5 的 DSA 索引器。代码若包含完整 TileLang kernel 实现,则可重复 kernel-level 速度曲线和 NIAH/LongBench 分数;硬件门槛是 8× NVIDIA H200 GPU,LongBench、NIAH、IoU 实验均在此规模上跑——这一硬件对一般研究组门槛较高,但比端到端 LLM 训练低很多。数据/评测方面,LongBench 是公开基准、NIAH 是标准 needle-in-haystack 脚本、LSHT 也有公开实现,整体可复现难度中等偏低。唯一稍微难复现的是 NIAH 5×11 网格的 needle 文本与位置生成脚本(不同实现会得到略不同的数字),以及 TileLang kernel 的 tiling 参数细节。