← 返回题库
基础理论困难

MHA / MQA / GQA / MLA 区别?为何能省 KV Cache?

#注意力头分组#KV Cache 压缩#GQA#MLA 低秩

题目

现代大模型在注意力头上做了多种变体优化(MHA / MQA / GQA / MLA)。请对比四者的原理、对 KV Cache 的影响,以及代表模型。

参考答案

四者的核心区别在于Q 头与 KV 头的共享方式,直接影响 KV Cache 显存。

MHA(Multi-Head Attention,标准多头)

  • hh 个 Q 头、hh 个 KV 头,一一对应。
  • KV Cache 头数 = hh,显存最大。
  • 代表:原始 Transformer、BERT、GPT-3。

MQA(Multi-Query Attention)

  • hh 个 Q 头共享 1 组 KV 头。
  • KV Cache 头数 = 1,显存最小,但质量损失明显。
  • 代表:PaLM、StarCoder。

GQA(Grouped-Query Attention)

  • hh 个 Q 头分 gg 组,每组共享 1 组 KV 头(KV 头数 = gg,介于 1 与 hh 之间)。
  • 显存与质量的折中,g=hg=h 退化为 MHA,g=1g=1 退化为 MQA。
  • 代表:LLaMA-2/3、Qwen2、Mistral。

MLA(Multi-head Latent Attention,DeepSeek 提出)

  • 把 KV 压缩到低秩潜在向量 ccc=WDkc = W_D k(维度远低于原始 KV),只缓存 cc
  • 注意力时用 cc 经上投影恢复 K、V。
  • KV Cache 进一步大幅压缩,质量接近 MHA。
  • 代表:DeepSeek-V2/V3。

KV Cache 显存对比(以 h=32h=32 头、d=128d=128 维、单 token 计):

方案KV 头数相对显存质量
MHA321.0×基准
GQA (g=8)80.25×接近 MHA
MQA10.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 技术区别》

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。