概述
它通过缩小模型必须随机播放的内存来显着加快文本生成速度。
深入探讨
标准的多头注意力为每个头提供了自己的查询、键和值投影。在生成过程中,所有过去令牌的键和值都必须在每个步骤中缓存和重新加载 - 这个 KV 缓存成为主要瓶颈,因为从内存中读取它比数学本身慢。多查询注意力机制由 Noam Shazeer 在 2019 年提出,它为每个头保留单独的查询投影,但将键和值折叠到单个共享头。这会将 KV 缓存缩小到等于磁头数量的系数,有时小 8 倍到 64 倍。结果是自回归解码速度更快,内存占用更轻,质量仅略有下降。中间立场,分组查询注意力,平衡了权衡。
现实世界的实施
加速聊天助手中逐个令牌的生成,其中 KV 缓存(而不是原始计算)限制了吞吐量。
Google 的 PaLM,它使用多查询注意力来实现高效的大规模推理。
通过缩小每个请求的 KV 缓存内存,在一个 GPU 上为许多并发用户提供服务。
Llama 2 70B 和 Llama 3 中的分组查询注意力机制,是平衡 MQA 速度与全注意力质量的直系后代。
多查询注意力的未来
MQA 认为,您可以修剪冗余的键/值头,而不会造成任何损害,而这种洞察力现在几乎塑造了所有快速推理法学硕士。该领域在很大程度上集中在 Llama 2/3 和许多其他应用中使用的分组查询注意力 (GQA),它使用几个 KV 组而不是一个来恢复质量,同时保持大部分加速。未来的工作将这些想法与 KV 缓存压缩、量化和多潜在注意力相结合,以推动更长的上下文和更便宜的服务。
付诸实践
为什么这很重要
- 速度与规模. 语言工作流程可以在不牺牲一致性的情况下更快地移动。
- 交通与覆盖范围. 它扩展了跨语言和沟通方式的访问。
- 更清晰的判决. 团队可以花更多时间进行判断,而自动化则可以处理重复。
留意
- 幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
- 及时的敏感性可能会在类似的请求中产生不一致的结果。
- 如果访问控制薄弱,敏感文本数据可能会暴露。
后续步骤
- 在推出之前定义输出格式、语气和质量标准。
- 当准确性很重要时,请使用可信来源进行地面响应。
- 为高风险输出保留人工审查检查点。
- 跟踪故障模式并定期重新训练提示或工作流程。
不断探索
常见问题
什么是多查询注意力?
多查询注意力(MQA)是变压器注意力的一种节省内存的方式,它在所有注意力头之间共享一组键和值。它通过缩小模型必须随机播放的内存来显着加快文本生成速度。
多查询注意力在所有注意力头中共享什么?
MQA 为每个头保留单独的查询,但在所有头之间共享一个键投影和一个值投影。
MQA 在自回归生成过程中解决的主要瓶颈是什么?
重新加载大型 KV 缓存的每一步都会受到带宽限制; MQA 缩小缓存以加快解码速度。
MQA 大致通过什么因素缩小 KV 缓存?
由于键和值从 H 个头缩减为 1 个头,因此缓存大约缩小了头数。
使用 MQA 的主要权衡是什么?
共享键和值会稍微降低表示能力,导致质量小幅下降,但速度会大幅提升。
标准多头注意力和 MQA 之间哪个变体?
分组查询注意力(GQA)使用多个 KV 组而不是一个,平衡质量和速度。