语言人工智能指南

分组查询注意力

分组查询注意力(GQA)是一种通过让多个查询头共享相同的键和值头来缩小文本生成过程中所需内存的方法。

概述

分组查询注意力(GQA)是一种通过让多个查询头共享相同的键和值头来缩小文本生成过程中所需内存的方法。它使大型模型的服务速度更快,几乎没有质量损失。

分组查询注意力是语言人工智能堆栈的一部分,用于大规模读取、生成、分类和转换文本和语音。

深入探讨

在标准的多头注意力层中,每个头都有自己的查询、键和值。在生成过程中,所有先前令牌的键和值都会被缓存(“KV 缓存”),因此模型不会重新计算它们。由于有许多头和长上下文,该缓存变得巨大并在推理时占据内存带宽。 GQA 由 Google 研究人员于 2023 年引入,对查询头进行分组,并为每个组提供一组共享的键和值头。如果您有 32 个查询头,但只有 8 个 KV 组,则 KV 缓存会缩小大约四倍。它位于完全多头注意力(每个头独立)和多查询注意力(所有头共享一个 KV)之间,捕获 MQA 的大部分速度,同时保持质量接近完全注意力。 Llama 2 70B以及后来的许多型号都采用了它。

技术洞察

注意力质量在很大程度上取决于许多不同的查询方向,但它允许共享键和值。 GQA 利用了这种不对称性:它保留所有查询头,但在其组中的查询之间复制每个共享的 KV 头。节省来自推理,其中 KV 缓存是内存带宽的主要消耗者;更少的 KV 头意味着每个生成的令牌要读取的数据更少。通常会对模型进行简短的“升级训练”,以将现有的多头检查点转换为 GQA 检查点。

掌握分组查询注意力

分组查询注意力(GQA)是一种通过让多个查询头共享相同的键和值头来缩小文本生成过程中所需内存的方法。它使大型模型的服务速度更快,几乎没有质量损失。分组查询注意力是语言人工智能堆栈的一部分,用于大规模读取、生成、分类和转换文本和语音。为了建立深入的理解,请将分组查询注意力视为一种操作模型,而不是单个功能:定义期望的结果,澄清假设,并将系统可以可靠地完成的任务与仍然需要专家判断的任务分开。

在实践中,强大的团队使用分组查询注意力将提示、检索和审查循环设计为一个集成的通信系统。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

语言工作流程可以在不牺牲一致性的情况下更快地移动。与此同时,幻觉事实可以悄悄地进入报告、支持流程或研究成果。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

语言工作流程可以在不牺牲一致性的情况下更快地移动。

语言工作流程可以在不牺牲一致性的情况下更快地移动。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

它扩展了跨语言和沟通方式的访问。

它扩展了跨语言和沟通方式的访问。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

团队可以花更多时间进行判断,而自动化则可以处理重复。

团队可以花更多时间进行判断,而自动化则可以处理重复。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

分组查询注意力的未来

GQA 现在是开放重量模型中的标准默认设置,因为它干净利落地以微小的质量成本换取了巨大的服务胜利。预计它会越来越多地与其他效率技巧相结合,例如 FlashAttention、KV 缓存量化,以及新方案(例如进一步压缩缓存的多头潜在注意)。随着上下文窗口的增长,控制 KV 缓存大小仍将是一个核心设计问题,而 GQA 式的头共享仍将是一个关键杠杆。

现实世界的实施

Llama 2 70B 和 Llama 3 使用 GQA 提供具有较小 KV 缓存的长上下文

减少 GPU 内存,以便大型聊天模型适合更少或更便宜的加速器

加速生产 API 中逐个令牌的生成,其中 KV 缓存带宽是瓶颈

启用更大的批量大小,同时为许多用户提供服务,而不会耗尽内存

实施模式

实践中的分组查询注意力

Llama 2 70B 和 Llama 3 使用 GQA 以较小的 KV 缓存提供长上下文。

Llama 2 70B 和 Llama 3 使用 GQA 通过较小的 KV 缓存来服务长上下文。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

实践中的分组查询注意力

减少 GPU 内存,以便大型聊天模型适合更少或更便宜的加速器。

减少 GPU 内存,使大型聊天模型适合更少或更便宜的加速器 当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

实践中的分组查询注意力

加速生产 API 中逐个令牌的生成,其中 KV 缓存带宽是瓶颈。

在 KV 缓存带宽成为瓶颈的生产 API 中加快逐个令牌的生成速度 团队在预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时通常会获得更好的结果。

实践中的分组查询注意力

启用更大的批量大小,可以同时为许多用户提供服务,而不会耗尽内存。

在不耗尽内存的情况下启用更大的批量大小来同时为许多用户提供服务当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力提升和错误成本时,通常会获得更好的结果。

风险与防护栏

!

幻觉的事实可以悄悄地进入报告、支持流程或研究成果。

!

及时的敏感性可能会在类似的请求中产生不一致的结果。

!

如果访问控制薄弱,敏感文本数据可能会暴露。

实施路线图

1

在推出之前定义输出格式、语气和质量标准。

在推出之前定义输出格式、语气和质量标准。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

当准确性很重要时,请使用可信来源进行地面响应。

当准确性很重要时,请使用可信来源进行地面响应。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

为高风险输出保留人工审查检查点。

为高风险输出保留人工审查检查点。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

跟踪故障模式并定期重新训练提示或工作流程。

跟踪故障模式并定期重新训练提示或工作流程。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索