AB
AiBoss站
百科

什么是多查询注意力(Multi-Query Attention)?一种降低增量解码内存带宽开销的注意力变体

多查询注意力(Multi-Query Attention,MQA)是 Noam Shazeer 在 2019 年论文《Fast Transformer Decoding: One Write-Head is All You Need》中提出的一种多头注意力变体:所有注意力头共享同一份键(keys)与值(values)张量,从而缩小增量解码时需要反复加载的张量体积,降低内存带宽开销。该论文称,这样得到的模型解码可以快得多,而质量相对基线只有轻微下降。

多查询注意力(Multi-Query Attention,MQA)是一种用于 Transformer 神经序列模型的注意力层变体:它保留多个查询(query)头,但让所有注意力头共享同一份键(keys)与值(values)张量。它针对的问题是增量推理(incremental inference,即逐 token 生成时的解码)速度慢——瓶颈不在算力,而在反复加载大体积键值张量所消耗的内存带宽。

为什么重要

按照该论文的描述,多头注意力层(multi-head attention)是 Transformer 神经序列模型中用于在序列内部与序列之间传递信息的强有力手段,是循环神经网络(RNN)的替代方案。这类层在训练阶段通常又快又简单,因为可以沿序列长度方向并行计算。

但到了增量推理阶段,情况就不同了:逐 token 生成时无法沿序列长度并行,每一步都要重新读取此前累积的键张量与值张量。论文指出,增量推理往往很慢,原因正是反复加载这些大型「keys」和「values」张量所带来的内存带宽开销。也就是说,限制解码速度的主要因素不是浮点运算量,而是把权重与缓存从内存搬到计算单元的成本。张量越大,这部分开销越突出,解码越难提速。

这一问题的现实意义在于:训练可以靠并行摊薄成本,而部署阶段的生成式推理恰恰是逐 token 串行进行的,用户直接感知到的就是每个 token 的延迟。因此,任何能在不明显损害模型质量的前提下缩小键值张量体积的改动,都会直接作用在推理延迟上。

工作机制

该论文提出的做法可以拆成以下几个要点:

  • 保留多头查询。查询侧仍然按原来的多头方式投影,不同的注意力头各自拥有独立的查询表示,从而保留多头机制在表达上的多样性。
  • 键与值跨头共享。与标准多头注意力为每个头分别维护一套键、值投影不同,多查询注意力让所有注意力「头」共用同一份键张量和值张量。论文的表述是:键和值在所有不同的注意力头之间共享。
  • 张量体积随之缩小。由于不再为每个头各存一份键值,这部分张量的规模大幅减小,论文称这「大大降低了这些张量的大小,因而降低了增量解码的内存带宽需求」。
  • 收益集中在解码阶段。论文把动机明确限定在增量推理上:训练阶段本来就能并行,收益不明显;而解码阶段每步都要读取键值缓存,共享之后每次读取的数据量下降,解码因此可以更快。

从机制上看,这一改动并不改变注意力的基本计算形式——仍然是查询与键做匹配、再对值加权求和——改变的是键和值的「份数」。多头注意力中每个头各有一套键值,相当于多组独立的查表;多查询注意力则让多个查询头去查询同一份键值表,论文标题「One Write-Head is All You Need」正是对这一取舍的概括。

典型例子

该概念的原始出处是 Noam Shazeer 的论文《Fast Transformer Decoding: One Write-Head is All You Need》,2019 年 11 月 6 日提交至 arXiv,编号 arXiv:1911.02150,主题分类为神经与进化计算(cs.NE),同时涉及计算与语言(cs.CL)与机器学习(cs.LG)。

论文中给出的验证方式是实验对比:作者通过实验验证,采用多查询注意力得到的模型在解码上确实可以快得多,而相对于基线只有轻微的质量下降。需要说明的是,这是论文作者本人报告的结果,论文摘要并未给出具体的加速倍数、质量指标数值或所测试的具体任务与数据集,因此这些细节不宜在此处补充。

论文的论述对象是 Transformer 中的多头注意力层,讨论的场景是序列模型的信息传递与增量解码,并未在摘要中列举具体的下游产品、模型名称或部署系统。

边界与常见误解

它不是一种训练技巧。论文的出发点与收益都落在增量推理(逐 token 解码)上;训练阶段由于可沿序列长度并行,本来就不是瓶颈所在。把它理解为「加速训练的方法」与原文的动机不符。

它不是「只用一个注意力头」。多查询注意力共享的是键和值,查询侧仍是多头的。若把它误解为把多头注意力直接削减成单头,就丢掉了这一设计的关键:保留查询的多样性,只压缩键值的份数。

它并非没有代价。论文明确提到,相对基线会出现「轻微的质量下降」(minor quality degradation)。这是一个需要权衡的取舍,而不是无损优化;下降幅度在不同设置下如何,摘要未作说明。

加速幅度不应被泛化。论文称模型「可以快得多地解码」,但这是在其自身实验条件下的结论,摘要未给出具体数字,也未声称对所有模型规模、序列长度或硬件环境普遍成立。任何具体的加速比例都不应挂在这篇论文名下。

它不等同于其他键值压缩手段。素材只讨论了「跨头共享键值」这一种做法。把量化、稀疏化、缓存淘汰等其他推理优化路线也算作多查询注意力,属于概念混淆。

来源单一性提示。本词条关于动机、机制与效果的陈述,均来自该论文的摘要与题录信息,属于论文作者的主张,不代表已被行业普遍采纳的共识;论文全文中的实验细节未在素材范围内,故未展开。

参考资料