模型架构GQA
分组查询注意力
也称为 GQA、grouped-query attention、multi-query attention、MQA
先用大白话
分组查询注意力让多个查询头共享一组键值头,在几乎不损失质量的情况下缩小 KV cache。
技术定义
分组查询注意力(GQA)是一种注意力变体,把查询头划分成若干组,每组共享一个键值头,从而降低每 token 的 KV cache 大小和带宽。
工程细节
标准多头注意力为每个头都保存键和值,缓存大小随头数增长。多查询注意力(MQA)把所有头折叠到一对键值上,最省内存但可能伤害质量。GQA 处于两者之间:一个模型可以用 8 个 KV 头服务 64 个查询头,把缓存缩小八倍。由于 decode 的主要开销就是读取 KV cache,这一节省直接转化为更快的 token 生成。
为什么重要
GQA 成为稠密开源模型的默认注意力布局,因为它正面攻击了 decode 真正受限的内存侧。它也为多头潜在注意力等更激进的 KV 压缩方案铺平了道路。
如何在 InferenceX 中解读
注意力布局由各模型架构固定,因此 GQA 在 InferenceX 中表现为模型层面每 token KV 字节数的差异,进而塑造相同硬件和引擎版本下可达的并发与交互性。