查看原文
其他

Transformer升级之路:长度外推性与局部注意力

苏剑林 PaperWeekly 2023-09-02


©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络


对于 Transformer 模型来说,其长度的外推性是我们一直在追求的良好性质,它是指我们在短序列上训练的模型,能否不用微调地用到长序列上并依然保持不错的效果。之所以追求长度外推性,一方面是理论的完备性,觉得这是一个理想模型应当具备的性质,另一方面也是训练的实用性,允许我们以较低成本(在较短序列上)训练出一个长序列可用的模型。

下面我们来分析一下加强 Transformer 长度外推性的关键思路,并由此给出一个“超强基线”方案,然后我们带着这个“超强基线”来分析一些相关的研究工作。




思维误区
第一篇明确研究 Transformer 长度外推性的工作应该是 ALIBI [1],出自 2021 年中期,距今也不算太久。为什么这么晚(相比 Transformer 首次发表的 2017 年)才有人专门做这个课题呢?估计是因为我们长期以来,都想当然地认为 Transformer 的长度外推性是位置编码的问题,找到更好的位置编码就行了。

事实上,通过对比现有的一些位置编码的外推效果,确实能找到支撑该观点的一些论据。比如后面分享的多篇实验效果显示,相对位置编码的长度外推性,平均好于绝对位置编码的;像 RoPE 这样的函数式相对位置编码,又会比训练式相对位置编码的外推效果好些。

所以看上去,似乎只要我们不断优化位置编码形式,最终就能给 Transformer 提供更好的长度外推性,从而解决这个问题。然而,情况没有那么乐观,像 RoPE 算是外推能力较好的位置编码,也只能外推 10% 到 20% 左右的长度而保持效果不变差,再长效果就会骤降。

这个比例与预期差太远了,设想中好歹能外推个几倍长度才算是有价值的外推,所以不难想象,单靠改进位置编码改进 Transformer 的长度外推性,就不知道要等多久才能实现更长的效果了。

在直觉上,相信很多读者觉得像 SinusoidalRoPE 之类的函数式位置编码,它们没有训练参数,长度外推性应该很好才对,但事实上并非如此,这类位置编码并没有在长度外推方面表现出什么优势。为什么会这样呢?其实是大家在假设函数式位置编码的外推性时,忘了它的基本前提——“光滑性”。
其实,外推性就是局部推断整体,对此我们应该并不陌生,泰勒级数近似就是经典的例子,它只需要知道函数某点处若干阶导数的值,就可以对一个邻域内的值做有效估计,它依赖的就是给定函数的高阶光滑性(高阶导数存在且有界)。但是 SinusoidalRoPE 是这种函数吗?
并不是。它们是一系列正余弦函数的组合,其相位函数是 ,当 时,函数近似就是 ,这算是关于位置编码 的高频振荡函数了,而不是直线或者渐近趋于直线之类的函数,所以基于它的模型往往外推行为难以预估。能否设计不振荡的位置编码?
很难,位置编码函数如果不振荡,那么往往缺乏足够的容量去编码足够多的位置信息,也就是某种意义上来说,位置编码函数的复杂性本身也是编码位置的要求。



超强基线
事实上,更准确的定位应该是:
长度外推性是一个训练和预测的长度不一致的问题。
具体来说,不一致的地方有两点:

1. 预测的时候用到了没训练过的位置编码(不管绝对还是相对);

2. 预测的时候注意力机制所处理的 token 数量远超训练时的数量。

第 1 点可能大家都容易理解,没训练过的就没法保证能处理好,这是 DL 中很现实的现象,哪怕是 SinusoidalRoPE 这种函数式位置编码也是如此。关于第 2 点,可能读者会有些迷惑,Attention 理论上不就是可以处理任意长度的序列吗?训练和预测长度不一致影响什么呢?

答案是熵,我们在《从熵不变性看Attention的Scale操作》也已经分析过这个问题,越多的 token 去平均注意力,意味着最后的分布相对来说越“均匀”(熵更大),即注意力越分散;而训练长度短,则意味着注意力的熵更低,注意力越集中,这也是一种训练和预测的差异性,也会影响效果。

事实上,对于相对位置编码的Transformer模型,通过一个非常简单的 Attention Mask,就可以一次性解决以上两个问题,并且取得接近 SOTA 的效果:

▲ 超强基线模型(双向注意力版)

▲ 超强基线模型(单向注意力版)

不难理解,这就是将预测时的 Attention 变为一个局部 Attention,每个 token 只能看到训练长度个 token。这样一来,每个 token 可以看到的 token 数跟训练时一致,这就解决了第 2 个问题,同时由于是相对位置编码,位置的计数以当前 token 为原点,因此这样的局部 Attention 也不会比训练时使用更多的未知编码,这就解决了第 1 个问题。

所以,就这个简单的 Attention Mask 一次性解决了长度外推的 2 个难点,还不用重新训练模型,更令人惊叹的是,各种实验结果显示,如果以它为 baseline,那么各种同类工作的相对提升就弱得可怜了,也就是它本身已经很接近 SOTA 了,可谓是又快又好的“超强基线”。




论文学习
自 ALIBI 起,确实已经有不少工作投入到了 Transformer 长度外推性的研究中。在这一节中,笔者学习并整理了一下其中的一些代表工作,从中我们也可以发现,它们基本都跟基线模型有着诸多相通之处,甚至可以说它们某种程度上都是基线模型的变体,由此我们将进一步体会到长度外推性与注意力的局部性之间的深刻联系。



