位置编码 RoPE
每天学习一个知识点 第 65 课——位置编码 RoPE
Transformer 其实是个"近视眼",天生分不清"我打你"和"你打我"。位置编码就是教它分清先后的。
专业来说:RoPE 给每个位置的词向量做一次"旋转",把位置信息融进向量本身,而不是额外贴标签。旋转后两个向量的夹角只跟"相距几位"有关,天然支持相对位置。
说白了:模型原本不分前后,RoPE 把"第几个"转成了角度。位置越近,转出来的夹角越像。
为什么用它?
① 相对位置友好:只看"差几位",不看"第几位"。
② 长上下文稳:不依赖绝对编号,外推到更长序列时更平滑。
③ 可线性注意力:旋转形式方便后续做高效注意力计算。
怎么运作?
① 配对:把向量相邻两维看成平面上的一个点 (x, y)。
② 按位置转:第 m 个位置就转 m·θ 的角度,θ 随维度递减。
③ 融入 Q/K:Query 和 Key 都先旋转,再算点积。
④ 长文本:超出训练长度时做"位置插值",平滑外推。
一句话:顺序不是贴上去的标签,而是转进向量里的角度。
位置编码 RoPE Transformer 大模型





