大模型-attention汇总解析之-MQA
MQA,即 “Multi-Query Attention”,是减少 KV Cache 的一次的一种大胆尝试,首次提出自《Fast Transformer Decoding: One Write-Head is All You Need》, 在2019 年减少 KV Cache 就已经是研究人员非常关注的一个课题了。MQA 的思路很简单,直接让所有 Attention Head 共享同一个 K、V。
论文中伪代码,
Todo: k, v 如何选择?实际上是多头共同使用一个k, v 缓存。
一般的multi head attention 的qkv的头的数量都一样,而multi query attention的q的头数量保持不变,k,v的头数量都变为1。
论文中的计算结果:
这样子就直接将 KV Cache 减少到了原来的1/h ,这是非常可观的, 已经简洁的不能再简洁了。使用 MQA 的模型包括 PaLM 、StarCoder、Gemini 等。