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 | 无 | 有限 | 极低 | 原始 Transformer | 2017 | 低 |
| Learned Absolute | 有 | 无 | 极低 | BERT, GPT-2 | 2018 | 低 |
| Relative (T5) | 有 | 中等 | 低 | T5 | 2020 | 低 |
| RoPE | 无 | 良好(需扩展) | 低 | LLaMA, Qwen, Mistral | 2021 | 最高 |
| ALiBi | 无 | 极强 | 极低 | BLOOM | 2022 | 中等 |
| NoPE | 无 | 有限 | 无 | 少数实验模型 | 2024 | 实验性 |
RoPE 的扩展与外推
2026 年,RoPE 的外推方案已非常成熟:
| 扩展方法 | 原理 | 实现难度 | 效果 |
|---|---|---|---|
| Linear Scaling | 将位置索引除以缩放因子 | 极低 | 一般 |
| NTK-Aware Scaling | 调整频率基数,低维高频不变 | 低 | 良好 |
| YaRN | 按频率分区分别处理 | 中等 | 优秀 |
| Dynamic NTK | 动态调整缩放因子 | 中等 | 优秀 |
| ReRoPE | 局部窗口 + 全局 RoPE | 中等 | 优秀 |
2026 年趋势
- RoPE 主导:绝大多数新模型选择 RoPE 作为默认位置编码
- NoPE 实验:部分研究表明,注意力机制本身可能隐式学习位置信息,无需显式位置编码
- 超长上下文:位置编码的外推能力成为衡量模型长上下文能力的关键指标
- 多维位置编码:图像、视频、音频等多模态模型需要 2D/3D 位置编码
相关笔记
- Transformer 架构 - Transformer 架构全景
- 注意力机制 (Attention Mechanism) - 自注意力机制原理
- 长上下文 (Long Context) — 深度解析 - 长上下文与位置编码的关系
- Mamba (状态空间模型) - 状态空间模型中的位置信息处理
来源
- Vaswani et al. (2017) - “Attention Is All You Need”: https://arxiv.org/abs/1706.03762
- Su et al. (2021) - “RoFormer: Enhanced Transformer with Rotary Position Embedding”: https://arxiv.org/abs/2104.09864
- Press et al. (2022) - “Train Short, Test Long: Attention with Linear Biases”: https://arxiv.org/abs/2108.12409
- Peng et al. (2023) - “YaRN: Efficient Context Window Extension”: https://arxiv.org/abs/2309.00071