本文目录导读:

ALiBi 的全称是 Attention with Linear Biases(线性偏置注意力),是一种用于位置编码的方法。
它最初由一篇名为《Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation》的论文提出,旨在解决 Transformer 模型在推理时遇到比训练时更长的序列时性能下降(即长度外推能力差)的问题。
核心思想:一句话概括
ALiBi 不在词嵌入(Embedding)上添加位置信息,而是在注意力分数计算完成后,直接根据 Query 和 Key 的相对距离,给注意力分数加上一个负的线性偏置。
它是如何工作的?(Step-by-Step)
标准的 Transformer 中,自注意力分数(Softmax 之前)的计算公式是:
Attention_Scores = Q * K^T
而 ALiBi 的公式是:
Attention_Scores = Q * K^T + m * (-|i - j|)
- i 和 j:分别代表 Query 和 Key 的位置索引。
- -|i - j|:表示 Query 和 Key 之间的相对距离(负值),距离越远,这个值越小(负得越多)。
- m:一个固定(不可学习)的预定义斜率(Slope),不同注意力头(Head)的
m值不同,头越靠后,m越大。
举例说明
假设有一个长度为 3 的序列,当前计算的 Query 在位置 2,Key 在位置 0。
- 相对距离 = |2 - 0| = 2
- 偏置项 = m * (-2)
这个偏置项会直接加到 Q2 * K0^T 这个分数上,由于偏置是负的,它会给远距离的 Key 的注意力分数打一个额外的折扣,距离越近,折扣越少;距离越远,折扣越狠。
各头的 m 值是怎么设置的?
m是一个超参数,其值遵循一个几何级数(Geometric Sequence)。- 公式:
m = 2^(-8 * h / H),h是当前头的索引(从0开始),H是头的总数。 - 效果:第一个注意力头(h=0)的
m值很小,几乎不惩罚远处的位置,擅长捕捉全局信息,最后一个注意力头(h=H-1)的m值很大,强烈惩罚远处的 Key,迫使它只关注局部邻居。
ALiBi 的三大核心优势
-
强大的长度外推能力:
- 这是它的杀手锏。 用 512 长度的序列训练,在推理时可以直接无缝支持 1024、2048 甚至更长的输入,且性能下降极小。
- 相比之下,传统的绝对位置编码(如 Sinusoidal)或可学习位置编码(如 BERT)在遇到更长序列时,性能会断崖式下跌。
- 原因:ALiBi 只依赖相对距离,而“远距离的信息对当前位置价值递减”这个关系无论序列多长都成立。
-
无需额外参数:
m值是固定的,不需要像可学习位置编码那样占用模型参数量。
-
简单的实现:
只需在现有注意力计算代码的最后一步加上一个预计算的偏置矩阵即可,实现非常干净、高效。
局限性
- 归纳偏置过强:其假设是“距离越远,影响越小”,在英语这种语言中,这个假设基本正确,但在某些任务(如编程、数学推理)中,远距离的变量引用至关重要,ALiBi 的强惩罚可能有害。
- 不是万能的:相比之下,RoPE(旋转位置编码) 虽然在某些场景下外推能力稍弱于 ALiBi,但其具有更好的全局表达能力,因此在更大的基础模型(如 LLaMA)中,RoPE 通常更受欢迎。
总结对比表
| 特性 | 传统位置编码 (如 Sinusoidal, 可学习) | ALiBi |
|---|---|---|
| 添加位置方式 | 加到输入 Embedding 上 | 加到 Attention Score 上 |
| 位置信息形式 | 绝对位置或学习到的向量 | 固定、非学习的线性偏置 |
| 长度外推能力 | 弱 (无法处理比训练时更长的序列) | 强 (Train Short, Test Long) |
| 依赖关系 | 依赖于相对距离 | 本质上就是相对距离的线性函数 |
| 复杂度 | 一般 | 更低 (不用额外 Embedding 计算) |
实际应用
- BlenderBot:Meta 的开放域聊天机器人系列(BlenderBot 1 和 2)使用了 ALiBi。
- M2M-100:Meta 的百种语言翻译模型使用了类似方案。
- 推理优化:在需要处理超长上下文的场景(如对话、长文档摘要)中,ALiBi 是更安全、更简单的选择。
一句话总结:ALiBi 通过在注意力分数上直接施加一个随距离线性增长的负偏置,用这种简单的“近处重视、远处忽略”的归纳偏置,换来了强大的长度外推能力。