跳到主要内容

注意力变体:MQA、GQA、MLA

KV 压缩 vs token 稀疏 边界见 2.3.6.8 KV 压缩与稀疏边界

要解决的问题

推理时 KV Cache 随序列长度与头数线性增长,成为吞吐瓶颈。MQA、GQA、MLA 在 保持 Q 表达力 的同时 减少 K/V 头数或维度

MQA(Multi-Query Attention)

  • 所有 Q 头 共享一组 K,VK,V
  • KV Cache 体积 1\propto 1(相对头数 HH
  • 用于 PaLM、Falcon 等;可能略损质量

GQA(Grouped-Query Attention)

  • HH 个 Q 头分为 GG 组,每组共享 K,VK,V
  • 在 MHA 与 MQA 之间折中;Llama 2/3、Qwen 广泛采用

Grouped Query Attention

query 是全量的 heads,可是 k-v 的 heads 就比较少了

计算逻辑

计算:Q 头数不变,K/V 仅 GG 组;attention 分数在组内广播或 repeat 到各 Q 头。

MLA(Multi-head Latent Attention)

DeepSeek V2/V3 路线:K,VK,V低维 latent 缓存,解码时再 up-project。

Multi-Lantent-Attention

对比

变体KV 相对 MHAToken 连接
MHA稠密
GQAG/H\approx G/H稠密
MQA1/H\approx 1/H稠密
MLA更低(latent)稠密

参考链接