MHA、MQA、GQA的差异与共性

💡 原文中文,约1100字,阅读约需3分钟。
📝

内容提要

MHA、MQA和GQA是不同版本的注意力机制。MHA具有多个头部,每个头部都有自己的QKV计算。MQA在所有Q头部中共享相同的K和V头部。GQA是MHA和MQA之间的折中,一定数量的Q头部共享一组K和V头部。MQA和MHA可以看作是GQA的特例。从MHA中获得MQA和GQA,对每个头部的K和V头部进行平均池化。在性能方面,GQA在MQA和MHA的优势之间提供了平衡。

🎯

关键要点

  • MHA、MQA和GQA是不同版本的注意力机制。

  • MHA具有多个头部,每个头部都有自己的QKV计算。

  • MQA在所有Q头部中共享相同的K和V头部。

  • GQA是MHA和MQA之间的折中方案,一定数量的Q头部共享一组K和V头部。

  • MQA和MHA可以看作是GQA的特例。

  • MQA的实现虽然影响效果,但性能的微小降低是可以接受的,通常能提高30%-40%的吞吐量。

  • GQA旨在在不损失太多性能的情况下,获得MQA带来的推理加速好处。

  • MHA、MQA可以看作是GQA的两个特例版本。

  • 从MHA模型得到MQA和GQA的方法是对K和V进行平均池化。

  • 在LLAMA2中对比不同数据集的效果时,MQA和GQA的FFN层维度会有所拓宽以维持参数量一致。

➡️

继续阅读