一句话:从 MHA 到 MQA、GQA、MLA,这条演进主线本质上只做一件事——在尽量不掉质量的前提下,把自回归 decode 阶段的 KV cache 压下去。 关键年份:MQA(Shazeer 2019, arXiv:1911.02150)、GQA(Ainslie et al. 2023, arXiv:2305.13245)、MLA / DeepSeek-V2(2024, arXiv:2405.04434)。 前置阅读:Transformer 基础架构、KV cache 原理、DeepSeek 系列基座。
为什么 decode 阶段 KV cache 是瓶颈
标准自注意力中,每个 token 的查询
它带来两个直接后果:
- 显存占用随上下文长度线性增长。KV cache 大小
层数 KV 头数 头维度 序列长度 batch。长上下文、大并发场景下,KV cache 往往比模型权重还吃显存。 - decode 是访存受限(memory-bound)。生成每个 token 只算一个新 query,但要把整份 KV cache 从显存搬到计算单元。瓶颈在带宽而非算力,因此 缩小 KV cache 几乎等价于提升 decode 吞吐。
由此,"如何在保证质量的同时减小 KV cache" 成了注意力结构演进的核心动机。下面这条主线,区别基本可以归结为一句话:到底保留多少个 KV 头。
MHA:基线
多头注意力(Multi-Head Attention)把
设头维度为
其中因子 2 来自 K 和 V 各一份。质量最好,但 KV cache 最大。
MQA:KV 头压到 1
Shazeer 在 Fast Transformer Decoding: One Write-Head is All You Need(2019, arXiv:1911.02150)提出 多查询注意力(Multi-Query Attention):保留
相比 MHA,KV cache 缩小到
GQA:在 1 和 之间取中
Ainslie 等人在 GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints(2023, arXiv:2305.13245,EMNLP 2023)提出 分组查询注意力:把 MQA 与 MHA 统一成一个可调谱系。
把
两个端点正是已知结构:
→ 退化为 MHA; → 退化为 MQA。
GQA 的另一贡献是 uptraining:可以从已有的 MHA checkpoint 出发,用约 5% 的原始预训练算力把它转换成 GQA 模型(KV 头按组做均值合并后继续训练),无需从头训。结论是:适中的
MLA:换条思路——低秩压缩而非减头数
MQA/GQA 都在 "减少 KV 头数" 这一维度上做文章。DeepSeek-V2(2024, arXiv:2405.04434)提出的 多头潜在注意力(Multi-head Latent Attention, MLA)换了思路:保留多头的表达,但把 KV 联合压缩成一个低维潜向量再缓存。
核心是 低秩 KV 联合压缩。对输入
其中
一个工程关键点:标准 RoPE 与这种 "缓存潜向量、用时再解压" 不兼容(位置旋转无法被吸收进上投影矩阵)。MLA 因此采用 解耦 RoPE(decoupled RoPE):额外引入一组承载位置信息的 query 分量和一个 所有头共享的带 RoPE 的 key,与压缩部分拼接。于是 MLA 每 token 缓存的是
按原文 DeepSeek-V2 的配置(
注:MLA 与 MoE 共同构成 DeepSeek-V2 的两大效率支柱,详见 MoE 混合专家 与 DeepSeek 基座;MLA 也被 DeepSeek-V3 / R1 沿用,相关训练算法见 GRPO。
KV cache 大小对比
下表为 每个 token、每层 缓存的元素数(不含 batch;
| 方法 | KV 头数 | 每 token KV cache(每层元素数) | 相对 MHA | 质量 |
|---|---|---|---|---|
| MHA | 基线(最好) | |||
| GQA | 接近 MHA | |||
| MQA | 轻微下降 | |||
| MLA | —(低秩) | 报告可 |
表中 MHA/GQA/MQA/MLA 的表达式与 MLA 的
估算均来自 DeepSeek-V2 论文 Table 1(arXiv:2405.04434),具体数值以原文为准。直观结论:MQA 最省但易掉质量,GQA 是省显存与保质量的稳健折中,MLA 用低秩压缩在小 KV cache 下逼近甚至超过 MHA。
选型小结
- 想最大化兼容性与稳健质量:GQA(开源主流,
常取 8)。 - 极致省显存、可接受轻微质量损失:MQA。
- 追求长上下文 + 高吞吐、愿意采用更复杂结构:MLA。
注意:本页只覆盖 "标准点积注意力的 KV 高效化变体"。改变注意力 计算复杂度 的稀疏注意力、线性注意力(如 Linear Attention、Sliding Window、Mamba 类)归 稀疏与线性注意力;位置编码(RoPE 等)的细节见 位置编码与归一化。
参考文献
- Shazeer, N. Fast Transformer Decoding: One Write-Head is All You Need. 2019. arXiv:1911.02150
- Ainslie, J. et al. GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints. EMNLP 2023. arXiv:2305.13245
- DeepSeek-AI. DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. 2024. arXiv:2405.04434
- Vaswani, A. et al. Attention Is All You Need. 2017. arXiv:1706.03762