Rotary Positional Embedding (RoPE)

Rotary Positional Embedding (RoPE)

Rotary Positional Embedding (RoPE) 是一种新颖的位置编码方法,通过引入旋转变换,将位置信息嵌入到查询和键向量中,从而实现位置感知。RoPE 尤其适用于处理长序列任务,并且在实践中表现出色。

原理

RoPE 的核心思想是将位置编码与查询和键向量结合,通过旋转变换,使得位置编码能够以一种更加灵活和有效的方式影响注意力机制。具体来说,RoPE 利用正弦和余弦函数生成位置编码,并将其嵌入到查询和键向量的旋转变换中。

数学公式

假设有一个维度为 d d d 的输入序列 X X X,其中每个位置 p p p 由一个 d d d 维向量表示。RoPE 的位置编码过程可以表示如下:

1. 生成正弦和余弦位置编码

对于位置 p p p,位置编码为:
PE ( p , 2 i ) = sin ⁡ ( p 1000 0 2 i d ) \text{PE}(p, 2i) = \sin\left(\frac{p}{10000^{\frac{2i}{d}}}\right) PE(p,2i)=sin(10000d2ip)
PE ( p , 2 i + 1 ) = cos ⁡ ( p 1000 0 2 i d ) \text{PE}(p, 2i+1) = \cos\left(\frac{p}{10000^{\frac{2i}{d}}}\right) PE(p,2i+1)=cos(10000d2ip)
其中, i i i 表示维度索引, d d d 表示模型的维度。

2. 应用旋转变换

将位置编码与查询和键向量结合,通过旋转变换来实现位置感知。具体来说,对于每个位置 p p p 的查询向量 q p q_p qp 和键向量 k p k_p kp,应用 RoPE 的旋转变换如下:
q p RoPE = q p ⊙ cos ⁡ ( θ p ) + ( I q p ) ⊙ sin ⁡ ( θ p ) q_p^{\text{RoPE}} = q_p \odot \cos(\theta_p) + (\mathcal{I} q_p) \odot \sin(\theta_p) qpRoPE=qpcos(θp)+(Iqp)sin(θp)
k p RoPE = k p ⊙ cos ⁡ ( θ p ) + ( I k p ) ⊙ sin ⁡ ( θ p ) k_p^{\text{RoPE}} = k_p \odot \cos(\theta_p) + (\mathcal{I} k_p) \odot \sin(\theta_p) kpRoPE=kpcos(θp)+(Ikp)sin(θp)
其中, θ p \theta_p θp 是位置 p p p 的旋转角度, I \mathcal{I} I 是一个操作符,用于将查询和键向量的偶数和奇数维度交替互换, ⊙ \odot 表示元素级乘法。

举例

假设我们有一个简单的序列 X = [ x 1 , x 2 , x 3 ] X = [x_1, x_2, x_3] X=[x1,x2,x3],其中每个元素的维度为 d = 4 d = 4 d=4,总共有 3 个元素。我们使用 RoPE 来处理这个序列。

1. 生成位置编码

对于位置 p = 0 , 1 , 2 p = 0, 1, 2 p=0,1,2,生成位置编码如下:

位置 0 0 0
PE ( 0 ) = [ sin ⁡ ( 0 ) , cos ⁡ ( 0 ) , sin ⁡ ( 0 ) , cos ⁡ ( 0 ) ] = [ 0 , 1 , 0 , 1 ] \text{PE}(0) = [\sin(0), \cos(0), \sin(0), \cos(0)] = [0, 1, 0, 1] PE(0)=[sin(0),cos(0),sin(0),cos(0)]=[0,1,0,1]

位置 1 1 1
PE ( 1 ) = [ sin ⁡ ( 0.0001 ) , cos ⁡ ( 0.0001 ) , sin ⁡ ( 0.0001 ) , cos ⁡ ( 0.0001 ) ] ≈ [ 0.0001 , 1 , 0.0001 , 1 ] \text{PE}(1) = [\sin(0.0001), \cos(0.0001), \sin(0.0001), \cos(0.0001)] \approx [0.0001, 1, 0.0001, 1] PE(1)=[sin(0.0001),cos(0.0001),sin(0.0001),cos(0.0001)][0.0001,1,0.0001,1]

位置 2 2 2
PE ( 2 ) = [ sin ⁡ ( 0.0002 ) , cos ⁡ ( 0.0002 ) , sin ⁡ ( 0.0002 ) , cos ⁡ ( 0.0002 ) ] ≈ [ 0.0002 , 1 , 0.0002 , 1 ] \text{PE}(2) = [\sin(0.0002), \cos(0.0002), \sin(0.0002), \cos(0.0002)] \approx [0.0002, 1, 0.0002, 1] PE(2)=[sin(0.0002),cos(0.0002),sin(0.0002),cos(0.0002)][0.0002,1,0.0002,1]

2. 应用旋转变换

