位置编码的原理。
未标记
考查重点:位置顺序与相对距离表示。内容向量需补先后与相对距离信息,绝对位置可相加,RoPE 在 Q/K 旋转中体现相对位置
本题目录
参考答案
核心回答
位置编码让模型在处理 Token 内容之外,利用它们在序列中的先后、位置和相对位移。比如“甲帮助乙”和“乙帮助甲”包含相同的词,但顺序改变了关系;这里的距离是分词后的位置差,不是词义的相似程度。
不带位置机制、采用全可见注意力的 Self-Attention,本身不会为序列顺序提供明确坐标。因此可以把绝对位置向量加入输入,也可以在注意力计算中引入相对位置偏置,或者像 RoPE 一样,按位置旋转 Q、K,让它们的点积包含相对位置信息。
这些方案的区别在于位置信息在哪里进入、是否需要学习,以及超出训练长度后怎样工作。编码公式能算到更远的位置,不代表模型就能可靠理解任意长文本;长上下文还要结合训练分布、缩放方案和实际任务验证。
为什么内容向量还不够
Token Embedding 主要表示词元内容,相同词元在不同位置开始时可以得到同一个内容向量。对于没有位置编码或其他位置相关结构的全可见 Self-Attention,把输入顺序打乱,输出也会相应重排,这称为排列等变;它缺少明确表示“谁在前、相隔多远”的机制。
因果掩码会限制当前位置只能读取此前内容,因此也提供了顺序结构。它与位置编码的作用不同:掩码规定“可以看哪些位置”,位置机制帮助模型建模位置和距离,不能简单认为两者可以互相替代。
距离也不是越近越重要。模型仍要结合内容判断相关性,位置机制只是为这种判断增加顺序线索。
绝对位置怎样加入模型
一种常见方式是把位置向量 pₘ 加到第 m 个 Token 的内容向量 xₘ 上,得到 xₘ+pₘ,两者维度相同。
位置向量可以由可训练的查表参数得到,也可以用固定函数生成。可训练位置表能适应训练任务,但未覆盖的位置需要额外处理;固定函数没有逐位置查表的限制,却仍可能遇到模型没有学会处理的长度。
原始 Transformer 使用不同频率的正弦和余弦。设维度 d 为偶数,i 从 0 到 d/2−1:
- PE(m, 2i)=sin(m / 10000^(2i/d))。
- PE(m, 2i+1)=cos(m / 10000^(2i/d))。
同一位置在不同维度上对应不同频率,使位置向量具有可计算的规律。例如 d=4 时,位置 0 的向量为 [0, 1, 0, 1]。三角函数的关系也使相对位移具有可表达的结构,但不应把它直接理解为任意两个位置的编码相减就等于距离。
相对位置与 RoPE 怎样工作
相对位置方法直接考虑查询位置 m 与被关注位置 n 的差值。例如在注意力分数中加入依赖相对位移的偏置,或使用相对位置向量;具体方法还可以对距离分桶或截断,以控制参数规模。
RoPE 则在常见实现中对 Q、K 的若干二维分量分别旋转。为看清原理,先只看一个二维分量:令 R(α) 表示旋转角度 α,θ 是该分量使用的频率,未旋转的列向量为 q、k。
qₘ=R(mθ)q,kₙ=R(nθ)k,因此 qₘᵀkₙ=qᵀR((n−m)θ)k。
关键在于 R(mθ)ᵀR(nθ)=R((n−m)θ):单个向量按绝对位置旋转,内积中的位置项却依赖相对位移。高维情况下,把多个二维分量的结果组合起来即可。
用一个教学数例:q=k=(1, 0),θ=π/2。位置对 (0, 0)、(0, 1)、(0, 2) 的旋转后内积分别为 1、0、−1;位置对 (3, 4) 的内积也是 0,与 (0, 1) 一样具有位移 1。
这个数例说明相对位移进入了分数,不代表分数会随距离单调下降。上面的关系也以未旋转的 q、k 固定为条件;实际模型中的内容表示还受到上下文和层间计算影响。
为什么 RoPE 也需要长度扩展与评估
RoPE 的旋转可以在更大的位置编号上计算,但远超训练范围后,模型面对的频率、位置组合和注意力分布会改变。调整位置或频率的缩放方式,是长上下文扩展的一类方法,不能只修改一个最大长度字段就假定质量保持不变。
例如 Qwen3-8B 的模型卡单独说明了原生上下文与启用 YaRN 后的使用条件,也提醒缩放可能影响短文本效果。实际部署要核对具体模型和推理实现,同时检查长文本任务质量、短文本回归以及 KV Cache 和延迟成本。
常见追问
位置编码都是加到 Embedding 上的吗?
不是。绝对位置向量可以与内容向量相加;相对偏置进入注意力分数;RoPE 通常旋转 Q、K。它们的作用位置不同。
RoPE 是绝对位置编码还是相对位置编码?
它用绝对位置决定旋转角度,又使 Q、K 内积中的位置关系以相对位移体现。只用“绝对”或“相对”一个标签,容易漏掉这两个层次。
为什么不直接给每个位置一个整数?
可以把位置编号作为输入的一部分,但模型仍需有合适的表示和运算方式去利用它。向量、偏置和旋转等设计,是为了让位置信息与注意力计算有效结合,而不是仅把编号附在文本旁边。
参考资料
- 国内:wdndev:位置编码整理:参考绝对、相对位置与长度外推的比较,说明正文中位置信息的不同进入方式及长距离效果需验证的条件。
- 国内:追一科技:RoFormer 论文 v5:第 3.1、3.2 节从二维旋转推导高维 RoPE,解释为什么按绝对位置旋转后,内积可以包含相对位移。
- 国内:Qwen:Qwen3-8B 模型卡:依据 Processing Long Texts 的 YaRN 条件与短文本取舍,说明正文中公式能计算远位置并不保证长上下文可靠。
- 国外:Google:Attention Is All You Need:依据原论文第 3.5 节的正弦余弦公式,说明正文中固定绝对位置向量的构造及与 Embedding 同维相加。
- 国外:Hugging Face:Rotary embeddings utilities:参考 Q、K 旋转及缩放变体的配置,说明正文中 RoPE 实现和长度扩展需要匹配具体模型的原因。
相关面经
5 篇字节跳动
广告算法岗kvcache怎么做的,了解大模型中别的提高效率的办法吗位置编码
字节跳动
Agent 开发工程师Transformer自注意力机制、位置编码、梯度消失/爆炸的解决方案
字节跳动
后端开发工程师(Agent)简单介绍下 Transformer 的 QKV 机制,以及为什么引入位置编码和多头注意力?
字节跳动
AI AgentTransformer自注意力机制、位置编码、梯度消失/爆炸的解决方案
蚂蚁国际
AI 应用 / Agent 开发怎么理解词与词之间距离的概念?为什么大模型需要知道这个距离?
