先这样答
GQA 降低推理成本的核心在于减少 KV Cache 的显存占用和访存带宽。它让多个查询头共享同一组键和值头。模型在推理阶段不需要为每个查询头单独存储 KV 矩阵。KV Cache 的体积会按共享比例缩小。业界常见配置是 8 个查询头共享 1 组 KV 头。这种配置能把 KV Cache 相关的显存消耗降至原来的八分之一。显存占用变小后,单次推理读取 KV Cache 的带宽需求也同步减少。模型生成每个 Token 的延迟随之降低。
这种共享机制必然牺牲部分模型能力。最直接的代价是注意力头的多样性下降。多个查询头强制使用相同的 KV 映射。注意力的整体表达力会产生小幅损失。模型在处理复杂推理任务时可能出现性能退化。细粒度模式的捕捉能力也会受到影响。模型在长文本中提取特定细节时容易丢失信息。
整体来看,GQA 是一种用少量质量换取高推理效率的策略。质量损失通常很小。这种损失在实际应用中依然客观存在。
面试官会怎么追问
-
「业界一般会让几个查询头共享一组 KV 头?」 业界常见的配置是 8 个查询头共享 1 组 KV 头。这个比例能在推理成本和模型质量之间取得较好平衡。KV Cache 体积会相应缩小到原来的八分之一。
-
「GQA 牺牲的注意力表达力具体表现在什么任务上?」 这种表达力损失主要体现在复杂推理任务中。模型捕捉细粒度模式的能力会退化。处理需要区分大量相似细节的任务时,模型更容易遗漏信息。
-
「除了显存,GQA 还能节省什么硬件资源?」 GQA 还能节省显存带宽。推理阶段生成每个 Token 都需要读取完整的 KV Cache。KV Cache 体积缩小后,内存到计算单元的数据传输量按比例减少。这能缓解访存瓶颈对生成速度的限制。
回答的坑
只提节省显存,忘记点出访存带宽减少对降低延迟的作用。
把能力损失夸大,没有客观说明这种质量损失通常很小。
同系列的题