参考网址:社区供稿 | 图解RoPE旋转位置编码及其特性 - 智源社区
目的:Attention机制根据周围token语义修改token的嵌入值,而周围token的位置会影响这种修改的方向和强度。因此需要有一种方法让注意力机制了解各个token的位置。
主要类型:
一)绝对位置编码
1. 训练式位置编码
上下文长度确定,不具有长度外推性
2. Sinusoidal位置编码
在不同token向量的同一个维度上,呈现出正弦变化;token向量的不同维度上,正弦变化的频率不同,用于告诉模型长距离和短距离的关联。
这种编码还可以实现距离越近内积越大,也就是越近的token影响越大。
公式:
其中:k为token对应嵌入向量的序号,i为向量中维度的序号
因此,token的序号k(token位置)越接近,语义影响程度就越大。这其实已经蕴含了token的相对位置表达。
二)相对位置编码
1. RoPE旋转位置编码
在绝对位置编码中,尤其是在训练式位置编码中,模型只能感知词向量的绝对位置,而无法感知词向量之间的相对位置。在Sinusoidal位置编码中,模型一定程度上能够感知相对位置。
而RoPE试图通过绝对位置编码的方式实现相对位置编码。
保持向量模长不变,通过向量旋转的到达的位置来区分token位置,通过向量旋转频率来区分所关注的token向量的维度。
对于单个token向量来说,两维度一组做旋转。θ指示旋转的频率,每一组两个维度都有一个特有的θ。
而m表示的是token所在的绝对位置,也就是token序号。每个token向量都唯一对应一个m。
那么对多个token向量都做如上处理之后,不同向量的同一个维度组就会有相同的频率θ 和 不同的相位(由不同位置token带来的不同m导致);而不同维度组就由不同θ带来的变化频率不同作区分。
详见:社区供稿 | 图解RoPE旋转位置编码及其特性 - 智源社区