写在前面
在Transformer 架构中,位置编码(Positional Encoding, PE) 是让模型理解 Token 顺序的关键技术。近年来,旋转位置编码(Rotary Positional Embedding, RoPE) 因其出色的性能和对相对位置的优雅编码而成为主流选择,被 Llama 系列等众多模型采用。
然而,随着对超长上下文(如 128k 甚至更长)的需求日益增长,标准 RoPE 在超出其预训练长度时表现出的外推性(Extrapolation)问题逐渐显现。为了克服这些限制,研究者们提出了多种 RoPE 的改进方案。
1. 温故知新:为什么需要位置编码?Transformer 的“顺序感”
Transformer 模型的核心机制——自注意力(Self-Attention)——本质上是置换不变 (Permutation-Invariant) 的。也就是说,仅仅通过注意力计算,模型无法区分 “猫追老鼠” 和 “老鼠追猫” 这两个序列中词语的顺序。为了让模型理解词语的位置和顺序关系,必须显式地将位置信息注入到模型中,这就是位置编码的作用。
- 早期方法