Skip to content

6.7 注意力技术对比总表

前面六节分别拆解了 KV Cache、GQA、MLA、滑动窗口注意力、MoE 和 Gated DeltaNet 的原理与实现。单独看每项技术各有亮点,但工程实践中的真正难题是选型——面对具体的模型规模、部署场景和硬件预算,应该组合哪些技术?本节先给出总表,再从计算复杂度、KV 缓存和建模能力三个维度展开分析,最后给出场景选型建议。

注意力技术总览对比图

图 6-24:各种注意力优化技术的整体对比。从 MHA 到 GQA、MLA、SWA 和线性注意力,每种技术在内存效率和建模能力上各有权衡。

6.7.1 总表

技术计算复杂度KV 缓存(相对 MHA)代表模型核心取舍
MHAO(n2d)基线GPT-2/3表达力最强,缓存与计算开销最高
GQAO(n2d)减少约 75%Llama 2/3、Qwen2.5/3几乎不损精度,当前最主流方案
MLAO(n2d)减少 75%+DeepSeek-V2/V3/R1极致压缩缓存,但实现复杂度高
SWAO(nWd)固定(不随 n 增长)Gemma 3、OLMo 2缓存恒定,但无法直接访问窗口外信息
MoEO(n)top_k不影响(作用于 FFN)DeepSeek-V3、Qwen3-MoE扩展容量而非优化注意力,与上述技术正交
DeltaNetO(nd2)常数(d×d 状态矩阵)Qwen3-Next、Kimi Linear消除二次方开销,但精确检索能力弱于 Softmax

符号:n 序列长度,d 模型维度,dh 头维度,nh 注意力头数,L 层数,W 窗口宽度。

6.7.2 计算复杂度分析

二次方阵营 vs. 线性阵营。 MHA、GQA、MLA 同属 O(n2) 阵营——它们都需要计算完整的注意力矩阵。GQA 和 MLA 减少的是 KV 投影和缓存读写的常数因子,注意力矩阵本身的 n2 开销不变。因此在 Prefill 阶段一次性处理长 prompt 时,这三者的延迟差异主要来自 KV 投影计算量,注意力矩阵的二次方开销仍然占主导地位。

SWA 将注意力限定在宽度 W 的窗口内,复杂度降至 O(nW)。当 W 远小于 n 时加速效果显著,但 W 的选择涉及效率与信息覆盖的权衡——窗口过小会丢失跨段落的长距离依赖,窗口过大则退化为标准注意力。Gemma 3 的做法是 W=4096 的 SWA 层与全局注意力层交替堆叠,每隔若干层插入一个全局层,使信息通过层间"接力"传播到任意远的位置。

Gated DeltaNet 对 n 完全线性,在 128K+ 超长上下文下优势显著。但其隐含代价是 d2 的常数因子——状态矩阵的更新和读取均涉及 d×d 矩阵运算。当序列较短(n<d)时,DeltaNet 的实际速度未必优于标准注意力。

MoE 不改变注意力复杂度,而是将 FFN 层(通常占总计算量 60-70%)的激活参数降至 k/nexperts。例如 DeepSeek-V3 的 top-8/256 配置仅激活 3.1% 的路由专家参数。MoE 与所有注意力优化技术正交,可自由组合。

6.7.3 KV 缓存分析

缓存是长序列推理的核心瓶颈。 以 70B MHA 模型(80 层、64 头、头维度 128、BF16)处理 32K 序列为例,KV 缓存约为:

32,000×80×2×64×128×2 bytes63 GB

这已超过单张 A100-80G 的全部显存。压缩 KV 缓存不是锦上添花,而是让长序列推理成为可能的前提。

GQA 将 KV 头数降至 nh/G。以 G=8 为例,上述 63 GB 降为约 7.9 GB,单卡即可承载。实现仅需改变 KV 投影的头数,几乎所有推理框架都有深度优化,是目前最广泛采用的方案。

MLA 将所有头的 KV 联合投影到低维向量 ctRdc,缓存维度从 2nhdh 降至 dc+dr。DeepSeek-V2 设置 dc=512dr=64,压缩比高达 57×,远超 GQA 的 8×。代价是推理时需要额外的上投影计算,且 RoPE 适配的工程复杂度显著高于 GQA。

SWA 的缓存恒定为 WL2nkvdh,不随序列增长。无论输入是 4K 还是 1M,缓存量固定不变,特别适合超长上下文流式推理。

Gated DeltaNet 仅维护每头 dh×dh 状态矩阵,同样的 70B 配置下总状态量仅约 163 MB——比上述任何方案都小几个数量级。但固定大小的状态矩阵无法无损承载任意长的历史信息,早期内容不可避免地被覆盖。这正是 Qwen3-Next 和 Kimi Linear 保留少量 Softmax 层作为"信息锚点"的原因。

