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) qp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值