🧠 图解记忆:MHA是全栈精英(贵但强),MQA是极简主义(省但弱),GQA是性价比之王。
MHA/MQA/GQA 都是 Self-Attention 的变体,核心区别在于 Key 和 Value 头的数量分配策略,本质是在「KV Cache 大小」和「表达能力」之间做权衡。
三种方案的对比
假设模型有 H 个 Query 头和 d_head 维度的 head:
| 方案 | Query 头数 | Key 头数 | Value 头数 | KV Cache 大小 | 推理速度 | 质量损失 | |------|-----------|---------|-----------|--------------|---------|---------|| | MHA (Multi-Head Attention) | H | H | H | 最大 (H 份) | 基准 | 无 | | MQA (Multi-Query Attention) | H | 1 | 1 | 最小 (1/H 份) | 最快 | 较大 | | GQA (Grouped-Query Attention) | H | G | G | 中等 (H/G 份) | 较快 | 很小 |
其中 G = 分组数(通常 G << H 但 G > 1)
原理拆解
MHA:标准多头注意力
每个 Query 头都有自己的 K 头和 V 头
Q[i] @ K[i]^T → Attention → ... (i = 1...H)
优点:表达能力最强
缺点:KV Cache 随头数线性增长,推理内存开销大
代表:BERT, 早期 GPTMQA:所有 Query 头共享一组 KV 头
Q[i] @ K[0]^T → Attention → ... (i = 1...H,都用同一个 K/V)
优点:KV Cache 缩减 H 倍,推理速度快
缺点:不同 Query 头被迫看同样的 K/V,表达能力严重受限,质量下降明显
代表:一些极端部署场景的小模型GQA:按组共享 KV 头(⭐ 工业界首选)
将 H 个 Query 头分为 G 组,每组共享一个 K/V 头
Q[group_0] @ K[0]^T, Q[group_1] @ K[1]^T, ...
优点:KV Cache 缩减 G 倍,质量几乎无损
缺点:需要精心设计分组数 G
代表:Llama 3 (8 heads / 8 groups = 8GQA), Gemma 2, DeepSeek V2/V3关键数学关系
KV Cache 大小(FP16)≈ 2 × num_layers × H × d_head × seq_len × batch_size × bytes_per_elem
对于 Llama 3-70B(128 heads, 8 GQA groups):
seq_len=8192, batch=1:
MHA KV Cache: 2 × 80 × 128 × 128 × 8192 × 2 = ~27 GB
GQA KV Cache: 2 × 80 × 8 × 128 × 8192 × 2 = ~1.7 GB(节省 16 倍!)Up-training(轻量升级)
GQA 论文发现:可以用很小的代价把已有 MHA 模型升级为 GQA 模型
步骤:
1. 加载训练好的 MHA checkpoint
2. 对每个组的多个 KV 权重做平均(mean pooling)→ 得到 G 组的新 KV
3. 少量数据(几百条 prompt-response)微调 → 恢复几乎完整的精度
成本:只需几小时而非几天的训练面试高频追问
2025 年出现了 MLA(Multi-Latent Attention),它与 GQA 有什么不同? MLA 不只是减少 KV 头数,而是把所有头共享的 KV 投影为一个低秩 latent tensor(rank=r),同时保持 query 方向不变。DeepSeek V2/V3 用的就是这个思路,相比 GQA 进一步压缩了 KV Cache 而不牺牲表达能力。
什么时候该用 MQA 而不是 GQA? 几乎没有理由用 MQA——它在质量上退化明显且只在极边缘部署场景有优势。GQA 已经覆盖了 MQA 的所有适用场景且效果更好。
面试话术:
"MHA 到 GQA 的演进本质上是在问一个问题:多少个 KV 头才够用?MHA 每个头独享 KV 容量但太烧显存,MQA 把所有头共享一个 KV 省显存但质量崩了。GQA 找到黄金分割点——把头分成 G 组,每组共享 KV。工业界的共识是 G 通常在 4~16 之间,比如 Llama 3 的 70B 用的是 8GQA(128个头÷8组),显存节省了 16 倍而质量几乎无损。关键是 GQA 还支持 up-training,可以直接从 MHA checkpoint 升级,这对生态非常友好。"