MoE 与缓存的间接关系。 MoE 不直接影响 KV 缓存,但 MoE 模型通常参数总量大、层数多,若注意力层用 MHA 则缓存极为可观。因此 MoE 几乎总与 GQA 或 MLA 搭配——DeepSeek-V3 选择 MLA + MoE,Qwen3-MoE 选择 GQA + MoE。

6.7.4 建模能力权衡

GQA 的精度损失。 多个 Query 头共享 KV 等价于施加对称性约束,限制了不同头学习差异化注意力模式的自由度。在 7B 模型上损失几乎不可观测——大模型存在大量头冗余。但在 1B 小模型上精度损失可测量,此时建议用较小的分组数 G

MLA 的低秩正则化效应。 压缩维度 dc 足够大时信息不丢失。DeepSeek 的消融实验表明,低秩约束甚至可能起到正则化作用,使性能与 MHA 持平或略优。

MHA、GQA、MLA 注意力头结构对比

图 6-25:MHA、GQA 和 MLA 的注意力头结构对比。MHA 每个头独立拥有 KV,GQA 多头共享 KV 组,MLA 通过低维潜向量压缩所有头的 KV。

SWA 的信息可达性限制。 窗口外 token 完全不可见。虽然经过 l 层后理论感受野为 l×W,但间接传递会引入信息衰减。纯 SWA 在跨段落问答等任务上弱于全局注意力,实践中总是与全局层混合部署。

Softmax → DeltaNet 的根本变化。 Softmax 通过尖峰特性实现任意精细的选择性关注,而线性注意力以"叠加"方式存储历史——类似全息图,所有信息叠加在同一张底片上,检索时引入干扰。在 needle-in-a-haystack 等精确检索任务上差距明显,这是当前所有生产模型都采用混合架构而非纯线性的根本原因。

6.7.5 场景选型建议

场景一:通用预训练(7B-70B)。 推荐 GQA + MoE。GQA 成熟度最高,vLLM、TensorRT-LLM、SGLang 均有深度优化;MoE 在不增加单 token 计算量的前提下扩展容量。这一组合已被 Llama 3、Qwen2.5-MoE、Mixtral 等模型验证。追求极致缓存压缩且有 kernel 开发能力的团队可选 MLA + MoE(DeepSeek-V3 路线)。

场景二:超长上下文(128K+)。 推荐 SWA/全局混合 + GQA。SWA 层大幅降低平均开销,全局层每 5-6 层插入一个作为信息锚点(Gemma 3 方案)。进一步延伸到 1M+ 上下文且可容忍一定检索精度损失时,可考虑混合线性注意力架构(少量 Softmax 层 + 大量 DeltaNet 层)。

场景三:边缘部署(手机/端侧)。 推荐 GQA(大 G)+ SWA(小 W。显存 4-8 GB 的硬约束下,缓存必须压到几百 MB 以内。MoE 总参数量大不利于存储受限场景,MLA 的额外矩阵运算在端侧芯片上可能成为瓶颈。对边缘场景,"简单且深度优化"胜过"理论最优但实现复杂"。

场景四:流式对话。 重点关注 Decode 阶段延迟。Decode 是内存带宽瓶颈,KV 缓存越小每步读取数据越少。GQA/MLA 压缩缓存大小,SWA 限制每步读取条目数,DeltaNet 每步仅读写 d×d 状态矩阵——三者对 TPOT(Time Per Output Token)均有直接帮助。

6.7.6 组合案例

上述技术并非互斥,实际模型通常组合使用。下表列出代表性案例:

模型注意力FFN组合策略
Llama 3 70BGQA(G=8稠密 SwiGLU最简方案,仅用 GQA 压缩缓存
DeepSeek-V3MLAMoE(256 专家,top-8)极致压缩 + 极致容量
Gemma 3 27BSWA + 全局交替稠密长序列优化,全局层作信息锚点
Qwen3-NextGQA + DeltaNet 混合稠密线性层为主,Softmax 层保底

没有任何一种技术是"银弹"。真实的选型是在精度、效率、工程复杂度和硬件适配之间寻找平衡点,这些技术提供了一个丰富的工具箱,允许工程师根据约束条件自由组合。

6.7.7 总结

  1. GQA 是当前默认选择。 实现简单、生态成熟、精度损失可忽略,除非有明确理由否则优先考虑。

  2. MLA 缓存压缩更极致,但工程门槛高。 适合有 kernel 开发资源的大团队,门槛随开源实现成熟正在降低。

  3. SWA 是长序列的重要补充,不宜单独使用。 与全局注意力层混合部署是标准做法,全局层间隔频率是关键超参数。

  4. MoE 与注意力优化正交。 解决容量问题而非注意力效率问题,可与任何方案自由搭配。

  5. 线性注意力代表未来方向,但尚未成为主流。 精确检索短板使纯线性架构不可行,混合架构是过渡方案。

  6. 选型核心框架:先确定硬约束(显存、延迟、序列长度),再在满足约束的方案中选工程复杂度最低的。 一个深度优化过的 GQA 实现,往往比未充分优化的 MLA 实现在实际部署中表现更好。