AI 术语表 · 进阶 · 语言模型
RoPE
RoPE(Rotary Position Embedding,旋转位置编码)是一种让 Transformer 得知每个 token 位于句子第几个位置的方法,它按位置将向量旋转一定角度。如今许多 LLM 都把它作为处理位置信息的基本方式。
工作原理
Transformer 的注意力机制如果不加处理,是不知道词语顺序的。RoPE 把注意力中使用的查询(query)和键(key)向量旋转与位置成正比的角度,从而加入顺序信息。比较两个 token 时,留下的是旋转角度之差,因此模型自然读取的是“彼此相距多远”,而非绝对位置。它让向量的不同部分以不同速度旋转,从而同时表示近距离和远距离。
在哪里会遇到
在 Hugging Face 模型仓库的 config.json 中,会以 rope_theta(旋转速度的基准值)、rope_scaling(上下文扩展方式)、max_position_embeddings(训练时的最大位置)等字段出现。在推理引擎配置中延长上下文长度时,也可能同时指定 rope_scaling 选项。如果模型卡中写有“用 YaRN 扩展上下文”之类的说明,意思是调整了 RoPE 设置,使模型能处理更长的输入。也就是说,RoPE 设置与该模型能承受的上下文窗口直接相关。
注意事项
如果输入远长于训练时见过的长度,就会出现从未见过的旋转角度,质量可能急剧下降。因此,要扩展上下文,需要遵循模型推荐的 rope_scaling 设置或进行额外训练。随意修改配置文件中的数值,模型虽然能运行,答案却可能一塌糊涂。在长文本或长视频生成研究中,如何处理超出训练范围的位置一直是重要课题。
示例
当想把一份很长的合同一次性输入,用于公司内部文档摘要时,工程师会在模型的 config.json 中查看 max_position_embeddings 和 rope_scaling,并将模型卡推荐的扩展设置原样填入推理引擎。正如本站介绍的“In-Distribution Forcing”论文所示,在长视频生成研究中,如何在 KV 缓存中处理超出训练范围的位置同样是核心问题。
本站出现过的地方
- 论文 In-Distribution Forcing:在测试时生成长视频的分布内 KV 管理 2026-10-07