什么是环形注意力(Ring Attention)?一种把长序列切块分布到多设备上的注意力计算方法
环形注意力(Ring Attention)是论文《Ring Attention with Blockwise Transformers for Near-Infinite Context》提出的一种方法:它把自注意力与前馈计算按块进行,将长序列分布到多台设备上,并让键值块的通信与分块注意力的计算完全重叠,从而在不引入近似、不增加额外通信与计算开销的前提下,支持比以往内存高效 Transformer 长得多的序列。
环形注意力(Ring Attention)是一种面向 Transformer 长序列训练与推理的分布式计算方法。按提出它的论文《Ring Attention with Blockwise Transformers for Near-Infinite Context》的描述,它把自注意力(self-attention)与前馈(feedforward)的计算按块进行,将长序列切分后分布到多台设备上,并让键值块(key-value block)的通信与分块注意力的计算完全重叠。它要解决的问题是:Transformer 的内存需求限制了可处理的序列长度,使视频、动作等长形式序列与模态难以在复杂环境中被利用。
为什么重要
论文指出,Transformer 已成为许多先进 AI 模型的架构选择,在广泛的 AI 应用中表现出色。但内存需求制约了它处理长序列的能力,进而给在复杂环境中使用视频、动作以及其他长形式序列和模态带来挑战。序列越长,注意力所需的中间状态越大,单台设备可容纳的上下文就越有限。
在环形注意力出现之前,一类常见做法是内存高效 Transformer(memory-efficient Transformers),通过降低单设备的内存占用把序列做得更长。论文对自身工作的定位是:相比此前这类内存高效 Transformer,它支持的序列长度可达设备数量的倍数,并且不依赖近似方法,也不带来额外的通信与计算开销。这三点——长度随设备数扩展、不做近似、不额外增加通信与计算开销——是论文明确主张的差异点,属于该论文的表述,而非行业共识。
工作机制
按论文摘要给出的描述,环形注意力的核心做法可以拆成以下几个要点:
- 分块计算注意力与前馈。自注意力和前馈网络的计算都以块(block)为单位进行,而不是一次性对整个序列做完整计算。这使得单台设备在任一时刻只需持有并处理一个块,而不必容纳整条序列的中间状态。
- 把长序列分布到多台设备。长序列被切分后分散到多台设备上,每台设备负责其中一部分。序列可达到的长度因此与设备数量相关,论文称其可支持比此前内存高效 Transformer 长达设备数量倍的序列。
- 通信与计算完全重叠。这是该方法名称中「环形」所对应的关键安排:设备之间传递键值块的过程,与分块注意力的计算过程同时进行、完全重叠。论文强调,正是这种重叠使得上述扩展不产生额外的通信与计算开销。
- 不引入近似。论文明确表示该方法不诉诸近似(without resorting to approximations),即它改变的是计算的组织与分布方式,而不是用近似注意力来换取更长的上下文。
需要说明的是,上述要点均来自论文摘要层面的表述。摘要没有展开环形通信的具体拓扑细节、块大小如何选取、重叠在实现上如何保证等工程问题,因此本词条不对这些细节作推断。
典型例子
论文摘要提到的实验覆盖两类任务:
- 语言建模(language modeling)。论文称在语言建模任务上进行了大量实验。
- 强化学习(reinforcement learning)。论文同样在强化学习任务上进行了实验。
论文称,这些实验展示了该方法在支持数百万 token(millions of tokens)上下文规模方面的有效性,并带来性能提升。这里的「数百万 token」与「性能提升」均为论文作者的实验陈述,本词条未对其复现或独立验证。论文摘要中未给出具体的模型规模、数据集名称、基线对比数值或硬件配置,故不在此列出。
边界与常见误解
第一,环形注意力不是一种近似注意力。论文特别强调它不依赖近似,因此不应把它与此前那些通过稀疏化、低秩化或其他近似手段降低注意力成本的方案混为一谈。它改变的是计算在设备间的组织方式。
第二,它的扩展性与设备数量绑定。论文的表述是序列长度可达设备数量的倍数,这意味着要获得更长的上下文,需要投入更多设备;它并不是在单台设备上凭空扩大上下文的方案。设备之间的互联带宽与通信效率因此是该方法能否兑现「通信与计算完全重叠」这一前提的现实条件,但论文摘要未对此展开讨论。
第三,「不产生额外通信与计算开销」是论文相对于其所比较的内存高效 Transformer 而言的主张,属于作者对自身方法的评价,不应被读作在任何硬件与任何配置下都成立的普遍结论。
第四,论文发表于 2023 年,摘要所述实验范围限于语言建模与强化学习两类任务。对于其他模态或任务上是否同样有效,素材中没有给出结论,本词条不作延伸。