跳到主要内容

稀疏注意力总览

本章按方法类型拆分子页,便于逐篇深读。Flash Attention(IO 与融合内核,不改变 O(L2)O(L^2) 渐近阶)见 Flash Attention 与 IO 优化。完整推理部署栈见 llms/05-inference-deployment/

子章节索引

分类方法文档
分布式切分Ring / 序列并行Ring Attention 与序列并行
经典 token 稀疏滑动窗口 SWA滑动窗口注意力
经典 token 稀疏Local + Global局部-全局稀疏注意力
可学习稀疏Native Sparse AttentionNSA
工业路线DeepSeek MLA → DSA → CSA/HCADeepSeek 稀疏路线
核近似线性 / Lightning Attention线性注意力
KV 压缩(非 token 稀疏)MQA / GQA / MLAKV 压缩与稀疏边界 → 公式见 注意力变体
IO 优化Flash Attention专章

稀疏注意力分类学

长上下文下的「高效注意力」并非单一技术,可按优化对象分为五类(可叠加):

类型是否减少 softmax 参与的键值对是否减小 KV Cache 体积典型手段
Token 连接稀疏有时间接减少计算SWA、BigBird、NSA、DSA
KV 压缩否(仍对全长打分)MQA、GQA、MLA
核近似 / 递推隐式(无显式 L×LL\times L 矩阵)可递推状态Linear Transformer、Performers
分布式切分否(语义仍全连接)单卡分摊Ring Attention、Sequence Parallel
IO 优化否(常数因子↓)Flash Attention
读文献时的「稀疏」歧义

论文里的 sparse attention 有时指 掩码稀疏(少算 token 对),有时泛指 一切降低 attention 成本的手段(含 GQA、Flash)。本模块在表格与专章中尽量区分 (A) token 稀疏(B) KV 压缩

标准 MHA 基线

多头自注意力(MHA)对序列长度 LL、头数 HH、头维 dd

Attention(Q,K,V)=softmax(QKd)V\text{Attention}(Q,K,V)=\text{softmax}\left(\frac{QK^\top}{\sqrt{d}}\right)V

复杂度(单层、单 batch 条)

  • FLOPs:构造注意力分数约 O(HL2d)O(H \cdot L^2 \cdot d);与 VV 相乘同阶。
  • KV Cache(推理):需缓存历史 K,VK,V,体积约 O(HLd)O(H \cdot L \cdot d)(常乘以层数与 batch)。

因此 LL 从 8K → 128K 时,注意力 FLOPs 约 ×256KV 体积约 ×16——这是后续一切稀疏/压缩/并行方案的参照系。缩放点积与多头拆分见 2.1.2 缩放点积注意力2.1.3 多头注意力

为什么稀疏注意力重要

  1. 推理 economics:每个 decode step 读取全部历史 KV;Agent 多轮工具调用使有效 LL 持续增长。
  2. 训练可行性:全长稠密 attention 限制 activation 与 batch;稀疏掩码与 Ring 等使更长样本进入训练分布。
  3. Agent 场景:上下文中大量日志/工具返回对当前 step 未必相关;内容相关稀疏(DSA、NSA 选择分支)比固定滑窗更贴近「从百万 token 中捞关键段」。
  4. 与 Flash 的关系Flash Attention 降低 HBM↔SRAM 搬运,不改变 L2L^2 渐近阶;常与 token 稀疏、KV 压缩叠加

主流方法对比表

下表为全章索引;各方法细节见对应子页。

方法优化类型复杂度(量级)掩码/连接内容相关详见
标准 MHA基线O(L2)O(L^2)全连接上文基线
Flash AttentionIO / 融合O(L2)O(L^2) 常数↓全连接专章
MQA / GQA / MLAKV 压缩O(L2)O(L^2),KV↓全连接08-kv-compression
滑动窗口 SWAtoken 稀疏O(Lw)O(Lw)固定局部06
Local + Global混合稀疏O(Lw+Lg)O(Lw+Lg)局部+全局 token半固定07
线性 / Lightning核近似O(L)O(L) 推理隐式全局部分05
NSA可学习多分支<O(L2)<O(L^2)压缩+选择+滑窗可学习03
DSAtoken 稀疏+MLAO(Lk)O(Lk)Indexer top-kk04
CSA + HCA分层压缩+稀疏O(L2)\ll O(L^2)@超长层间交替04
Ring / Seq. Parallel分布式单卡语义 O(L2)O(L^2)全连接分片02
iRoPE + NoPE长程结构介于稠密与稀疏层类型交替结构固定下文短节

读表速查

  • 推理省钱:KV 压缩 + token 稀疏 + Flash 内核。
  • 训练更长序列:Ring/序列并行 + 可训练稀疏(NSA/DSA)或滑窗。
  • Agent 百万上下文:内容相关稀疏(DSA、CSA)+ 分层压缩(HCA)。

iRoPE + NoPE(Llama 4 Scout 等)

部分超长上下文模型通过层间交替改变位置编码与注意力形态,而非直接做 token 掩码稀疏:

  • iRoPE:在部分层使用扩展/插值后的 RoPE,服务极长位置索引。
  • NoPE:在部分层去掉显式位置编码,依赖局部全注意力与层叠获得长程结构。

这与 SWA/DSA 的「少算 token 对」不同:主要改变位置信号如何注入,计算量未必按 L2L^2 下降。细节见 位置编码改进:RoPE、ALiBi、NoPE

个人理解(待更多公开细节验证)

iRoPE + NoPE 更像 长上下文归纳偏置工程,与 DeepSeek 的 DSA/CSA token 稀疏 可并存于不同产品线,不宜混称为同一类「稀疏注意力」。

方法选型(按场景)

场景推荐组合原因
通用 Chat 8K–32KGQA + Flash生态成熟
开源长文 128KMLA/GQA + 数据先压 KV
Agent / 代码仓 128K–1MDSA 或 CSA+HCA + MoE内容相关 + 分层
多卡训练极限长序列Ring + 滑窗/NSA先装得下再算得少
端侧小模型GQA + 小窗口 SWA算力极紧
算法研究 / 可训练稀疏NSA、BigBird 类端到端学习稀疏模式

延伸阅读