上一篇文章《Transformer升级之路:长度外推性与局部注意力》我们讨论了 Transformer 的长度外推性,得出的结论是长度外推性是一个训练和预测的不一致问题,而解决这个不一致的主要思路是将注意力局部化,很多外推性好的改进某种意义上都是局部注意力的变体。

诚然,目前语言模型的诸多指标看来局部注意力的思路确实能解决长度外推问题,但这种“强行截断”的做法也许会不符合某些读者的审美,因为人工雕琢痕迹太强,缺乏了自然感,同时也让人质疑它们在非语言模型任务上的有效性。

本文我们从模型对位置编码的鲁棒性角度来重新审视长度外推性这个问题,此思路可以在基本不对注意力进行修改的前提下改进 Transformer 的长度外推效果,并且还适用多种位置编码,总体来说方法更为优雅自然,而且还适用于非语言模型任务。

图片
问题分析
在之前的文章中,我们分析了长度外推性的缘由,给出了“长度外推性是一个训练和预测的长度不一致的问题”的定位,具体不一致的地方则有两点:
1. 预测的时候用到了没训练过的位置编码(不管绝对还是相对);
2. 预测的时候注意力机制所处理的 token 数量远超训练时的数量。

其中,第 2 点说的是更多的 token 会导致注意力更加分散(或者说注意力的熵变大),从而导致的训练和预测不一致问题,其实我们在《从熵不变性看Attention的Scale操作》已经初步讨论并解决了它,答案是将 Attention 从:

图片
修改为:
图片
其中 m 是训练长度,n 是预测长度。经过这样修改(下面简称为“ 缩放注意力”),注意力的熵随着长度的变化更加平稳,缓解了这个不一致问题。个人的实验结果显示,至少在 MLM 任务上,“ 缩放注意力”的长度外推表现更好。
所以,我们可以认为第 2 点不一致性已经得到初步解决,那么接下来应该是先集中精力解决第 1 点不一致性。
全文跳转

内容中包含的图片若涉及版权问题,请及时与我们联系删除