对于ROPE的原理,可以参看 juejin.cn/post/753462…
一、背景知识
1. Abel变换
Abel变换,也称为分部求和法,是一种在级数求和中非常有用的技巧。
(1) Abel变换公式
设{an}和{bn}是两个数列,记Bn=∑k=1nbk(其中B0=0 ),则:
∑k=1nakbk=anBn−∑k=1n−1(ak+1−ak)Bk
(2) 推导过程
k=1∑nakbk=k=1∑nak(Bk−Bk−1)=a1(B1−B0)+a2(B2−B1)+a3(B3−B2)+⋯+an(Bn−Bn−1)=−a1B0+(a1−a2)B1+(a2−a3)B2+⋯+(an−1−an)Bn−1+anBn
因为B0=0,所以就得到∑k=1nakbk=anBn−∑k=1n−1(ak+1−ak)Bk。
二、 PE相关内容
1. PE的理想状态
在理想状态下,PE应满足以下核心特性:
(1)单调平滑的衰减曲线
注意力分数随相对距离的增加而单调下降,避免周期性震荡。例如,当相对距离Δ从0增加到L时,内积值应呈现类似高斯函数的衰减模式:
Attention(Δ)∝−αΔ
其中α为衰减系数。这种平滑衰减能确保模型对远距离token的依赖度稳定降低,避免因高频维度周期性导致的注意力分数“回升”现象。
(2)无限外推能力
模型在训练长度之外仍能保持衰减规律。例如,当训练长度为4k时,外推至16k甚至100k时,衰减曲线的形状和速率应与训练范围内一致。
2. 旋转编码的周期性震荡
ROPE的远程衰减呈现波浪线形状,其根本原因在于旋转编码的周期性与维度混叠效应的共同作用。
(1)旋转矩阵的周期性
对于三角函数sin(wx),它的周期是 T=2π/ω。 对应到RoPE里的每个维度sin(mθj),cos(mθj),其中 θj=b−2(j−1)/d,j∈[1,2,...,d/2]。
计算得到周期为:m2πbd2(j−1)。其中,用 b 表示base,即10,000,m是指token位置,j是指token的embedding维度。
- 当m为1时,j为0,对应周期为2π∗b0=2π=6.28
- 当m为1时,j为d/2时,对应周期为2π∗b=2π∗10,000=62,831.85
3. 远程衰减原理推演
在θi的选择上,作者沿用了Transformer作者的位置编码的方案,即 θi=10000−2i/d,它可以带来一定的远程衰减性。
具体证明如下:将 q,k 两两分组后,它们加上RoPE后的内积可以用复数乘法表示
(Rmq)TRnk=Rei=0∑d/2−1q[2i:2i+1]k[2i:2i+1]∗ej(m−n)θi(14)
记 hi=q[2i:2i+1]k[2i:2i+1]∗,Sj=∑i=0jej(m−n)θi,并约定 hd/2=0,S0=0,那么由Abel变换(分部求和法)可以得到:
i=0∑d/2−1q[2i:2i+1]k[2i:2i+1]∗ej(m−n)θi=i=0∑d/2−1hi(Si+1−Si)=−i=0∑d/2−1Si+1(hi+1−hi)(15)
所以
i=0∑d/2−1q[2i:2i+1]k[2i:2i+1]∗ej(m−n)θi=i=0∑d/2−1Si+1(hi+1−hi)≤i=0∑d/2−1∣Si+1∣∣hi+1−hi∣≤(imax∣hi+1−hi∣)i=0∑d/2−1∣Si+1∣(16)
因此我们可以考察 d/21∑i=1d/2∣Si∣ 随着相对距离的变化情况来作为衰减性的体现,Mathematica代码如下 (注:上述公式中 j 为虚数单位,若习惯用 i 表示虚数,可将 j 替换为 i;向量 q,k 的下标 [2i:2i+1] 表示取第 2i 到 2i+1 维的子向量。)

4. case说明衰减
公式推导与结论
假设我们考虑第0个query和第n个key的内积,且 q 和 k 均为 ones 向量。
则 (Rmq)T(Rnk)=qTRn−mk=2∑i=0d/2−1cos((n−m)θi) ,
设相对距离 n−m 为 x ,则相对距离为 x 的向量之间注意力得分:
g(x)=2∑i=0d/2−1cos(xθi)
特殊情况分析
-
当任意 θi=0 时: 代入 g(x) 可得 g(x)=d ,即无论相对距离多大,注意力得分都相等 。
-
当任意 θi=1 时: 代入 g(x) 可得 g(x)=dcosx ,此时随着相对距离增大,注意力得分呈周期性变化,但不会震荡衰减 。

- 对于每个θi,cos(xθi)的周期大小Ti满足:
Ti=θi2π=10000−i/d2π=2π⋅108i/d
由此可知,i越大,Ti越大 。最小周期为T0=2π,最大周期为Td/2−1=2π⋅10(4−d8) 。
若对于x,满足x<41Td/2−1=2π⋅10(4−d8) ,则意味着cos(xθd/2−1)处于单调递减区间(对应下方蓝色区间 )。

由于前面的cosxθi呈周期变化,而周期变化的函数 + 单调递减的函数 = 震荡递减的函数。因此,注意力得分g(x)随着相对距离x的增大而震荡减小。
比如在LLaMA中,hidden_size=4096,head_size=4096/32=128,即d=128,41Td/2−1=13602,由 于实际应用中,最大序列长度一般不会大于104,所以相对距离x<41Td/2−1一般是成立的,当然,也可以增大θi=10000−2i/d中的10000,这样Td/2−1会变得更大。


参考:blog.csdn.net/luxurie/art…