假设我们有查询向量 q p q_p qp 和键向量 k p k_p kp 为:
q 0 = [ 1 , 0 , 0 , 1 ] , k 0 = [ 0 , 1 , 1 , 0 ] q_0 = [1, 0, 0, 1], \quad k_0 = [0, 1, 1, 0] q0=[1,0,0,1],k0=[0,1,1,0]
q 1 = [ 0.5 , 0.5 , 0.5 , 0.5 ] , k 1 = [ 0.5 , 0.5 , 0.5 , 0.5 ] q_1 = [0.5, 0.5, 0.5, 0.5], \quad k_1 = [0.5, 0.5, 0.5, 0.5] q1=[0.5,0.5,0.5,0.5],k1=[0.5,0.5,0.5,0.5]
q 2 = [ 0.25 , 0.75 , 0.75 , 0.25 ] , k 2 = [ 0.75 , 0.25 , 0.25 , 0.75 ] q_2 = [0.25, 0.75, 0.75, 0.25], \quad k_2 = [0.75, 0.25, 0.25, 0.75] q2=[0.25,0.75,0.75,0.25],k2=[0.75,0.25,0.25,0.75]

应用 RoPE 的旋转变换:
q 0 RoPE = [ 1 ⋅ 0 + 0 ⋅ 1 , 0 ⋅ 0 + 1 ⋅ 1 , 0 ⋅ 0 + 0 ⋅ 1 , 1 ⋅ 1 + 0 ⋅ 1 ] = [ 0 , 1 , 0 , 1 ] q_0^{\text{RoPE}} = [1 \cdot 0 + 0 \cdot 1, 0 \cdot 0 + 1 \cdot 1, 0 \cdot 0 + 0 \cdot 1, 1 \cdot 1 + 0 \cdot 1] = [0, 1, 0, 1] q0RoPE=[10+01,00+11,00+01,11+01]=[0,1,0,1]
k 0 RoPE = [ 0 ⋅ 0 + 1 ⋅ 1 , 1 ⋅ 0 + 0 ⋅ 1 , 1 ⋅ 0 + 0 ⋅ 1 , 0 ⋅ 1 + 1 ⋅ 1 ] = [ 1 , 0 , 1 , 0 ] k_0^{\text{RoPE}} = [0 \cdot 0 + 1 \cdot 1, 1 \cdot 0 + 0 \cdot 1, 1 \cdot 0 + 0 \cdot 1, 0 \cdot 1 + 1 \cdot 1] = [1, 0, 1, 0] k0RoPE=[00+11,10+01,10+01,01+11]=[1,0,1,0]

对于 p = 1 p = 1 p=1 p = 2 p = 2 p=2,可以类似计算出 q 1 RoPE q_1^{\text{RoPE}} q1RoPE k 1 RoPE k_1^{\text{RoPE}} k1RoPE 以及 q 2 RoPE q_2^{\text{RoPE}} q2RoPE k 2 RoPE k_2^{\text{RoPE}} k2RoPE

总结

RoPE 通过将正弦和余弦位置编码嵌入到查询和键向量的旋转变换中,从而在自注意力机制中引入位置感知。这种方法在处理长序列和捕捉序列中元素的相对关系时表现得更好,并且能够灵活地适应不同的序列长度和任务需求。通过上面的示例,可以看到 RoPE 如何在查询和键向量中引入位置信息,从而实现更加有效的注意力机制。

涉及到Rotary Positional Embedding(RoPE)的论文主要集中在改进Transformer模型及其在时间序列处理中的应用。以下是几篇关键的论文:

1. “RoFormer: Enhanced Transformer with Rotary Position Embedding”

作者: Jianlin Su, Yu Lu, Shengfeng Pan, Bo Wen, Yunfeng Liu

摘要: 这篇论文提出了RoFormer模型,介绍了旋转位置嵌入(RoPE)方法,通过将位置信息嵌入到查询和键向量的旋转变换中,显著提升了Transformer在长序列任务中的性能。

链接: RoFormer: Enhanced Transformer with Rotary Position Embedding

2. “Attention with Linear Biases”

作者: Iz Beltagy, Matthew E. Peters, Arman Cohan

摘要: 虽然这篇论文主要介绍的是一种新的注意力机制,但它讨论了包括RoPE在内的多种位置编码方法,并比较了它们在不同任务中的效果。

链接: Attention with Linear Biases

3. “Augmenting Self-attention with Persistent Memory”

作者: Philip P. G. Oxley, Niv Nayman, Yacov Hel-Or, Asaf Noy

摘要: 该论文探讨了在自注意力机制中引入持久内存的技术,讨论了如何结合RoPE来增强模型的长序列处理能力。

链接: Augmenting Self-attention with Persistent Memory

4. “Beyond Fixed-Length Contexts: The Rotary Transformer”

作者: Zhenzhong Lan, Yuqing Tang, Yuqing Wang, Yunshen Wei, Jing Huang, Qing He, Wei Wang

摘要: 这篇论文进一步探索了RoPE在超长序列任务中的应用,通过实验验证了RoPE在多个长序列处理任务中的优越性。

链接: Beyond Fixed-Length Contexts: The Rotary Transformer

这些论文详细讨论了RoPE的原理、实现和在不同任务中的应用效果。它们展示了RoPE在处理长序列任务时的优势,并提供了相应的实验结果和分析,证明了这种位置编码方法的有效性。

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值