RoPE: Rotary Position Embedding (2021, Su et al.)
2. RoPE: Rotary Position Embedding (2021, Su et al.)
arxiv: 2104.09864
核心问题:Transformer 的原始正弦位置编码(PE)有个硬伤——训练和推理必须用同样长度的序列,遇到更长的输入就"失忆"。后来的相对位置编码(如 T5 的)能外推,但实现复杂。有没有一种编码方式,既知道绝对位置,又能自然地表达"A 在 B 前面第 5 个"这种相对关系,还支持无限外推?
方法创新: 苏剑林的答案极其优雅——旋转矩阵。
想象每个词的位置信息是一个二维平面上的向量。RoPE 的做法是:根据词的位置 n,把这个向量旋转一个角度 n·θ(θ 是一个小角度,如 1/10000^(2i/d))。旋转后的向量既有绝对位置信息(旋转了多少度),又在 attention 的 Q·K^T 点积中自然地引入了相对位置信息——因为两个向量旋转后的内积只和它们的角度差有关。
具体来说,对于词嵌入的第 2i 和 2i+1 维,RoPE 执行:
[q_{2i}] [cos(mθ_i) -sin(mθ_i)] [q_{2i}]
[q_{2i+1}] = [sin(mθ_i) cos(mθ_i)] [q_{2i+1}]
其中 m 是位置索引。这个旋转操作让 attention 分数自动包含 (m-n) 的相对位置信息。关键特性: 1. 长度外推:训练时见过的位置编码是旋转 0°、1°、2°……推理时遇到位置 10000,就是旋转 10000°,公式一样通用。 2. 远距离衰减:高频分量(小 i)旋转快,远距离时相位差大,内积自然变小——注意力权重随距离自动衰减。 3. 兼容线性注意力:RoPE 的旋转性质可以扩展到线性 attention 核函数上。
关键数字:
- 在长文本分类任务上"consistently overcomes its alternatives"
- 已集成到 HuggingFace RoFormer
- 后续:LLaMA(Meta)、DeepSeek、Qwen、Baichuan 等几乎所有开源模型都用了 RoPE
费曼点评: > 很多人做位置编码是在"加调料"——给词向量额外加点位置信息。RoPE 的天才之处在于"换坐标系":不是给向量加东西,而是把向量转个角度。转多少度 = 位置。两个向量的点积自动告诉你它们的相对角度——也就是相对距离。最妙的是,这一切都发生在复数平面上,但论文只用实数矩阵实现了。这种"用最简单工具做最深奥事情"的品味,就是好的数学。
---
arxiv: 2104.09864
#论文深度研究 #小凯
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens