从 Bit 到 AGI第五章:Transformer

位置编码的变体

从 Bit 到 AGI · 第五章:Transformer · 从正弦到 RoPE 与 ALiBi 的长上下文演进

作者 David更新于 第 79 篇(共 186 篇)

Position Encoding 介绍了正弦与 BERT 可学习绝对位置。当 context 从 512 推到 32K、128K,绝对 embedding 外推差、正弦缺乏相对距离归纳偏置——社区演化出 RoPE、ALiBi、相对位置偏置 等变体。现代 LLM(LLaMA、Qwen、GPT-NeoX)大多采用 RoPE。

直觉:把位置编进「查询角度」

绝对位置像给每个座位固定编号;RoPE 像给 Query 和 Key 各转一个与位置有关的角度,两点积只依赖相对角度差——天然表达「相距 3 个 token」。ALiBi 则直接在 attention score 上加线性距离惩罚,连位置向量都省掉。

定义

相对位置偏置(T5 / Shaw et al.)

在 logits 上加可学习偏置 bi−jb_{i-j}(只依赖相对距离 i−ji-j,clamp 到窗口):

Aij=qikj⊤dk+bi−jA_{ij} = \frac{\mathbf{q}_i \mathbf{k}_j^\top}{\sqrt{d_k}} + b_{i-j}

RoPE(Rotary Position Embedding)

对 dkd_k 维中每对维度应用与位置 pospos 相关的旋转:

f(x,pos)=Rposxf(\mathbf{x}, pos) = \mathbf{R}_{pos} \mathbf{x}

qi,kj\mathbf{q}_i, \mathbf{k}_j 旋转后再点积,等价于编码相对位置 i−ji-j。LLaMA-7B:dmodel=4096d_{\text{model}}=4096,32 头,dk=128d_k=128,RoPE base frequency 10000。

ALiBi(Attention with Linear Biases)

Aij=qikj⊤dk−mh⋅∣i−j∣A_{ij} = \frac{\mathbf{q}_i \mathbf{k}_j^\top}{\sqrt{d_k}} - m_h \cdot |i - j|

mhm_h 为第 hh 头的斜率,无额外参数;外推时长序列 attention 自然衰减远距离。

例子

例 1:方案对比

方案额外参数相对位置长上下文外推
正弦(固定)0弱一般
可学习绝对(BERT)Lmax⁡⋅dL_{\max} \cdot d否差(需插值)
相对偏置(T5)≈(2L−1)⋅h\approx (2L-1) \cdot h是中等
RoPE(LLaMA)0是较好(+NTK/YaRN)
ALiBi0是较好

例 2:RoPE 与 dk=64d_k=64(单头)

旋转作用于成对维度 (2k,2k+1)(2k, 2k+1),频率 θk=10000−2k/dk\theta_k = 10000^{-2k/d_k}。pos=10pos=10 与 pos=13pos=13 的 Q/K 点积反映距离 3,与绝对起点无关。

例 3:外推 512 → 8192

BERT 可学习位置:训练 512,推理 8192 需 位置插值(PI)或扩展 embedding。RoPE 可用 NTK-aware scaling 调整 base,无需重训 embedding 表。

# ALiBi 斜率示意(每头不同 m)
import torch

n, n_heads = 128, 12
slopes = torch.tensor([2 ** (-8 / n_heads * (i + 1)) for i in range(n_heads)])
dist = (torch.arange(n).unsqueeze(0) - torch.arange(n).unsqueeze(1)).abs()
# alibi[b,h,i,j] = -slopes[h] * dist[i,j]

量化

  • RoPE 计算:与 Q/K 投影融合,额外 FLOPs 约 O(nd)O(n d),可忽略
  • ALiBi:加 hn2h n^2 次加法,无参数;Bloom 176B 采用
  • 存储:相对偏置表 (2L−1)×h(2L-1) \times h,L=512,h=12L=512, h=12 仅约 12K 参数

YaRN / LongRoPE:推理时对 RoPE 频率做插值或分段,128K 模型常用;属于工程外推技巧,原理仍基于相对旋转。

常见误区

  1. RoPE 是新增 embedding 表:否;在 Q/K 上旋转,与 token embedding 相加无关(LLaMA 无绝对位置 embedding)。
  2. ALiBi 与 causal mask 冲突:ALiBi 常与因果 mask 叠加,远距离额外惩罚。
  3. 一种方案通吃:预训练长度、微调数据、推理长度需一起设计;外推是活跃研究领域。

小结

位置编码从绝对 → 相对 → RoPE/ALiBi,服务于更长 context 与更好外推。LLaMA 系用 RoPE(dk=128d_k=128,32 头);T5 用相对偏置。下一篇:LayerNorm 放残差前还是后。

下一篇:Pre-Norm 与 Post-Norm

本页目录