张芷铭的个人博客

RoPE 通过旋转矩阵将位置信息编码到向量方向,使注意力分数天然包含相对位置信息。

核心公式

$$\langle \text{RoPE}(\mathbf{q}_m, m), \text{RoPE}(\mathbf{k}_n, n) \rangle = g(\mathbf{q}, \mathbf{k}, n-m)$$

旋转后的点积仅依赖相对位置 $n-m$。

旋转矩阵构造

频率参数

$$\theta_i = 10000^{-2i/d}, \quad i \in [0, d/2-1]$$

二维旋转

$$\mathbf{R}_m^{(i)} = \begin{bmatrix} \cos m\theta_i & -\sin m\theta_i \ \sin m\theta_i & \cos m\theta_i \end{bmatrix}$$

应用旋转

$$\begin{bmatrix} q_{m,2i}’ \ q_{m,2i+1}’ \end{bmatrix} = \begin{bmatrix} q_{2i} \cos m\theta_i - q_{2i+1} \sin m\theta_i \ q_{2i} \sin m\theta_i + q_{2i+1} \cos m\theta_i \end{bmatrix}$$

相对位置证明

$$\mathbf{q}_m^\top \mathbf{k}_n = \mathbf{q}^\top \mathbf{R}_m^\top \mathbf{R}n \mathbf{k} = \mathbf{q}^\top \mathbf{R}{n-m} \mathbf{k}$$

由旋转矩阵正交性 $\mathbf{R}_m^\top \mathbf{R}n = \mathbf{R}{n-m}$。

与 Sinusoidal 对比

特性RoPESinusoidal
注入方式旋转(乘法)向量加法
相对位置显式编码隐式学习
长序列泛化支持外推超出训练长度失效
语义保真度高(保持模长)低(改变模长)

核心优势

  • 显式相对位置编码
  • 无需修改注意力结构
  • 兼容现有 Transformer
  • LLaMA、ChatGLM 等主流模型采用

Comments