Attention (MHA, MQA, GQA)的区别

2 阅读2分钟

MHA、MQA 和 GQA 是 Transformer 架构中三种核心的注意力机制,它们的主要区别在于对 Key (K) ​ 和 Value (V) ​ 矩阵的共享策略,这直接影响了模型的表达能力、参数量和推理效率。

🧠 核心区别速览

机制全称核心思想表达能力参数量/显存占用推理速度
MHAMulti-Head Attention每个头都有独立的 Q、K、V 矩阵最高最高最慢
MQAMulti-Query Attention所有头共享同一组 K、V 矩阵较低最低最快
GQAGrouped-Query Attention将头分组,组内共享 K、V 矩阵接近 MHA中等接近 MQA

🔍 机制详解

1. MHA (Multi-Head Attention)

MHA 是 Transformer 的原生多头注意力机制。它将输入通过不同的线性变换,独立地映射为多组 Q、K、V 向量,让模型能够从多个不同的表示子空间(如语法、语义)并行地关注输入序列的不同部分。其计算复杂度为 O(n²d),其中 n 为序列长度,d 为特征维度。

2. MQA (Multi-Query Attention)

MQA 是 MHA 的一种高效变体,旨在解决自回归解码时 KV 缓存占用显存过大的问题。它让所有注意力头共享同一组 K 和 V 矩阵,仅保留独立的 Q 矩阵。这使 KV 缓存大小和参数量都减少了约 h 倍(h 为头数),显著提升了推理速度,但表达能力会有所下降。

3. GQA (Grouped-Query Attention)

GQA 是 MHA 和 MQA 的折中方案。它将查询头 (Q) 分为 G 个组,每个组共享一组 K 和 V 矩阵。通过调整组数 G,可以在模型性能和推理效率之间进行灵活权衡。当 G=1 时,GQA 退化为 MQA;当 G=h 时,则等同于 MHA。


🎯 如何选择?

  • 追求极致性能:在训练阶段或对模型质量要求极高的场景下,优先选择 MHA
  • 追求极致效率:在推理阶段,对显存和速度有严苛要求,且能接受一定的性能损失时,可选择 MQA
  • 追求性能与效率的平衡:在大多数实际应用场景中,GQA​ 是更优的选择,它能在保持接近 MHA 性能的同时,获得显著的推理加速。