Ch09 Transformer

位置编码 (Position Encoding)

概述

Transformer 的自注意力机制本身是置换不变的(Permutation Invariant)——即无论输入序列的顺序如何打乱,注意力输出的结果集合都相同。这与自然语言的时序特性相矛盾:“我打你” 和 “你打我” 含义完全不同。位置编码(Position Encoding / Position Embedding)正是为了解决这一问题,通过向 token 的输入表示中注入位置信息,使模型能够感知序列中每个 token 的位置。

为什么需要位置编码

自注意力机制的计算公式为:

其中 Q 和 K 的点积仅取决于 token 的内容,与 token 在序列中的位置无关。因此,无论输入序列如何排列,只要内容相同,注意力权重就相同。位置编码通过修改输入表示来打破这种对称性。

位置编码的主要类型

1. 正弦位置编码 (Sinusoidal Position Encoding)

原始 Transformer 论文(Vaswani et al., 2017)提出:

  • 优点:可外推到训练时未见过的长度;无需额外参数
  • 缺点:外推效果有限;缺乏可学习性

2. 可学习位置嵌入 (Learned Position Embedding)

类似 token embedding,为每个位置分配一个可学习的向量。GPT 系列和 BERT 均使用此方法。

  • 优点:灵活,可适应不同任务
  • 缺点:无法外推到训练长度之外;需要固定最大长度

3. 相对位置编码 (Relative Position Encoding)

不编码绝对位置,而是编码 token 之间的相对距离。Transformer-XL、T5 等模型使用。

4. RoPE (Rotary Position Embedding)

2021 年由苏剑林提出,通过旋转矩阵将位置信息编码到注意力计算中:

RoPE 是 2026 年最主流的位置编码方式,被 LLaMA、Qwen、Mistral 等主流模型采用。

5. ALiBi (Attention with Linear Biases)

不修改输入表示,而是直接在注意力分数上添加线性偏置:

  • 优点:极强外推能力,训练短序列可推理长序列
  • 缺点:精度略低于 RoPE

各类位置编码对比

类型参数外推能力计算开销代表模型提出年份2026 使用率
Sinusoidal无有限极低原始 Transformer2017低
Learned Absolute有无极低BERT, GPT-22018低
Relative (T5)有中等低T52020低
RoPE无良好(需扩展)低LLaMA, Qwen, Mistral2021最高
ALiBi无极强极低BLOOM2022中等
NoPE无有限无少数实验模型2024实验性

RoPE 的扩展与外推

2026 年,RoPE 的外推方案已非常成熟:

扩展方法原理实现难度效果
Linear Scaling将位置索引除以缩放因子极低一般
NTK-Aware Scaling调整频率基数,低维高频不变低良好
YaRN按频率分区分别处理中等优秀
Dynamic NTK动态调整缩放因子中等优秀
ReRoPE局部窗口 + 全局 RoPE中等优秀

2026 年趋势

  1. RoPE 主导:绝大多数新模型选择 RoPE 作为默认位置编码
  2. NoPE 实验:部分研究表明,注意力机制本身可能隐式学习位置信息,无需显式位置编码
  3. 超长上下文:位置编码的外推能力成为衡量模型长上下文能力的关键指标
  4. 多维位置编码:图像、视频、音频等多模态模型需要 2D/3D 位置编码

相关笔记

来源

关联8

知识图谱

局部图谱 · 点节点跳转