

现在开源社区对 RoPE 的评价是两种一边倒,要么只褒,要么只贬。更加遗憾的是,这些褒贬都站在 RoPE 原文的理论框架之下,缺少更多信息量。本文将站在波、频域、傅里叶变换的角度,在不一样的视角详解 RoPE 的功过是非。

TL; DR
-
功:RoPE 使用三角函数对语义编码进行变换,实现了可周期延拓的 Attention,为长度外推提供了可能性;
-
过:RoPE 设定了过于理想的假设,即 “Hidden States 的每一维只存在单一频率的语义”。由于这个假设在 LM 中并不成立,导致 RoPE 必须依靠微调、内插等算法才能发挥周期延拓性;
-
是:RoPE 使用“周期性编码”或者说“频域编码”来改进 Attention,实现了长度外推;
-
非:
1. 基于 RoPE 的模型中,并非只有 Attention 才影响长度外推,线性层和激活函数也会产生影响(并且影响是负面的);
2. RoPE 的长距离衰减对长度外推并没有帮助,甚至可能有负面影响;
3. 许多工作认为 RoPE 本身存在高频和低频分量,但是这里的“高/低频”只是相对而言,因为 RoPE 的最高频率在数字域仍然属于低频段,这种低通滤波属性也部分帮助了长度外推。

引言
试想,如果语言模型(LM,Language Model)可以处理无限长度的输入文本,我们可以预先把所有
(文:PaperWeekly)