学习目标
本文回答一个常见面试题:RoPE 到底是绝对位置编码还是相对位置编码?学完后应能从“单个向量”和“QK 点积”两个层面给出不矛盾的回答。
先修知识
1. 先给结论
RoPE 使用绝对位置 决定单个 Query 或 Key 的旋转角,因此旋转后的向量携带绝对相位;但两个旋转向量的注意力点积会消去共同的绝对偏移,只显式依赖相对距离 。
所以更准确的说法是:
RoPE 以绝对位置执行旋转,在自注意力点积中实现相对位置依赖。

2. 单个向量确实依赖绝对位置
同一个内容向量 放在不同位置会得到不同结果:
只看旋转后的坐标方向,位置 已经参与计算,因此它包含绝对相位信息。
3. 注意力分数消除了共同平移
把 Query、Key 同时向后平移 个位置:
共同偏移 被抵消了。因此在内容相同的理想条件下,位置对 和 具有相同的 RoPE 相对旋转关系。
4. 几何直觉
设两个向量原始夹角为 。位置 、 分别让它们旋转 、,旋转后的夹角变为:
点积取决于夹角余弦,因此只看见两次旋转的差。

5. 为什么真实模型仍可能出现绝对位置偏置
“RoPE 注意力核具有相对位置形式”不代表整个 Transformer 对绝对位置完全不敏感。真实模型还有:
- 序列开头和结尾的边界;
- 因果 Mask,使每个位置可见的历史数量不同;
- 多层残差传播与非线性变换;
- BOS、特殊 token 和训练数据中的固定格式;
- 不同位置在训练中出现频率不同。
因此模型整体仍可能学到首因效应、近因效应或特定位置偏好。
6. 面试回答模板
可以这样回答:
RoPE 的旋转角由绝对位置决定,所以单个旋转后的 Q、K 带有绝对相位;但注意力分数满足 ,共同的绝对平移会抵消,因此 RoPE 在 QK 点积中显式表达的是相对位置。整个模型还受到因果 Mask、边界和训练分布影响,不能据此说模型完全没有绝对位置偏置。
常见误区
误区一:RoPE 只能表示绝对位置
它输入绝对位置,但注意力内积显式得到相对位移。
误区二:RoPE 只能表示相对位置
单个旋转向量的相位由绝对位置决定。应说明讨论的是哪个层次。
误区三:平移不变意味着模型输出完全不变
推导只针对 RoPE 的 QK 内积核,不包括因果 Mask、序列边界和整个深层网络。
一句话总结
RoPE 的精确表述是“用绝对位置产生旋转,用旋转差在注意力分数中表达相对位置”。
复习卡片
- 单向量: 含绝对相位;
- 双向量点积:只依赖 ;
- 共同平移: 不改变 RoPE 核;
- 整个模型仍可能具有绝对位置偏置。
自测问题
- 为什么“绝对相位”和“相对注意力”不矛盾?
- 如何证明共同平移不改变 RoPE 点积?
- 哪些模型组件会重新引入绝对位置偏置?
下一篇
LLaMA(9):RoPE 对长距离和短距离依赖有什么区别?
参考与推荐阅读
- RoFormer 原论文:摘要明确区分“绝对位置旋转”和“相对位置依赖”。
- LLaMA 1 论文