长文本能力对语言模型(LM,Language Model)尤为重要,试想,如果 LM 可以处理无限长度的输入文本,我们可以预先把所有参考资料都喂给 LM,或许 LM 在应对人类的提问时就会变得无所不能。
但是,LM 通常只在较短窗长下进行训练,可能产生过拟合,只学习到指定范围内的位置关系,但是无法理解没学习过的位置关系。为了缓解这个问题,当下最流行的便是引入具有周期性的旋转位置编码(Rotary Position Embedding,RoPE)。由于周期性编码每间隔一定距离就会出现数值重复,所以 LM 可以使用在少数几个周期内学习到的经验泛化到更多的周期当中。
但奇怪的是,使用 RoPE 的 LM 依然难以直接在训练长度之外起效,必须依靠其他算法(如 YARN)来辅助其进行外推。 那么,到底是什么限制了 RoPE 的周期延拓,进而限制了 LM 的长度外推呢?
于是,清华大学讲席教授、上海AI Lab主任/首席科学家周伯文教授的团队对这一问题进行了深入探索,使用傅里叶分析工具解读了使用 RoPE 的 Transformer 模型长文本泛化能力不足的原因之一是 RoPE 带来的周期性延拓受到了频谱破坏的影响。进一步地,该文章提出的傅里叶位置编码(Fourier Position Embedding,FoPE)大幅提升了Transformer的长文本泛化能力。
- 论文标题:Fourier Position Embedding: Enhancing Attention’s Periodic Extension for Length Generalization
- arXiv 链接:https://arxiv.org/pdf/2412.17739
- 代码链接:https://github.com/TsinghuaC3I/Fourier-Position-Embedding
研究亮点
发现 —— 频谱损坏限制周期延拓
作者们通过观察 RoPE 的公式可以发现,它为 Hidden States 的每一维都指定了单一的频率,并假设这一维度的语义信息按照这个波长影响其他位置的语义。所以,RoPE 周期延拓性的起效前提是 “Hidden States 的每一维只存在单一频率的语义”。如果每一维明明存在不同频率的语义,却仍然按照单一频率的波长来估计这部分语义的传递规律,RoPE 所带来的周期延拓将产生混乱,进而无法实现长文本泛化。
遗憾的是,在使用 RoPE 的 LM 中,这个假设只在 LM 的第一层中成立,但在后面的所有层中都不成立。因为后面的所有层中,每一维中都掺杂了除主频之外的其他频率分量,这个现象可以被称作频谱损坏(Spectrum Damage)。频谱损坏主要有三个来源:① 线性函数;②激活函数;③时域截断。
线性函数