现代 LLM 的 Attention 变体全景:从 MHA 到混合架构
为什么 Attention 变体突然变多了
2017 年 Transformer 论文定义了 Multi-Head Attention (MHA),此后五年基本没人动它。变化从 2023 年开始——模型规模到了 70B+、上下文长度从 4K 涨到 128K 甚至 1M,KV cache 的内存开销成了推理的真正瓶颈。
以 Llama 3 70B 为例,128K 上下文的 KV cache 需要约 32GB 显存——光缓存就快赶上模型权重了。Attention 变体的核心驱动力就是:在尽量不损失建模质量的前提下,降低推理时 KV cache 的开销。
本文梳理了当前主流开源模型中实际使用的 7 种 Attention 变体,每种都回答三个问题:它改了什么、为什么有效、谁在用。
本文主要参考 Sebastian Raschka 的 A Visual Guide to Attention Variants in Modern LLMs 及其 LLM Architecture Gallery,结合各模型论文的消融实验进行分析。
1. Multi-Head Attention (MHA) — 经典标准
核心机制:每个 query head 有独立的 key 和 value 投影。
输入 X → 8 组 (Wq, Wk, Wv) → 8 个独立的 attention head → 拼接 → Wo 输出
每个 head 可以学到不同的 token 关系模式:一个关注局部依赖,一个关注语义关联,一个关注句法结构。8 个 head 并行运行,各算各的 attention 矩阵,最后拼接。
问题在哪:推理时每个 token 的 KV 状态都要缓存。如果模型有 8 个 KV head、每个 head 维度 128,那每个 token 的 KV cache 就是 8 × 128 × 2 × 2 bytes (bf16) = 4KB。看起来不多,但乘以 128K tokens 就是 512MB——每层。一个 32 层的模型就是 16GB,光 KV cache 就比小模型的权重还大。
使用者:GPT-2、OLMo 2、OLMo 3
MHA 在建模质量上是最优的(每个 head 有独立完整的 KV 表征),但在推理效率上代价最高。后续所有变体都是在 “建模质量 vs 推理效率” 这个轴上做取舍。
2. Grouped-Query Attention (GQA) — 新标准
核心改动:多个 query head 共享同一组 key-value 投影。
MHA: 8 query heads → 8 组 KV(每组独立)
GQA: 8 query heads → 2 组 KV(4 个 query 共享 1 组 KV)
MQA: 8 query heads → 1 组 KV(全部共享)
GQA 是 MHA 和 MQA (Multi-Query Attention) 之间的折中。Llama 2 用 MHA,Llama 3 切到了 GQA(8 个 KV head 对 32 个 query head,4:1 共享)。
为什么有效:KV cache 直接缩减到 MHA 的 GKV/GQ。Llama 3 8B 的 KV cache 是 MHA 的 1/4,上下文越长收益越大。而建模质量的损失很小——消融实验表明,适度的 KV head 共享对 perplexity 影响在 1-2% 以内。
关键洞察(来自 Raschka):
GQA is a spectrum. The sweet spot is usually somewhere in between multi-query attention (1 shared group) and MHA (where K/V groups equal the number of queries).
使用者:Llama 3、Qwen3、Gemma 3、Mistral Small 3.1、SmolLM3 — 几乎所有 2024-2025 年的主流 Dense 模型。Llama 4 Maverick、Qwen3 235B-A22B 等 MoE 模型也用 GQA。
GQA 已经成为 MHA 的实际替代品。实现简单、调参少、效果好。Raschka 提到 MiniMax M2.5 和 Nanbeige 4.1 等新模型仍然只用 GQA,不加其他花哨优化——简单可靠。
3. Multi-head Latent Attention (MLA) — 压缩缓存
核心改动:不减少 KV head 数量,而是缓存一个压缩后的潜在表示,需要时再解压。
GQA: 减少 KV head 数量(从 8 组减到 2 组)
MLA: 保持 head 数量,但缓存压缩后的 latent(维度远小于完整 KV)
推理时: latent → 上投影 → 恢复 KV → 正常 attention
MLA 的思路来自 DeepSeek-V2。本质上是把 cache 压缩嵌入到 attention 机制内部——用一个低秩投影矩阵把 KV 压缩到 latent space,缓存只存 latent。
为什么比 GQA 好:DeepSeek-V2 的消融实验显示,在相同 KV cache 大小下,MLA 的建模质量优于 GQA,甚至略优于 MHA。这是 MLA 的杀手锏——它不只是”也省内存”,而是在省内存的同时保持甚至提升质量。
但 MLA 的实现复杂度显著高于 GQA:
- 需要额外的上/下投影矩阵
- 解压步骤增加了计算开销
- 推理框架需要专门支持
Raschka 的观察:
Colleagues told me that MLA only works well at a certain size. For smaller models, let’s say <100B, GQA seems to work better, or, is at least easier to tune and get right.
一个有趣的对比案例是 Sarvam:同一个团队发布了 30B(用 GQA)和 105B(用 MLA)两个模型。这不是理论对比,而是实践者自己做了两边之后,按模型规模选了不同方案。
使用者:DeepSeek V3、Kimi K2、GLM-5、Ling 2.5、Mistral Large 3、Sarvam 105B
4. Sliding Window Attention (SWA) — 局部注意力
核心改动:限制每个 token 只能 attend 到固定窗口内的前文,而非全部历史。
标准 Attention: token t → attend to [0, t] 全部前文
SWA: token t → attend to [t-W, t] 最近 W 个 token
窗口大小 W 是关键参数。Gemma 2 用 4096,Gemma 3 缩到 1024 但配合更激进的局部/全局层比例(5:1)。
不是完全替代:说一个模型”用 SWA”并不意味着所有层都是局部的。关键配置是 local-to-global 层比例:
| 模型 | 局部:全局 | 窗口大小 |
|---|---|---|
| Gemma 3 | 5:1 | 1024 |
| OLMo 3 32B | 3:1 | - |
| Xiaomi MiMo-V2 | 5:1 | 128 |
Xiaomi 用 128 的窗口大小非常激进——每个 token 只看前 128 个。但配合 5:1 比例(每 6 层有 1 层是全局 attention),信息仍然能通过全局层传播到整个序列。
Gemma 3 的关键发现:更激进的 SWA 配置(5:1 + 1024 窗口)只带来轻微的建模质量下降。这意味着大部分 attention 计算确实花在了不太重要的远距离 token 上。
与 GQA 的互补关系:SWA 减少每层需要考虑的上下文量,GQA 减少 token 对 cache 的贡献。两者解决推理瓶颈的不同侧面,经常一起出现。
使用者:Gemma 3、OLMo 3、Xiaomi MiMo-V2、Arcee Trinity、Step 3.5 Flash
5. DeepSeek Sparse Attention — 学习型稀疏模式
核心改动:不硬编码局部窗口,而是让模型自己学哪些前文 token 值得关注。
SWA: 固定窗口 [t-W, t] → 硬编码局部性
DSA: 学习相关性分数 → top-k 选择 → 只 attend 被选中的 token
两阶段工作流程:
- Lightning Indexer:利用 MLA 的压缩表征,对每个 query token 计算与前文所有 token 的相关性分数
- Token Selector:只保留 top-k 高分位置,形成稀疏 attention mask
与 SWA 的本质区别:SWA 假设”近的 token 更重要”,DSA 让模型自己决定——可能跳过 1000 个不相关的 token,关注 5000 个 token 前的某个关键信息。
DeepSeek V3.2 把 MLA 和 DSA 配合使用:MLA 压缩缓存表征,DSA 优化 attention 模式。一个优化缓存表示,一个优化注意力选择,解决推理瓶颈的两个维度。
现状:DSA 相对较新且实现复杂,采用还不广泛。GLM-5 是第二个使用的模型。
使用者:DeepSeek V3.2、GLM-5
6. Gated Attention — 稳定化的全注意力
核心改动:在标准 scaled dot-product attention 基础上加入门控和归一化,提高混合架构中全注意力层的稳定性。
不是全新的 attention 机制,而是在保留的全注意力层上做了三个调整:
- 输出门控:attention 结果在加回残差前先过一个 gate,控制信息流
- 零中心 QK-Norm:替代标准 RMSNorm,防止 attention score 偏移
- Partial RoPE:只对部分维度应用旋转位置编码
为什么需要:在混合架构(如 Qwen3-Next 的 3:1 DeltaNet/Attention 混合)中,偶尔出现的全注意力层容易不稳定。Gated Attention 让这些层更可控。
使用者:Qwen3-Next、Qwen3.5、Arcee Trinity
7. 混合架构 (Hybrid Attention) — 未来方向
核心模式:大部分层用廉价的线性/状态空间模块,少数层保留全注意力做精确检索。
传统 Transformer: [Attn] [Attn] [Attn] [Attn] [Attn] [Attn] ← 全是 attention
混合架构: [Delta] [Delta] [Delta] [Attn] [Delta] [Delta] [Delta] [Attn]
↑ 廉价的序列建模 ↑ 少量精确检索层
为什么:Full attention 对序列长度是 O(T²) 的。128K 上下文时,大部分层的 attention 矩阵大到不实用。但完全去掉 attention 又会损害精确检索能力。混合架构是折中——大部分工作由廉价模块完成,偶尔用 attention 做精确回忆。
当前实例
| 模型 | 廉价模块 | 重型模块 | 比例 |
|---|---|---|---|
| Qwen3-Next / Qwen3.5 | Gated DeltaNet | Gated Attention | 3:1 |
| Kimi Linear | Kimi Delta Attention | Gated MLA | 3:1 |
| Ling 2.5 | Lightning Attention | MLA | 混合 |
| Nemotron 3 | Mamba-2 | 稀疏 MoE + 少量 Attention | 激进混合 |
Gated DeltaNet 的工作方式:不是 token-to-token 的 attention 矩阵,而是维护一个小的 fast-weight memory,用 delta rule 更新。两个 gate(α, β)控制新信息写入和旧状态保留。本质上是一个线性时间的循环模块。
关键趋势:Qwen3.5 把 Qwen3-Next 的混合架构推进了主线产品线——这信号很强,说明团队认为混合策略已经成熟。
Raschka 的个人判断:
Hybrid architectures are still a novelty, and the main selling point is mainly (long-context) efficiency versus just modeling performance. Hence, I think they are a great candidate for agent contexts (like OpenClaw).
Personally, I think the problem with hybrid architectures is also that the inference stacks are not quite as optimized, yet, and I find that I get better tok/sec throughput when running LLMs locally using more classic setups with grouped-query attention.
全景对比
| 变体 | 优化目标 | 实现复杂度 | 适用规模 | 代表模型 |
|---|---|---|---|---|
| MHA | 建模质量最优 | 最低 | 小模型 | GPT-2, OLMo 2/3 |
| GQA | 减少 KV head 数量 | 低 | 通用 | Llama 3, Qwen3, Gemma 3 |
| MLA | 压缩 KV 缓存 | 高 | 100B+ | DeepSeek V3, Kimi K2, GLM-5 |
| SWA | 限制 attention 范围 | 低 | 通用 | Gemma 3, OLMo 3 |
| DSA | 学习稀疏 attention | 很高 | 大模型 | DeepSeek V3.2, GLM-5 |
| Gated Attn | 稳定化全注意力 | 中 | 混合架构 | Qwen3.5, Trinity |
| Hybrid | 长上下文效率 | 最高 | 前沿 | Qwen3.5, Kimi Linear, Ling 2.5 |
选模型时 Attention 架构意味着什么
上面这些变体是模型训练时的设计选择。对于做私有部署的人来说,你不需要在它们之间做取舍——你只需要理解,选定的开源模型用了什么 attention,对你的部署有什么实际影响。
影响主要在两个维度:
1. 显存:上下文越长,KV cache 差异越大
同样 70B 级别的模型,128K 上下文的 KV cache 开销可以差几倍:
| 模型 | Attention 类型 | KV cache 大小(128K ctx, bf16) | 说明 |
|---|---|---|---|
| OLMo 3 7B | MHA | 较大 | 每个 head 独立 KV |
| Llama 3 8B | GQA (4:1) | ~1/4 MHA | 最主流,vLLM/SGLang 支持最好 |
| Qwen3 4B | GQA | ~1/4 MHA | 同上 |
| DeepSeek V3 671B | MLA | 远小于同规模 MHA | 但模型本身太大,不适合单机 |
| Gemma 3 27B | GQA + SWA | 更小(SWA 层只缓存窗口内) | 长上下文优势明显 |
实际意义:如果你的任务需要 32K+ 上下文(RAG、长文档分析),模型的 attention 类型直接影响你需要多少张卡。GQA 模型在同等上下文下显存压力小得多。
2. 推理框架兼容性
| Attention 类型 | vLLM | SGLang | llama.cpp | Ollama |
|---|---|---|---|---|
| MHA | ✅ | ✅ | ✅ | ✅ |
| GQA | ✅ | ✅ | ✅ | ✅ |
| MLA | ✅ (较新版本) | ✅ (较新版本) | ⚠️ 有限 | ⚠️ 有限 |
| SWA | ✅ | ✅ | ✅ | ✅ |
| Gated DeltaNet / Hybrid | ❌ 或有限 | ❌ 或有限 | ❌ | ❌ |
实际意义:选 GQA 模型(如 Qwen3、Llama 3)意味着所有主流推理框架都能用,生态成熟。选 MLA 或混合架构的模型,可能需要用特定的推理引擎,或者等框架更新。
简单决策
- 大多数文本类任务(RAG、对话、文档处理)→ 选 GQA 模型(Qwen3、Llama 3),生态最成熟,4×L40S 就能跑 70B 量化
- 需要超长上下文(128K+)且对精度敏感→ 选带 SWA 的 GQA 模型(Gemma 3),或 MLA 模型(DeepSeek V3 量化版),注意框架兼容性
- 追求最前沿的推理效率→ 关注混合架构(Qwen3.5、Kimi Linear),但推理栈还在成熟中,生产环境慎用
展望:Mamba-3 刚发布,可能替代混合架构中的 Gated DeltaNet;Attention Residuals 也值得关注。DeepSeek V4 的架构选择会是下一个风向标。
参考来源
- Sebastian Raschka, A Visual Guide to Attention Variants in Modern LLMs, 2025
- Sebastian Raschka, LLM Architecture Gallery
- Ainslie et al., GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints, 2023
- DeepSeek-AI, DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model, 2024
- Vaswani et al., Attention Is All You Need, 2017