RoPE 是什么,解决什么问题?
未标记
考查重点:旋转位置表示与相对距离。RoPE按位置旋转Q/K的成对维度,使点积含相对位置信息;需说明长位置外推的训练与缩放条件,不把它当无限上下文保证
本题目录
参考答案
核心回答
RoPE 是旋转位置编码:在计算注意力分数前,按词元的位置旋转查询向量 Q 和键向量 K 的成对维度,让二者的点积自然包含相对位置差。这样,注意力在比较内容之外,还能区分两个词元的前后与间隔;它不是把一个位置向量直接加到词嵌入上。
标准做法使用预设的旋转频率,不需要为每个位置学习一行向量。公式可以计算更大的位置,但长文本效果还取决于训练长度、频率与缩放方案,不能据此保证任意长度都有效。
相对位置是怎样进入点积的
先只看一对维度。设 R(a) 表示旋转 a 弧度的二维矩阵,位置 m 的 Q 旋转 mθ,位置 n 的 K 旋转 nθ:
R(a) = [[cos(a), -sin(a)],
[sin(a), cos(a)]]
q'_m = R(mθ) q_m
k'_n = R(nθ) k_n
(q'_m)ᵀ k'_n = q_mᵀ R((n-m)θ) k_n
关键是旋转矩阵满足 R(mθ)ᵀR(nθ)=R((n−m)θ)。当两处位置一起平移相同距离时,在原 Q、K 内容不变的前提下,这个点积不变。位置项取决于相对位移,分数仍然同时取决于 Q、K 的内容,并不是只按距离打分。
高维时,把参与旋转的偶数个维度分成若干二维对,每对使用不同频率,再合起来。原论文使用以10000为底的一组频率;实际模型可能改变底数、旋转维度或缩放方式,应按模型配置处理。常见实现把这一步用于 Q、K,而不旋转 V。
与绝对位置向量、长上下文有什么区别
原始 Transformer 把正余弦位置向量加到输入表示;RoPE 则在 Q、K 上进行乘法旋转。二者都提供顺序线索,注入位置和计算方式不同。
扩展上下文时,超过训练中常见的位置与相对距离,注意力可能失真。Qwen2.5-1M 的工作把位置处理与长上下文训练结合起来;Transformers 也提供多种旋转频率缩放配置。这些方案都有适用模型和训练条件,修改一个缩放因子后仍需检验长距离检索、任务质量及短文本回归。
常见追问
旋转会改变向量长度吗? 标准二维旋转保持长度,但会改变 Q 与 K 的相对方向,从而改变点积。
距离越远,分数就一定越小吗? 不一定。不同频率的旋转、内容向量和模型学到的参数共同决定分数,不能把整体的距离偏好理解成每一对词元都严格单调衰减。
参考资料
- 国内:追一科技:RoFormer: Enhanced Transformer with Rotary Position Embedding:采用第3.2节的二维旋转、高维分组和点积推导,解释相对位移如何进入注意力。
- 国内:WeThinkIn:模型架构与工作原理:采用位置机制的比较,把输入上的位置向量与 Q、K 上的旋转区分开。
- 国内:Datawhale:第二章 Transformer架构:采用位置编码小节对序列顺序和正余弦绝对位置编码的解释,作为与旋转方式的对照。
- 国内:Qwen 团队:Qwen2.5-1M Technical Report:采用长上下文训练和位置外推的条件,说明能计算大位置不等于已经具备对应长度的任务能力。
- 国外:Vaswani 等:Attention Is All You Need:采用第3.5节的位置编码注入方式,说明原始结构与旋转编码的区别。
- 国外:Hugging Face:Rotary Position Embedding utilities:采用旋转频率与缩放类型的配置说明,限定实际模型需要匹配自身的位置编码设置。
相关面经
2 篇收录题集
大模型基础
机器学习原理
算法岗专项面试题
预训练与架构
Qwen3 RoPE qwen3vl位置编码;Qwen3的Rope原理?

