Skip to content
🔗 分享本题
查看我的学习进度 →

MHA MQA GQA 对比动漫知识图:MHA 为每个查询头保留独立 KV,MQA 全部共享一组 KV,GQA 分组共享以折中质量、内存带宽和 KV Cache

🧠 图解记忆:共享越多缓存越小,GQA 在质量与带宽间折中;点击图片可查看原图。

💡 答案要点
  • MHA 为每个 Query head 配置独立的 Key/Value head,表达能力强,但 KV Cache 较大;
  • MQA 让所有 Query head 共享一组 Key/Value,显著减少 KV Cache 和内存带宽,可能损失质量;
  • GQA 将 Query head 分组,每组共享 Key/Value,是两者之间的折中。

KV Cache 大小与 层数 × 序列长度 × KV head 数 × head_dim × K/V × dtype 近似成正比。选型不能只说 GQA 更快,还要比较模型质量、批量大小、长上下文和硬件带宽。

📚 参考:GQA: Training Generalized Multi-Query Transformer Models(原论文)