← 返回题库
第 151 题 · LLM 基础 · 中等

ALiBi 如何用线性偏置表示位置并外推长度?

岗位专项 这代表什么?
✓ 资料核验 来源说明:公开面经题库主题;公司归属未独立核验,技术答案依据原论文或官方文档整理
ALiBi位置编码长上下文
评论与补充 ↓
口述训练

先用自己的话答,再看参考说法

60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。

别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。

面试时怎么答

ALiBi 回答到公式层就够:在注意力 logit 上加入与相对距离成线性的负偏置,不同 Head 使用不同斜率。它没有显式位置 embedding,长度变化时偏置仍能直接计算,因此比固定位置表更容易外推。不要把“能计算更长”说成“长上下文质量必然稳定”,近邻偏好和训练长度外退化是主要边界。

可以这样答:

ALiBi 不给输入添加位置向量,而是在每个注意力 Head 的 logit 上减去与 Query、Key 相对距离成正比的偏置:距离越远,惩罚越大,不同 Head 使用不同斜率。推理到更长序列时,这个偏置仍可按距离直接计算,所以具备长度外推能力。但可计算不等于质量不降,它的近邻偏好和训练外长度仍需实际验证。

核心回答

ALiBi 不把位置向量加到 token 表示上,而是直接给 Attention Score 加一个随距离增大的负偏置。对因果注意力的第 \(h\) 个头,可写成 \(s_{ij}^{(h)}=q_i k_j^\top/\sqrt{d_k}-m_h(i-j)\),其中 \(j\le i\),\(m_h>0\) 是该头的固定斜率。越远的历史 token 默认受到越大的惩罚,不同头用不同斜率形成不同距离尺度。

因为偏置是相对距离的函数,不依赖训练时某个固定长度的位置表,模型可以直接接受比训练序列更长的输入。这里的“外推”是更合适的结构归纳偏置,不保证长度任意增大都保持原质量;内容分布、训练长度和模型容量仍会限制效果。

展开说明

标准 Attention 先算内容相关分数 \(QK^\top/\sqrt{d_k}\),ALiBi 在 Softmax 前加入距离矩阵。因果 Mask 仍负责禁止访问未来位置,二者职责不同:Mask 给非法位置负无穷,ALiBi 只对合法历史位置施加有限惩罚。论文按几何规律为多个 Head 选择斜率,使一部分头关注局部、另一部分头衰减得更慢。

与绝对位置 Embedding 相比,ALiBi 没有最大位置表;与 RoPE 相比,它不旋转 Q/K,而是修改分数。ALiBi 的 K/V Cache 可以保存未加位置偏置的 K/V,查询时根据当前 query 与缓存 key 的位置差生成偏置。它的近期偏好对某些任务有利,但需要精确远距离引用的任务也可能受衰减先验影响。

工程实践

扩长上下文时要一起验证困惑度、长距离检索、不同位置的准确率和显存,而不能只看模型能否启动。实现应检查增量 Decode 时位置差的符号、缓存偏移和滑动窗口后的绝对位置;这些地方出错往往不会报异常,却会系统性压低注意力。迁移已有模型时,直接把原位置方案替换成 ALiBi 通常需要再训练或继续训练来适配。

常见追问

  1. ALiBi 与 Causal Mask 是一回事吗? 不是。Causal Mask 完全屏蔽未来 token,ALiBi 在仍可访问的历史 token 之间加入距离偏好。
  2. 不同 Head 为什么使用不同斜率? 不同斜率让各头拥有从近邻到较长程的多尺度感受偏好,避免所有头都以相同速度忽略远处信息。
  3. ALiBi 能保证无限长度外推吗? 不能。它去除了固定位置表这一障碍,但训练分布、注意力稀释和模型能力仍会让超长输入质量下降。

一句话复习

ALiBi 在 Attention logits 上减去与相对距离成正比的 Head-specific 偏置,用距离归纳偏置替代显式位置向量。

参考资料

无需账号 · 原地交流

评论与补充

评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。

正在加载评论…