旋转位置编码(Rotary Position Embedding,RoPE)是一种面向Transformer的位置编码方法,通过旋转把序列位置写入自注意力中的查询与键向量。它使二者内积只依赖相对位置差,从而以绝对位置的形式实现相对位置编码。该方法不引入可学习的位置参数,外推较为灵活[1],自2021年提出后已被众多开源大语言模型采用[2]。
定义
旋转位置编码是一种把位置信息注入自注意力计算的编码方案。它作用的对象是词向量经线性变换得到的查询向量和键向量,处理方式是依据各自的位置对这两个向量做旋转[2]。与把位置向量直接加到词向量上的加性做法不同,旋转位置编码属于乘性位置编码[1]。
在实现上,它不需要可学习的位置嵌入查找表,本身不产生额外参数,也不会改动值向量的传播路径[1]。由于运算按元素逐位进行,它可以被融合进高效注意力内核之中[1]。
原理
自注意力的权重由查询与键的点积决定,而点积对输入顺序不敏感,位置信息需要另行注入[3]。旋转位置编码在点积之前,把位置为 $m$ 的查询和位置为 $n$ 的键分别乘上旋转矩阵 $R_m$ 与 $R_n$,这两个矩阵由若干二维旋转子块沿对角线排列而成[2]。旋转矩阵是正交矩阵,满足 $R_m^{\top} R_n = R_{n-m}$,因此旋转后向量的点积只含相对位置 $n-m$[1]。
对于 $d$ 维向量,该方法把维度两两配对,划分成 $d/2$ 个二维子空间,第 $i$ 个子空间的角频率取 $\theta_i = 10000^{-2i/d}$,继承了正弦位置编码的频率安排。其中转动较快的维度用于刻画邻近位置的差异,转动较慢的维度用于表达更远的距离[4]。
论文还给出了旋转后内积随相对距离增大而整体衰减的分析,认为这种远程衰减与自然语言中距离越远的元素关联越弱的特点相符。同一工作指出,由于该编码不依赖先算出的注意力矩阵,它可以与线性注意力结合,为线性注意力提供相对位置信息。
发展历程
2021年4月20日,苏剑林与其在追一科技的同事在预印本平台 arXiv 发表论文,提出旋转位置编码以及使用它的 RoFormer 模型。该论文随后发表于期刊 Neurocomputing[5],相关模型也被整合进 Hugging Face 的 Transformers 库[6]。
此后,旋转位置编码被多款开源大语言模型采纳,包括 Llama 系列、Qwen、Mistral、Gemma 与 DeepSeek 等[2][1]。2023年至2024年,针对它在推理阶段长度外推的不足,研究者陆续提出位置插值、YaRN、LongRoPE 等扩展方案[4]。
应用
旋转位置编码目前主要用于自然语言处理中的大语言模型,作为 Transformer 结构里的位置编码组件[2]。它不占用固定的位置嵌入表,便于在不改动主干结构的情况下调整模型可处理的序列长度[1]。
在长上下文场景中,位置插值会按比例压缩位置索引,YaRN 对旋转频率做分段缩放并校正注意力温度,LongRoPE 则通过搜索为不同维度选择缩放因子,把可用窗口扩展到更长的范围[4]。
该编码思路也被移植到文本以外的模态。面向视频的 VideoRoPE 针对时空结构设计了低频时间分配与对角布局,以保持空间对称性[7];面向视觉任务的研究则提出以可训练的角度矩阵推广旋转位置编码[8]。
局限
旋转位置编码在超出训练长度时不能可靠外推[4]。训练中已转动多圈的高频维度行为相对稳定,而在训练区间内未走完一个周期的低频维度,遇到更长位置时会落入未见过的相位范围,造成困惑度大幅上升与生成连贯性下降[4]。
位置插值等扩展手段并非没有代价:整体压缩位置索引会降低相邻位置的可分辨程度,削弱高频局部信息,通常还需配合微调才能恢复效果[4]。扩展长上下文与保持原有短上下文性能之间的冲突,至今仍是待解决的问题[9]。
有研究通过受控实验发现,旋转角度在大范围变化时会使注意力头中的部分维度利用率偏低,这些维度对长距离检索帮助有限[10]。
此外,模型可接受的标称上下文长度与实际可用的有效长度并不相同,位置编码只决定位置表示是否可用,模型能否利用其中的远距离信息还取决于训练数据与注意力模式[4]。
参见
参考资料
- github.com 上的网页 . github.com [引用日期2026-10-02]
- m4_3(PDF) . chalmers.se [引用日期2026-10-02]
- **Query vector for “dog”** . cmu.edu [引用日期2026-10-02]
- github.com 上的网页 . github.com [引用日期2026-10-02]
- j.neucom.2023 . acm.org [引用日期2026-10-02]
- abstract . harvard.edu [引用日期2026-10-02]
- acm.org 上的网页 . acm.org [引用日期2026-10-02]
- thecvf.com 上的网页 . thecvf.com [引用日期2026-10-02]
- arxiv.org 上的网页 . arxiv.org [引用日期2026-10-02]
- aclanthology.org 上的网页 . aclanthology.org [引用日期2026-10-02]
浏览次数:1 次
阅读量:0 次 · 阅读完成量:0 次
最近更新:2026-10-02T10:03:18Z
完成率 = 阅读完成量 ÷ 阅读量,分母是阅读量不是浏览次数 —— 关了 JS 的、秒退的都在浏览次数里、不在阅读量里。 详细口径在后台的「数据统计」页。