RoPE的历史发展和演进 RoPERotary Position Embedding的历史发展与演进RoPE旋转位置编码是今天大语言模型LLM中最主流的位置编码方案之一几乎成为LLaMA、Qwen、Mistral、DeepSeek 等 Decoder-only Transformer 的标准配置。它的发展路径实际上是一条从绝对位置编码 → 相对位置编码 → 旋转位置编码 → 长上下文扩展 → 多维/视觉 RoPE的演进路线。(Hugging Face)1. Transformer 时代之前为什么需要位置编码2017Transformer 提出论文Attention Is All You Need核心问题Self-Attention 本身没有顺序概念I love AI和AI love I对于 Attention 来说QK^T计算方式类似并不知道 token 顺序。所以需要加入Position Encoding位置编码2. 第一代Sinusoidal Position Encoding2017Transformer 原始方案[PE(pos,2i)sin(pos/10000^{2i/d})][PE(pos,2i1)cos(pos/10000^{2i/d})]特点固定函数不需要训练参数可以外推到更长序列例如token位置: 0 1 2 3 4 |---|---|---|---| 编码: sin波 cos波优点✅ 简单✅ 无参数✅ 有一定长度泛化能力缺点最大问题它是加法式位置编码即[X’XPE]位置只是附加信息。但是 Attention 计算[Attention(Q,K)QK^T]真正需要的是token A 和 token B 相距多少而不是token A 的绝对位置是多少3. 第二代Relative Position Encoding2018-2020研究者开始思考语言更关心北京 和 大学 距离是多少而不是北京在第15个token代表Transformer-XL引入Relative Position BiasT5加入Relative Position Bucket例如距离-1 -2 -3 ... -128映射到 bucketnear medium far优点关注相对距离。缺点需要修改 Attention[QK^TB_{relative}]增加复杂度。4. RoPE诞生2021论文RoFormer: Enhanced Transformer with Rotary Position Embedding2021年提出 RoPE。(arXiv)核心思想不把位置加到 embedding而是旋转 Query 和 Key。5. RoPE数学原理假设Query[q[q_1,q_2]]Key[k[k_1,k_2]]位置 p旋转[R§\begin{bmatrix}cos(p\theta)-sin(p\theta)sin(p\theta)cos(p\theta)\end{bmatrix}]得到[q’R§q][k’R§k]Attention[q’^Tk’]展开[(R(m)q)^T(R(n)k)]因为[R(m)^TR(n)R(n-m)]所以[q^TR(n-m)k]重点Attention 自动获得[m-n]也就是相对位置距离6. RoPE相比以前方法的革命方法位置方式问题Sin PE加法绝对位置不知道相对距离Learned PE学习位置表无法外推Relative BiasAttention加偏置复杂RoPE旋转Q/K天然相对位置RoPE同时获得✅ 绝对位置信息✅ 相对位置关系✅ 不增加参数✅ 不改变Attention结构因此迅速成为LLM主流。(Hugging Face)7. RoPE进入大模型时代2022LLaMA采用RoPEMeta AI 发布 LLaMALLaMA 1LLaMA 2LLaMA 3全部采用 RoPE。原因Decoder-only LLM需要长文本KV Cache高效推理RoPE非常适合。8. RoPE的问题长度外推失败原始RoPE训练2048 tokens推理32768 tokens问题旋转角度超过训练范围。例如训练见过0~2048但是推理2048~32768出现新的旋转周期导致Attention混乱长距离退化9. 第一波改进RoPE Scaling2023目标不重新训练把4K模型扩展到32K/128K9.1 Position InterpolationPI思想压缩位置。原0........4096变0....1024公式[p’p/s]例如4倍扩展[p’p/4]优点简单。缺点所有频率一起压缩。9.2 NTK-aware RoPE来自 Neural Tangent Kernel 思想。核心不是缩位置而是调整[\theta]原[\theta_i10000^{-2i/d}]改变base10000 ↓ 500000效果高频保持低频扩展被大量模型采用。10. YaRN2023论文YaRN: Efficient Context Window Extension of Large Language Models核心发现不同RoPE维度承担不同任务低频长期依赖高频局部关系所以不要全部统一缩放。采用分段插值高频: 保持 中频: 平滑 低频: 扩展效果4K → 128K质量损失明显降低。HuggingFace目前也支持lineardynamic NTKYaRNLongRoPE等RoPE变体。(Hugging Face)11. LongRoPE2024目标百万级上下文。论文LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens核心发现每个RoPE维度的重要性不同。因此不是全部scale8而是dim0: 1.2 dim10: 5.7 dim50: 20每个频率独立优化。结果支持2M tokens上下文扩展。(GitHub)12. LLaMA 3时代更大的RoPE base例如LLaMA 3RoPE theta10000提升500000目的让低频旋转周期更长。13. RoPE进入多模态时代RoPE原本1D文本token位置视觉需要x,y空间位置因此出现Vision RoPE二维[(x,y)]拆成height RoPE width RoPE应用ViTQwen-VLLLaVA类模型14. mRoPEMultidimensional RoPE多维RoPE把位置拆成时间 t 高度 h 宽度 w例如视频token:(t,h,w)旋转[R(t,h,w)]用于视频理解图像3D空间Qwen2-VL/Qwen3-VL路线中大量使用类似思想。15. 交错RoPEInterleaved RoPE传统dimension: 0 1 | 2 3 | 4 5 x x x x x x每两个维度一个旋转。交错time: 0 4 8 height: 1 5 9 width: 2 6 10优势不同空间维度信息混合更充分。16. RoPE发展时间线2017 | | Transformer | Sinusoidal PE | 2018-2020 | | Relative Position Bias | Transformer-XL | T5 | 2021 | | RoPE | RoFormer | 2022 | | LLaMA采用RoPE | 2023 | | Position Interpolation | NTK Scaling | YaRN | 2024 | | LongRoPE | 百万token上下文 | 2025 | | mRoPE | Video RoPE | Multimodal RoPE17. RoPE未来方向目前主要方向① 无限长度目标1M → 10M tokens挑战aliasingprecision loss② 动态RoPE根据输入动态调整[\theta]③ 多维RoPE从文本位置扩展时间 空间 事件 结构④ Attention RoPE融合例如MLASparse AttentionLinear Attention继续优化长上下文。总结一句话RoPE的发展本质是一场“如何让Transformer理解越来越长序列”的演进从固定正弦位置编码到相对位置建模再到旋转编码最后通过频率重构、多维扩展实现百万级上下文和多模态理解。核心路线Sin PE ↓ Relative Position ↓ RoPE ↓ NTK Scaling ↓ YaRN ↓ LongRoPE ↓ mRoPE / Video RoPE ↓ 未来动态多维RoPE(arXiv)