在Llama中采用的旋转位置编码(Rotary Position Embedding, RoPE)与Transformer中的sin/cos绝对位置编码有以下核心区别及优势:


一、核心区别

1. 位置信息融合方式
  • sin/cos绝对位置编码
    将位置索引通过正弦和余弦函数映射为固定向量,直接与词向量相加。例如,位置 m m m的编码为:
    P E ( m , 2 i ) = sin ⁡ ( m / 10000 2 i / d ) , P E ( m , 2 i + 1 ) = cos ⁡ ( m / 10000 2 i / d ) PE(m, 2i) = \sin\left(m / 10000^{2i/d}\right), \quad PE(m, 2i+1) = \cos\left(m / 10000^{2i/d}\right) PE(m,2i)=sin(m/100002i/d),PE(m,2i+1)=cos(m/100002i/d)
    模型需学习如何从叠加后的向量中分离内容和位置信息。

  • RoPE旋转位置编码
    将位置信息通过旋转矩阵融入query和key的向量中。对于位置 m m m的向量 x \mathbf{x} x,其编码为:
    x m = R m x , 其中 R m = ( cos ⁡ m θ − sin ⁡ m θ sin ⁡ m θ cos ⁡ m θ ) \mathbf{x}_m = \mathbf{R}_m \mathbf{x}, \quad \text{其中} \quad \mathbf{R}_m = \begin{pmatrix} \cos m\theta & -\sin m\theta \\ \sin m\theta & \cos m\theta \end{pmatrix} xm=Rmx,其中Rm=(cosmθsinmθsinmθcosmθ)
    旋转矩阵 R m \mathbf{R}_m Rm直接作用于向量维度,保持向量模长不变,仅改变方向。
    具体推导可见:

    1. LLAMA中的旋转位置编码
    2. 为什么要采用旋转位置编码
2. 相对位置建模
  • sin/cos编码
    通过注意力机制隐式学习相对位置关系,但需依赖模型从绝对位置中推导相对偏移(如通过注意力权重 s o f t m a x ( Q K T ) softmax(QK^{T}) softmax(QKT)间接建模)。

  • RoPE编码
    在计算注意力时,query和key的旋转矩阵差异显式编码相对位置。例如,位置 m m m的query和位置 n n n的key的内积为:
    ( R m q ) ⊤ ( R n k ) = q ⊤ R m − n k (\mathbf{R}_m \mathbf{q})^\top (\mathbf{R}_n \mathbf{k}) = \mathbf{q}^\top \mathbf{R}_{m-n} \mathbf{k} (Rmq)(Rnk)=qRmnk
    内积结果仅依赖相对位置差 m − n m-n mn,天然支持相对位置建模。


二、RoPE的优势

1. 更好的外推性(长序列泛化)
  • 原因:旋转矩阵的线性性质( R a R b = R a + b \mathbf{R}_a \mathbf{R}_b = \mathbf{R}_{a+b} RaRb=Ra+b)使模型能处理远超训练时最大长度的序列。
  • 对比:sin/cos编码在超长序列时需扩展位置索引,可能破坏位置间的关系。

sin/cos编码在超长序列中失效的本质原因是:

  1. 高频分量无法区分相邻位置;(波长: T = 2 π ∗ 10000 2 i / d , i T=2\pi*10000^{2i/d},i T=2π100002i/d,i为第i维特征,当 d d d较大时T较小,则相邻位置编码差异过小)
  2. 相对位置关系的外推超出训练范围;(位置内积: s i n ( m θ ) s i n ( n θ ) + c o s ( m θ ) c o s ( n θ ) = c o s ( ( m − n ) θ ) sin(mθ)sin(nθ)+cos(mθ)cos(nθ)=cos((m−n)θ) sin(mθ)sin(nθ)+cos(mθ)cos(nθ)=cos((mn)θ) ( m − n ) θ (m-n)\theta (mn)θ可能超出模型训练时见过的范围)
  3. 数值分布偏移破坏模型对位置的敏感性;(位置索引的增大导致编码值的数值分布偏离训练时的范围)
2. 显式相对位置建模
  • 效果:直接通过旋转矩阵差计算相对位置,无需模型隐式学习,提升对位置敏感任务(如语言建模、机器翻译)的性能。
3. 保持向量空间性质
  • 特性:旋转不改变向量模长,仅调整方向,避免因位置编码叠加导致的数值尺度变化,提升训练稳定性。
4. 计算效率
  • 实现:RoPE可融入注意力计算,无需额外存储位置编码矩阵,节省显存。例如,在计算 Q K T QK^T QKT时直接应用旋转:
    Attention ( Q , K , V ) = softmax ( ( Q R m ) ( K R n ) ⊤ d ) V \text{Attention}(Q, K, V) = \text{softmax}\left( \frac{(Q\mathbf{R}_m)(K\mathbf{R}_n)^\top}{\sqrt{d}} \right) V Attention(Q,K,V)=softmax(d (QRm)(KRn))V

三、总结

  • sin/cos编码:简单,依赖模型隐式学习位置关系,外推能力有限。
  • RoPE:通过旋转矩阵显式建模相对位置,兼具外推性、效率与稳定性,适合长序列和复杂任务。

RoPE的提出反映了从“绝对位置加法”到“相对位置融合”的演进,是提升Transformer类模型性能的重要创新。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