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 对比
| 特性 | RoPE | Sinusoidal |
|---|---|---|
| 注入方式 | 旋转(乘法) | 向量加法 |
| 相对位置 | 显式编码 | 隐式学习 |
| 长序列泛化 | 支持外推 | 超出训练长度失效 |
| 语义保真度 | 高(保持模长) | 低(改变模长) |
核心优势
- 显式相对位置编码
- 无需修改注意力结构
- 兼容现有 Transformer
- LLaMA、ChatGLM 等主流模型采用
张芷铭的个人博客
Comments