ALIBI
作为“开山之作”,ALIBI 是绕不过去的,它出自论文《Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation》[1]。事后来看,ALIBI 所做的改动非常简单,只是在 Softmax 之前,将 Attention 的计算从 改为
其中 是超参数,每个 head 设置不同的值。从这个定义就可以看出 ALIBI 跟基线模型的相似之处了,两者都是在 Softmax 之前减去一个非负矩阵,只不过被减去的非负矩阵有所不同,ALIBI 可以看成是基线模型的“光滑版”:

▲ 基线模型所减去的矩阵

▲ ALIBI所减去的矩阵

ALIBI 令人困惑的是它的双向注意力部分实验。可以发现,它的正文介绍全部是面向单向注意力的,实验部分就突然来了个双向注意力实验,很让人莫名其妙;ALIBI 是不添加额外的位置编码的,所以如果就按照式(1)来推广到双向注意力,那么由于 ,按理说模型就无法区分“左”和“右”,只能识别相对距离的远近,这样的模型效果也会好吗?为什么会好?



KERPLE
KERPLE 出自论文《KERPLE: Kernelized Relative Positional Embedding for Length Extrapolation》[2],它实质上就是 ALIBI 的简单推广,它引入了两个训练参数 来一般化式(1):
又是一般化,又有可训练参数,KERPLE 能取得比 ALIBI 更好的效果并不让人意外。不过这里要严重批评一下 KERPLE 论文的故弄玄虚,按照排版,原论文第三节是论文的理论支撑,但很明显它只是为了强行提高文章的数学深度而引入的无关篇幅,实质上对理解 KERPLE 毫无帮助,甚至会降低读者的阅读兴致(说白了,为审稿人服务,不是为读者服务)。



Sandwich
Sandwich 也是 KERPLE 的作者们搞的,出自《Receptive Field Alignment Enables Transformer Length Extrapolation》,上个月才放到 Arxiv 上的,它将式 (1) 替换为

其中 Sinusoidal 位置编码, 是超参数。从《Transformer升级之路:Sinusoidal 位置编码追根溯源》我们知道, 的标量函数,并且平均而言是 的单调递增函数,所以它的作用也跟 相似。之所以强调“平均而言”,是因为 整体并非严格的单调,而是振荡下降,如图所示:

▲ dot(p_m, p_n) 的函数图像(减去了d/2)

如果有必要,我们也可以将 Sandwich 转换成 RoPE 那样“绝对位置编码实现相对位置编码”的形式,这只需要留意到
也就是说 Sandwich 通过拼接的方式补充绝对位置信息,其 Attention 结果则相当于相对位置编码。不过目前看来这个转换也就只有理论价值,因为拼接增加了向量维度,反而会进一步增加 Attention 的计算量。



XPOS

XPOS 出自论文《A Length-Extrapolatable Transformer》[3],跟 Sandwich 同一天出现在 Arxiv 上,它是 RoPE 的一个一脉相承的推广。我们知道,RoPE 的基本解是:

其中 。笔者当时推导 RoPE 的时候,假设了“做同样的变换”,事实上单从“绝对位置实现相对位置”角度来看,并没有必要限制两者的变换格式一致,比如 XPOS 考虑的是
其中 是一个标量超参,这样以来
总的结果依然是只依赖于相对位置 的。然而,现在问题是指数部分是 而不是 ,只要 ,那么总有一边是发散的。XPOS 的机智之处是它选择了一个特定的场景——单向语言模型——这样一来我们只会用到 部分的注意力!此时只需要选择 ,就可以实现随着相对距离衰减的效果。
事实上,额外引入的指数衰减项 并非 XPOS 的首创,笔者所阅读的文献中,同样的项最早出现在 PermuteFormer 中,只不过 PermuteFormer [4] 主要关心的是线性 Attention 场景。细节上,XPOS 给每个分块都分配了不同的 ,但在跟作者私下交流的时候,作者补做了共享同一个 的实验,发现设置不同 带来的提升几乎可以忽略。另外,我们要适当控制 的值,以防止 较大的时候溢出。
值得指出的是,这里的随着相对距离衰减,是直接乘在 Softmax 之前的 Attention Score 的,结果是相对距离较远的 Score 变得很接近于 0,而不是像前面几种设计那样趋向负无穷。 并没有趋于零的效果,所以说,这样的设计并非是局部 Attention 的变体,因此它的效果没有达到 SOTA。
为弥补这部分差距,XPOS 设计了一个特殊的局部 Attention(称为 Blockwise Causal Attention,简写 BCA),加上去之后就能够补足这个差距了。在交流时作者表示使用 BCA 是因为在实现上有优势,实际上基线模型的局部 Attention 效果更好,所以,要外推性还是要看局部注意力啊。
原论文的实验还是很丰富很值得参考的,建议大家细读。



文章小结
本文总结了增强 Transformer 的长度外推能力的相关工作,其中包含了一个简单但强大的基线方案,以及若干篇聚焦于长度外推性的相关工作,从中我们可以发现,这些工作本质上都是基线方案——局部注意力的变体,局部注意力是长度外推的关键环节之一。


参考文献

[1] https://arxiv.org/abs/2108.12409

[2] https://arxiv.org/abs/2205.09921

[3] https://arxiv.org/abs/2212.10554

[4] https://arxiv.org/abs/2109.02377


更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存