Skip to content
🔗 分享本题
查看我的学习进度 →

位置编码对比动漫知识图:RoPE通过旋转矩阵把相对位置信息注入QK内积,ALiBi则在Attention score上直接加线性衰减偏置,前者依赖训练时的长度后者天然外推到更长序列

🧠 图解记忆:RoPE是用旋转让位置变成向量的一部分,ALiBi是直接给分数贴衰减标签。

ALiBi (Attention with Linear Biases) = 一种简单而有效的绝对位置编码方法,直接在 Attention Score 上加一个与位置距离成比例的负向偏置项。

RoPE 回顾(已有的 Q35)

Rotary Positional Embedding:
  - 将 Q 和 K 分别乘上一个旋转矩阵 R(θᵢ),旋转角度 θᵢ 依赖于位置 i
  - 计算 QK^T 时,旋转自然转化为两个位置之间的相对位置信息
  - 优势:天然建模相对位置,已在训练序列长度范围内表现优秀
  - 劣势:超出训练长度的外推能力有限

ALiBi 的设计思想

核心 idea:不在 embedding 层加位置信息,而是在 Attention Score 层面直接加偏置

公式:Attention(i, j) = Softmax( Q_i K_j^T / √d + b_i )

其中 b_i = -m × |i - j|
  m 是斜率系数(每个 attention head 有不同的 m)
  |i - j| 是位置之间的距离
  越远的 token,score 越小(施加负向偏置)

注意:这个偏置是固定的(训练无关),不经过梯度更新!

ALiBi vs RoPE 对比

维度RoPEALiBi
位置编码方式旋转矩阵作用于 Q/K 向量线性偏置直接加到 Attention Score
是否 learnable✅ 是(嵌入网络的一部分)❌ 否(固定的斜率参数)
外推能力中等(受训练长度限制)⭐ 强(天然适合外推)
实现复杂度中等(需要特殊的 rotary kernel)极低(一行代码即可)
代表的模型LLaMA, Mistral, Qwen, GemmaBigScience BLOOM, Meena
与训练长度的关系需要针对目标长度训练无需调整,直接用

ALiBi 的外推优势详解

RoPE 的问题:
  训练时在 4K 长度上学习的旋转模式,到了 8K 或 32K 可能不work
  虽然有一些改进(NTK-aware scaling、Pi-Scale 等),但本质上是 heuristic

ALiBi 的优势:
  线性衰减的模式在所有长度上都一致——没有"外推"的概念
  因为偏置是固定的数学函数:b_i = -m × distance
  
  实际验证:
  - BLOOM 训练时最大长度 2K,测试时可以很好地外推到 8K+
  - 2025 年的工作(如 RoFormer-Gen、YaRN)都在尝试结合 RoPE 的准确性和 ALiBi 的外推性

Hybrid 趋势(2025-2026)

研究发现:RoPE 的精度高 + ALiBi 的外推好 = 最好的组合
代表性做法:
  1. RoFormer++ : RoPE + ALiBi 联合使用
  2. YaRN (Yet Another RoPE tuning) : 先用 NTK-aware scaling 修改 RoPE,再用 ALiBi-style bias 增强外推
  3. 部分模型采用 "基础 RoPE + 可选 ALiBi head" 的双轨架构

工程实践:
  - 如果只做常规训练(已知最大长度)→ RoPE 就够了
  - 如果需要极致长文本外推 → 优先考虑 RoPE + 插值技巧,或在预算允许时考虑 Hybrid

面试高频追问

  • ALiBi 为什么不学?为什么固定斜率反而更好? ALiBi 的斜率是通过 validation 搜索得到的固定值。研究表明,固定的线性衰减恰好匹配了人类语言中"近处相关性强、远处相关性弱"的自然规律, learned 的位置编码反而可能在推理时学到不适合外推的模式。

  • FlashAttention 兼容 ALiBi 吗? 原生 FlashAttention 不直接支持 ALiBi(因为它假设 Attention 是纯注意力形式)。但 FlashInfer 等新一代后端已经实现了带 ALiBi 偏置的高效 Attention kernel。

面试话术:

"ALiBi 和 RoPE 都是解决 Transformer '看不到位置' 问题的方案,但路子完全不同。RoPE 把位置信息揉进向量本身(用旋转变换),优点是训练时表达力强,缺点是换长度时要微调。ALiBi 则另辟蹊径——直接在 Attention Score 上加一个线性衰减的偏置,相当于告诉模型'离你越远的词影响力越小'。这个规则完全不随长度变化,所以外推能力极强。业界趋势是两者结合:RoPE 负责训练时的表达能力,ALiBi 负责推理时的外推鲁棒性。"