语言人工智能指南

多查询注意力

多查询注意力(MQA)是变压器注意力的一种节省内存的方式,它在所有注意力头之间共享一组键和值。

阅读时间:2分钟最后更新

概述

它通过缩小模型必须随机播放的内存来显着加快文本生成速度。

深入探讨

标准的多头注意力为每个头提供了自己的查询、键和值投影。在生成过程中,所有过去令牌的键和值都必须在每个步骤中缓存和重新加载 - 这个 KV 缓存成为主要瓶颈,因为从内存中读取它比数学本身慢。多查询注意力机制由 Noam Shazeer 在 2019 年提出,它为每个头保留单独的查询投影,但将键和值折叠到单个共享头。这会将 KV 缓存缩小到等于磁头数量的系数,有时小 8 倍到 64 倍。结果是自回归解码速度更快,内存占用更轻,质量仅略有下降。中间立场,分组查询注意力,平衡了权衡。

技术洞察

在 MQA 中,查询权重仍然产生 H 个独立的查询向量,但单个键投影和单个值投影在所有头之间共享。每个头使用自己的查询针对相同的键和值来计算注意力。由于缓存的 K 和 V 张量不再随磁头数量缩放,因此解码期间的内存带宽急剧下降,而影响现代加速器生成速度的是带宽,而不是计算。

战略影响

速度与规模

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

交通与覆盖范围

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

更清晰的判决

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

多查询注意力的未来

MQA 认为,您可以修剪冗余的键/值头,而不会造成任何损害,而这种洞察力现在几乎塑造了所有快速推理法学硕士。该领域在很大程度上集中在 Llama 2/3 和许多其他应用中使用的分组查询注意力 (GQA),它使用几个 KV 组而不是一个来恢复质量,同时保持大部分加速。未来的工作将这些想法与 KV 缓存压缩、量化和多潜在注意力相结合,以推动更长的上下文和更便宜的服务。

现实世界的实施

加速聊天助手中逐个令牌的生成,其中 KV 缓存(而不是原始计算)限制了吞吐量。

Google 的 PaLM,它使用多查询注意力来实现高效的大规模推理。

通过缩小每个请求的 KV 缓存内存,在一个 GPU 上为许多并发用户提供服务。

Llama 2 70B 和 Llama 3 中的分组查询注意力机制,是平衡 MQA 速度与全注意力质量的直系后代。

风险与防护栏

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

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

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

实施路线图

1

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

2

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

3

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

4

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

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Multi-Query Attention quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

分组查询注意力

常见问题

什么是多查询注意力?

多查询注意力(MQA)是变压器注意力的一种节省内存的方式,它在所有注意力头之间共享一组键和值。它通过缩小模型必须随机播放的内存来显着加快文本生成速度。

多查询注意力在所有注意力头中共享什么?

MQA 为每个头保留单独的查询,但在所有头之间共享一个键投影和一个值投影。

MQA 在自回归生成过程中解决的主要瓶颈是什么?

重新加载大型 KV 缓存的每一步都会受到带宽限制; MQA 缩小缓存以加快解码速度。

MQA 大致通过什么因素缩小 KV 缓存?

由于键和值从 H 个头缩减为 1 个头,因此缓存大约缩小了头数。

使用 MQA 的主要权衡是什么?

共享键和值会稍微降低表示能力,导致质量小幅下降,但速度会大幅提升。

标准多头注意力和 MQA 之间哪个变体?

分组查询注意力(GQA)使用多个 KV 组而不是一个,平衡质量和速度。