题目
现代大模型在注意力头上做了多种变体优化(MHA / MQA / GQA / MLA)。请对比四者的原理、对 KV Cache 的影响,以及代表模型。
参考答案
四者的核心区别在于Q 头与 KV 头的共享方式,直接影响 KV Cache 显存。
MHA(Multi-Head Attention,标准多头)
- 个 Q 头、 个 KV 头,一一对应。
- KV Cache 头数 = ,显存最大。
- 代表:原始 Transformer、BERT、GPT-3。
MQA(Multi-Query Attention)
- 个 Q 头共享 1 组 KV 头。
- KV Cache 头数 = 1,显存最小,但质量损失明显。
- 代表:PaLM、StarCoder。
GQA(Grouped-Query Attention)
- 个 Q 头分 组,每组共享 1 组 KV 头(KV 头数 = ,介于 1 与 之间)。
- 显存与质量的折中, 退化为 MHA, 退化为 MQA。
- 代表:LLaMA-2/3、Qwen2、Mistral。
MLA(Multi-head Latent Attention,DeepSeek 提出)
- 把 KV 压缩到低秩潜在向量 :(维度远低于原始 KV),只缓存 。
- 注意力时用 经上投影恢复 K、V。
- KV Cache 进一步大幅压缩,质量接近 MHA。
- 代表:DeepSeek-V2/V3。
KV Cache 显存对比(以 头、 维、单 token 计):
| 方案 | KV 头数 | 相对显存 | 质量 |
|---|---|---|---|
| MHA | 32 | 1.0× | 基准 |
| GQA (g=8) | 8 | 0.25× | 接近 MHA |
| MQA | 1 | 0.03× | 略降 |
| MLA | ~1(低秩潜在) | 0.05–0.1× | 接近 MHA |
为何要省 KV Cache:长上下文场景下,KV Cache 随序列长度线性增长,常超过模型权重本身成为显存瓶颈(见 KV Cache 题)。压缩 KV 头数是从结构上治本。
面试加分点:
- 指出 GQA 是工程最优解,绝大多数新模型采用;MLA 是 DeepSeek 的创新,用低秩潜在向量换取极致压缩,是 DeepSeek-V3 能做到极低推理成本的关键之一。
- MQA/GQA/MLA 都不改变 Q 头数,只压 KV 头,所以前向计算量基本不变,省的是 KV Cache 与显存带宽。
出处:CSDN《大模型面试基础:Transformer-MHA、MQA、GQA 以及 MLA 技术区别》、DeepSeek-V2 技术报告。
内容来源
整理自 CSDN《大模型面试基础:Transformer MHA、MQA、GQA 以及 MLA 技术区别》
本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。