模型架构 进阶

位置编码

别名:Positional Encoding / 绝对位置编码 / 正弦位置编码 / ALiBi

给注意力提供 token 顺序信息的机制;从绝对位置编码到 RoPE、ALiBi 的相对位置方案。

更新于 2026/11/08
位置编码Attention长上下文

一句话定义

位置编码是给注意力注入 token 顺序信息的机制:没有它,Transformer 看到的只是“一堆词”,不知道谁在前谁在后。

为什么需要它

Attention 本身对排列不敏感:打乱 token 顺序,计算结果不变。语言依赖顺序,所以模型必须额外知道位置。位置编码可以是绝对位置(每个位置一个向量),也可以是相对位置(只关心距离)。

怎么工作

  • 绝对位置编码:把位置向量加到 token embedding 上;正弦编码固定,学习式编码可训练。
  • 相对位置编码:在注意力分数上加距离偏置(如 ALiBi),或旋转 Q/K(RoPE)。
  • 外推:训练长度有限,直接用到更长序列会偏移;常用位置插值、调频率底数(NTK)、YaRN。

绝对位置在 BERT 类模型常见;GPT 系列多用 RoPE,ALiBi 则直接用距离偏置。位置编码的选择会影响长上下文能力和训练稳定性,通常要和注意力实现一起调优。

ALiBi

ALiBi 不学位置向量,而是在注意力分数上加一个随距离线性增长的偏置;实现简单,外推时位置信号仍然连续。

位置编码:绝对位置 vs 相对位置

关键点与取舍

  • 绝对位置实现简单,但外推到更长上下文通常较弱。
  • 相对位置更关注距离,长上下文外推更自然;RoPE 是当前主流。
  • 位置编码只提供顺序信号,不决定模型该关注谁。

常见误区

  • 位置编码不是 token embedding;它不承载词义。
  • RoPE 不是加到输入上的,而是作用在 Q/K 上。
  • 标称上下文变长,不代表每个位置都能被有效利用。

用在哪里

  • 所有 Transformer 类模型;理解长上下文扩展、位置插值的前提。
  • 对比不同架构(绝对/相对/RoPE/ALiBi)时,先看位置编码方案。
  • 训练长度和推理长度不一致时,要专门评估位置外推。

相关概念

  • RoPE:旋转式相对位置编码。
  • Attention:位置信息最终作用的地方。
  • 上下文窗口:位置外推要服务的上限。