AB
AiBoss站
百科

什么是门控注意力单元(Gated Attention Unit)?——把注意力与门控前馈合并的一层 Transformer 结构

门控注意力单元(Gated Attention Unit,GAU)是 arXiv 论文《Transformer Quality in Linear Time》提出的一种 Transformer 层结构,它把注意力与门控前馈网络合并进同一层,使较弱的单头注意力也能以很小的质量损失工作,并可与该论文提出的线性近似方法配合,构成名为 FLASH 的模型。

门控注意力单元(Gated Attention Unit,GAU)是一种 Transformer 层结构,它把注意力(attention)与门控前馈网络(gated feed-forward network)合并到同一层中,用门控机制调制注意力的输出。按 arXiv 论文《Transformer Quality in Linear Time》的说法,它要解决的问题是:标准 Transformer 在处理长序列时质量与效率都受限,而该论文希望通过这一层设计,让较弱的单头注意力(single-head attention)也能以很小的质量损失工作,从而为后续的线性近似留出空间。

为什么重要

标准 Transformer 层通常把两件事分开做:先做多头自注意力(multi-head self-attention),再做前馈网络(FFN),两者各自带残差连接与归一化。这种堆叠方式在短序列上表现良好,但序列变长时,注意力部分的计算与显存开销随序列长度快速增长,成为长上下文建模的主要瓶颈。

《Transformer Quality in Linear Time》的作者在论文摘要中说明,他们重新审视了 Transformer 中的设计选择,并提出方法来应对其在处理长序列时的弱点。论文给出的第一条措施就是提出门控注意力单元这一「简单的层」,其目的是允许使用较弱的单头注意力而只带来极小的质量损失。换句话说,GAU 不是单纯为了省算力而砍掉注意力能力,而是先改变层的组织方式,让注意力本身可以变「弱」,再在此基础上引入线性近似。

论文随后提出的线性近似方法与这一新层互补,被描述为对加速器友好(accelerator-friendly)且在质量上很有竞争力。两者结合得到的模型命名为 FLASH。按论文摘要给出的结果,FLASH 在短上下文(512)与长上下文(8K)两种设定下都能匹配改进版 Transformer 的困惑度(perplexity),并在 Wiki-40B 上取得最高 4.9 倍、在 PG-19 上取得最高 12.1 倍的自回归语言建模训练加速,在 C4 上的掩码语言建模取得 4.8 倍加速。这些数字是该论文报告的结果,属于特定模型与特定数据集下的测量值,不应外推为所有实现都能达到的加速比。

另一篇 arXiv 论文《Supplementary Material: Implementation and Experiments for GAU-based Model》从实现角度复述了这一脉络:该文称 Google 在 2022 年 2 月提出了名为 FLASH 的新 Transformer 变体,速度更快、显存占用更低、性能更好,而这是通过设计一个名为 GAU 的高性能层、把注意力层与前馈网络结合起来实现的。该文随后从理论与实际两方面重新分析了一些实现细节,并提出一个基于 GAU 的新模型,在中文语料上预训练。其 CLUE 基准结果显示,该模型开发集平均分为 75.02,比 RoFormerV1 高 1% 且快 45%,同时与 RoFormerV2 相比也具有竞争力。这些同样是该篇论文自述的实验结论。

工作机制

按上述两篇论文的描述,GAU 的核心做法可以分几个要点理解:

  • 合并注意力与前馈。 传统层是「注意力子层 + 前馈子层」两段式,GAU 把这两部分整合进同一个单元。第二篇论文明确把 GAU 描述为「combines the Attention layer and FFN」,即把注意力层与前馈网络结合起来的层。
  • 引入门控。 名称中的「门控(gated)」指用门控信号对变换后的表示进行逐元素调制,这是门控线性单元一类结构的常见做法:一路分支产生候选表示,另一路分支产生取值在 0 到 1 附近的门控权重,两者相乘后再进入后续投影。门控的作用是给模型提供一条数据相关的、可学习的通道选择机制,使单头注意力在表达能力上得到补偿。
  • 允许更弱的注意力。 论文摘要的表述是,该层「allows the use of a weaker single-head attention with minimal quality loss」,即把多头注意力削减为单头,质量损失被控制在很小的范围内。这一步是后续线性化的前提:注意力本身变简单后,再用近似方法替换它,整体质量才更容易守住。
  • 与线性近似配套。 论文强调线性近似方法与新层是互补的(complementary),并且对加速器友好。也就是说,GAU 负责「层怎么组织」,线性近似负责「注意力怎么算得更快」,二者组合成 FLASH 模型。

需要说明的是,上述要点是两篇论文摘要与标题层面给出的描述;具体的门控函数形式、维度划分、归一化位置等实现细节,需以论文正文为准,此处不做推测。

典型例子

素材中出现过的具体对象包括:

  • FLASH 模型。 《Transformer Quality in Linear Time》把 GAU 层与线性近似方法组合后得到的模型命名为 FLASH,并在 Wiki-40B、PG-19、C4 三个数据集上报告了困惑度与训练加速结果,上下文长度覆盖 512 与 8K 两种设定。
  • 基于 GAU 的中文预训练模型。 《Supplementary Material: Implementation and Experiments for GAU-based Model》提出一个基于 GAU 的新模型,在中文语料上预训练,并在 CLUE 基准上评测,报告开发集平均分 75.02,与 RoFormerV1、RoFormerV2 做了对比。
  • 作为对照的既有结构。 两篇论文在叙述中提到的对照对象包括改进版 Transformer、多头/单头注意力、前馈网络,以及 RoFormerV1 与 RoFormerV2。

边界与常见误解

第一,GAU 不等于线性注意力。GAU 本身是一个层结构设计,论文把它与一个独立的线性近似方法并列提出,二者是互补关系;把 GAU 直接等同于「线性复杂度的注意力」会混淆这两个贡献。

第二,论文报告的加速比有明确前提。4.9 倍、12.1 倍、4.8 倍这些数字分别对应 Wiki-40B、PG-19、C4 上的特定任务与特定实现,且是「最高」值;它们不是 GAU 层本身的固有属性,换硬件、换实现、换序列长度都可能不同。

第三,单头注意力「质量损失极小」是论文在其设定下的结论,不是普遍保证。该结论依赖于门控机制与整体层设计的配合,脱离这一组合单独削减注意力头数,未必能得到同样结果。

第四,第二篇论文的对比结论有其范围。75.02 的 CLUE 开发集平均分、比 RoFormerV1 高 1% 且快 45%、与 RoFormerV2 具有竞争力,都是该作者在其模型与实验设置下给出的自述结果,涉及中文语料与特定基准,不能直接推广到其他语言或任务。

第五,GAU 解决的是长序列下的效率与质量问题,并不宣称能替代 Transformer 的全部能力;论文的定位是「重新审视设计选择并提出应对弱点的办法」,属于结构改进路线之一。

参考资料