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层维度会有所拓宽以维持参数量一致。
🏷️
标签
➡️