🧠 图解记忆:不在embedding加位置信息,直接在attention score上加距离罚分。
💡 答案要点
核心思想:不用位置编码,用线性衰减代替
Sinusoidal/Learned PE把位置加法注入token;RoPE旋转Q/K让dot携带相对位置;ALiBi直接修改注意力分数。
ALiBi注意力:softmax(QK^T/sqrt(d) + m_h * |pos_i - pos_j|) m_h < 0是每个head的负斜率系数(最近的头衰减最陡看最近邻居,远的头衰减最缓看远距离)。
公式:m_h = -8^
为什么能零样本外推? Bias只依赖RELATIVE position(pos_i-pos_j),不依赖ABSOLUTE position!训练时pos在[train_len]范围,推理时在[infer_len]范围,任意两个token间的relative distance和bias值都保持不变→不需要微调就能处理更长序列。
| 特性 | ALiBi | RoPE(+NTK/YaRN) | Sinusoidal | Learned |
|---|---|---|---|---|
| Zero-shot外推 | 原生支持 | 需缩放技巧 | 差 | 无定义 |
| 微调后外推极限 | ~8-16x | ~32x+(YaRN) | ~2x | N/A |
| 额外参数 | 0 | 0 | 0 | 需学习 |
| 短上下文 | 略弱于RoPE | 优秀 | 中等 | 优秀 |
| 代表模型 | MPT,BLOOM | LLaMA,Mistral | 原始Transformer | BERT |
| 复杂度 | 极低 | 中 | 低 | 低 |
局限性:缺乏绝对位置感知、短上下文略逊RoPE、强locality prior对跨极远距离精确对齐不利。
面试加分项: 写出斜率公式m_h=-8^{-4h/d}、ROPE+YaRN外推超ALiBi(32x+vs8-16x)
面试话术:
"ALiBi完全不改动token embedding,而是在注意力分数上直接加与距离成正比的负偏置。因为偏置只依赖相对距离而非绝对位置,所以可以直接处理比训练时长更久的序列——zero-shot外推。代价是缺少绝对位置感,短上下文略逊RoPE。2026年更多长上下文模型选了RoPE+YaRN组合获得更强外推能力。"