想象你走进一家剧场。门口没有发“第几排第几座”的号码牌,只立着一块告示牌:离舞台越近,看得越清楚;离舞台越远,清晰度按距离线性打折。你不需要背任何座位号,只要记住“越远越模糊”这一条规则,就能在任何一座从未去过的剧场里,立刻预判自己的视野。ALiBi(Attention with Linear Biases)正是这样一块告示牌——它不给每个词发“座位号”式的向量,而是在注意力打分时直接说:两个词离得越远,关注度就按线性比例扣减。于是,模型在训练时见过的长度(比如 512 个字)之外,依然能平稳判断更远位置的关注度该打几分,实现了不用学习任何参数的长度外推。这篇短文就带你在剧场里逛一圈,把 ALiBi 的设计、公式、实现与边界一次看明白。

岗位关联

掌握 ALiBi,等于握住“低成本支持长上下文”这把工程刚需的钥匙——无论做大模型长文本推理,还是推荐系统里的长行为序列建模,都能直接落地提效。

目录
  1. 可视化演示
  2. 位置编码背景:每个词为什么需要座位号
  3. 核心思想原理:距离越远,注意力越打折
  4. 数学公式拆解:从距离矩阵到几何斜率
  5. 对比正弦编码:号码牌与打折告示的较量
  6. 长文本应用:训练窗外仍是主场
  7. 工程实现要点:让一张偏置表落地
  8. 局限与发展:固定规则的边界与进化
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

位置编码背景:每个词为什么需要座位号

剧场里如果观众可以随意换座,剧情顺序就全乱了——语言也一样。Transformer 的自注意力机制本质是“词和词两两打招呼”,如果没有任何位置标记,“我打你”和“你打我”在模型眼里完全一样。这就是无位置编码问题:词袋一样的排列,让句子的灵魂——顺序——彻底丢失。

于是工程师发明了位置编码,其中最经典的便是正弦位置编码。它像一套给每个座位发固定号码牌的系统:偶数维度用正弦函数,奇数维度用余弦函数,号码牌本身是一串向量,直接加到词向量上,告诉模型“我在第几排第几座”。

这套号码牌系统有两个隐性代价。第一,模型必须“学会读号”,号码牌取值和位置的关系是靠训练数据学出来的;第二,号码牌的取值与训练长度强相关——模型只在最长 512 个座位的剧场里彩排过,突然把它放进 4096 个座位的剧场,后排的号码牌全是“生面孔”,注意力分数立刻失真。这正是训练长度限制与长度外推挑战的根源。

号码牌系统在彩排过的剧场里表现良好,但一换更大的剧场就露怯——因为后排的号牌从没见过。这也正是 ALiBi 要解决的问题。

PE(pos,2i)=sin⁡(pos100002i/d),PE(pos,2i+1)=cos⁡(pos100002i/d)\text{PE}_{(pos,2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right), \quad \text{PE}_{(pos,2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right)
正弦位置编码用 sin/cos 给每个绝对位置生成一串“号码向量”,位置越远,号牌组合越陌生。
  1. 位置下标 pos当前词在句子里的第几个位置,从 0 开始数。它是这个公式唯一的“输入变量”,决定了号码牌的取值。
    pospos
  2. 维度下标 2i 与 2i+1位置编码向量有 d 维,偶数维套正弦、奇数维套余弦,一正一余交错排布,共同拼出完整的号码牌。
    PE(pos,2i),PE(pos,2i+1)\text{PE}_{(pos,2i)}, \quad \text{PE}_{(pos,2i+1)}
  3. 波长缩放 10000^{2i/d}分母随维度增大而增大,让低维度对应高频变化、高维度对应低频变化,类似“小刻度配短波长、大刻度配长波长”。
    pos100002i/d\frac{pos}{10000^{2i/d}}
  4. 叠加到词向量生成的位置向量与词嵌入相加,把“我在第几排”的信息送入模型。
    xpos=epos+ppos\mathbf{x}_{pos} = \mathbf{e}_{pos} + \mathbf{p}_{pos}

核心思想原理:距离越远,注意力越打折

ALiBi 的灵感完全不同:它不给每个座位发号码牌,只立一块告示牌——“视野随距离线性衰减”。观众不需要知道自己是几排几座,只需要知道自己和舞台隔了多少排,就能立刻算出自己该受到多少关注。

在 Transformer 里,“看舞台”就是 query 与 key 两两打分;“距离”就是两个 token 在序列中的位置差 |i - j|。ALiBi 直接在打分结果上减掉一个与距离成正比的值,让“距离即偏置”这条规则生效:近的照常亲近,远的逐排扣分。

具体来说,注意力分数先照常计算缩放点积 QK^T/√d,然后加上偏置矩阵 m·B。矩阵 B 第 i 行第 j 列的值就是负的距离 -|i-j|;m 是控制“打折力度”的斜率。这个偏置没有任何可学习参数,也不参与反向传播更新——它是一条印死的物理规则,就像告示牌上的字是印刷体。

告示牌不需要训练,在任何一座剧场都成立——这就是 ALiBi 能够外推的根源:规则与座位号无关,只与“隔了几排”有关。

Attention(Q,K,V)=softmax(QK⊤d+m⋅B)V,Bi,j=−∣i−j∣\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d}} + m \cdot B\right)V, \qquad B_{i,j} = -|i - j|
ALiBi 把“距离越远越不关注”以固定偏置的形式直接写进注意力公式,零参数、零训练改动。
  1. 注意力分数基底 QK^T/√d先按标准缩放点积算出每对 token 的基础相关性,除以 √d 防止分数过大导致 softmax 饱和。
    QK⊤d\frac{Q K^\top}{\sqrt{d}}
  2. 距离矩阵 B_{i,j} = -|i-j|对角线为 0(自己看自己不打折),离得越远负得越多,构成一张对称的“距离阶梯表”。
    Bi,j=−∣i−j∣B_{i,j} = -|i - j|
  3. 斜率 m 缩放打折力度用 m 乘以距离矩阵,控制每远一排扣多少分;m 越大,注意力越集中在近邻。
    m⋅Bi,j=−m ∣i−j∣m \cdot B_{i,j} = -m\,|i - j|
  4. softmax 归一化加完偏置再过 softmax,远距离 token 因分数被压低而获得极小权重,近邻则拿到主要权重。
    softmax(QK⊤d+mB)\text{softmax}\left(\frac{QK^\top}{\sqrt{d}} + mB\right)

数学公式拆解:从距离矩阵到几何斜率

剧场不止一层看台,每一层的打折规则都不同:一楼正厅几乎不打折,二楼开始逐层降价,三楼越高越便宜。ALiBi 的多头注意力就是这样的多层看台,每个头各管一种“视力”。

为了让每层的打折力度既有分工又不失协调,论文给每个注意力头分配了一个独立的斜率 m_j,并且不是随便定的,而是按几何序列整齐排布:2^{-1}、2^{-2}、2^{-3}……逐头递减。

这里有个反直觉的点值得注意:第一个头的斜率最大(8 头时为 1/2),衰减最猛,专职盯紧近邻;越往后的头斜率越小,最后一个头几乎不衰减,负责“远眺”全局。近处有专精、远处有兜底,这种多头分工让模型既保留局部精确性,又不丧失全局视野。

楼层越多,每层的票价梯度越平滑——多头数下的 ALiBi 正是这样一层层细腻地铺开,让“近处清楚、远处隐约”的视野既自然又可控。

mj=2−8jh,j=1,2,…,hm_j = 2^{-\frac{8j}{h}}, \qquad j = 1, 2, \dots, h
每个注意力头的斜率由头索引 h 唯一确定:第 j 个头拿 2 的 -8j/h 次方,构成等比数列。
  1. 头索引 j从 1 到 h 逐头编号,每个头拿到一个互不相同的斜率,形成“一层看台一个折扣”。
    j=1,2,…,hj = 1, 2, \dots, h
  2. 指数 -8j/h指数随 j 线性变小,斜率随 j 指数衰减,因此相邻头的斜率之比恒定,构成几何序列。
    −8jh-\frac{8j}{h}
  3. 端头取值当 j=1 时斜率最大,专注局部;当 j=h 时斜率趋向 2^{-8} ≈ 0.0039,几乎不衰减,专注全局。
    m1=2−8h,mh=2−8m_1 = 2^{-\frac{8}{h}}, \qquad m_h = 2^{-8}
  4. 与头数自适应头数 h 越大,相邻头斜率之比 2^{8/h} 越接近 1,看台分层越细腻。
    mjmj+1=2 8/h\frac{m_j}{m_{j+1}} = 2^{\,8/h}

对比正弦编码:号码牌与打折告示的较量

正弦编码是“号码牌派”:给每个座位发一个独一无二的牌,模型必须记住牌面含义;ALiBi 是“票价规则派”:不发牌,只有一条打折规则,见距离就扣分。

号码牌的致命弱点在于,训练时只发到 512 排,遇到 4096 排的牌面全是“生词”;而打折规则不看排号,只看“隔了几排”,这个相对距离在任何长度下都是同一套模式。于是外推能力出现了显著差异:ALiBi 在超出训练长度时困惑度依然平稳,正弦或可学习位置编码则明显恶化。

此外还有两笔账:参数开销上,ALiBi 零新增参数,而位置嵌入表随窗口扩大不断膨胀;实现复杂度上,ALiBi 只是对距离矩阵做一次固定乘法再叠加到分数上,几乎免费。从概率视角看,softmax 之后的注意力权重随距离指数衰减,等价于模型内建了“越远越不重要”的先验,这正是它长度泛化稳的深层原因。

拿着号码牌的观众换一座更大的剧场就迷路,拿着规则的观众到哪儿都门儿清——这就是 ALiBi 对比正弦编码最本质的胜利。

P(tokenj∣tokeni)=exp⁡(qikj⊤d−m∣i−j∣)∑lexp⁡(qikl⊤d−m∣i−l∣)P(\text{token}_j \mid \text{token}_i) = \frac{\exp\left(\frac{q_i k_j^\top}{\sqrt{d}} - m|i-j|\right)}{\sum_{l} \exp\left(\frac{q_i k_l^\top}{\sqrt{d}} - m|i-l|\right)}
从单个查询 i 的视角看,对位置 j 的关注概率由“相关性加分、距离扣分”共同决定,距离只以差值形式出现。
  1. 分子 exp(分数 - m|i-j|)相关性分数被负偏置拉低,距离越远,指数上扣得越多,权重越小。
    exp⁡(qikj⊤d−m∣i−j∣)\exp\left(\frac{q_i k_j^\top}{\sqrt{d}} - m|i-j|\right)
  2. 分母全位置求和对当前查询 i 能注意到的所有 key 位置 l 做归一化,保证概率和为 1。
    ∑lexp⁡(qikl⊤d−m∣i−l∣)\sum_{l} \exp\left(\frac{q_i k_l^\top}{\sqrt{d}} - m|i-l|\right)
  3. 只依赖相对距离公式里只出现差 |i-j|,不出现绝对位置 i 或 j,因此训练长度之外的“新座位”也遵守完全相同的规则。
    ∣i−j∣ 而非 i,j|i-j| \ \text{而非} \ i, j

长文本应用:训练窗外仍是主场

告示牌规则让剧场可以无限扩建——只要打折规则不变,加座不加乱。ALiBi 把这一特性带进了真实的大模型应用。

在推理阶段,每生成一个新 token,ALiBi 只需要知道它与历史 token 的距离,于是偏置向量可以逐 token 增量扩展,天然适配流式生成,不用像绝对位置编码那样重新计算或查询整个号码表。偏置向量就是新 token 回望历史的一串“距离账单”:

三个典型场景最能体现这套机制的价值。一是长文本生成:摘要、续写、代码生成在 1K 窗口训练、4K 甚至更大窗口推理时保持稳定。二是推荐系统:用户行为序列本质是“带时间距离的 item 序列”,近期点击当近邻、历史点击当远邻,ALiBi 让排序模型可以直接吞下几十天的行为日志而不必截断。三是训练收益:去掉位置嵌入的冗余参数,同等算力可以训练更长的上下文,性价比明显更高。

剧场每加一排座位,告示牌的折扣规则原样延长——这就是流式长文本里的从容与淡定。

b(L)=[−m(L−1), −m(L−2), …, −m, 0]\mathbf{b}^{(L)} = \left[-m(L-1),\ -m(L-2),\ \dots,\ -m,\ 0\right]
生成第 L 个 token 时,偏置向量从最远的 -(L-1) 一路排到自身的 0,随生成逐步加长。
  1. 向量长度随 L 增长每生成一个新 token,偏置向量就多一个元素,从最远历史一直排到当前自身。
    b(L)∈RL\mathbf{b}^{(L)} \in \mathbb{R}^{L}
  2. 末位恒为 0最新 token 与自己的距离为 0,不扣分,保证“关注当下”是绝对优先级。
    −m⋅(L−L)=0-m \cdot (L - L) = 0
  3. 最远项 -m(L-1)序列首位的 token 距离当前最远,被扣最多,但仍按同一条线性规则计算,无需任何新参数。
    −m⋅(L−1)-m \cdot (L - 1)

工程实现要点:让一张偏置表落地

打折规则落实到操作上,就是一张事先印好的“票价距离表”:查表、扣费、完事。工程上 ALiBi 的实现同样极简,核心就三步。

第一步,用向量化方式一次性构造相对距离矩阵 |i-j|;第二步,每个头乘上自己的斜率并取负,得到形状为 (h, L, L) 的三阶偏置张量;第三步,在 softmax 之前把这张表广播加到 QK^T/√d 的结果上。由于这张表与输入内容完全无关,可以在模型初始化时算好并缓存,推理时零额外计算,只相当于一次矩阵加法。

它和因果掩码的合作也干干净净:掩码先把未来位置设为负无穷,偏置在掩码之后叠加,两者各司其职、互不干扰。计算开销极低、可学习参数为零,正是 ALiBi 能被各种框架快速集成的根本原因。

查表扣费一次完成,连“学习怎么打折”的功夫都省了——这正是 ALiBi 在工程上人见人爱的理由。

B(h)=−mh⋅(012⋯L−1101⋯L−2210⋯L−3⋮⋮⋮⋱⋮L−1L−2L−3⋯0)B^{(h)} = -m_h \cdot \begin{pmatrix}0 & 1 & 2 & \cdots & L-1 \\1 & 0 & 1 & \cdots & L-2 \\2 & 1 & 0 & \cdots & L-3 \\\vdots & \vdots & \vdots & \ddots & \vdots \\L-1 & L-2 & L-3 & \cdots & 0\end{pmatrix}
每个头都有一张 L×L 的三角阶梯表:对角线为 0,越往角落负得越多,整体是距离的负镜像。
  1. 距离矩阵元素 |i-j|矩阵第 i 行第 j 列的值就是两个 token 的距离,对角恒为 0。
    ∣i−j∣\lvert i - j \rvert
  2. 取负并乘斜率距离全部取负再乘以本头斜率,形成负偏置,离得越远扣得越多。
    −mh∣i−j∣-m_h \lvert i - j \rvert
  3. 三阶张量形状 (h, L, L)h 个头各有一张 L×L 表,堆叠起来,对多头分数做广播相加。
    [ B(1); B(2); … ; B(h) ]\left[\,B^{(1)};\ B^{(2)};\ \dots;\ B^{(h)}\,\right]

局限与发展:固定规则的边界与进化

告示牌虽好,但它毕竟“一刀切”:不是每个座位区都该按同一坡度打折,有些演出观众反而要坐后排看全景。ALiBi 的固定衰减假设正是它的软肋——所有任务都被强加了“近邻优先”的先验。

当任务需要长程依赖时,这个假设可能帮倒忙。比如段落级的指代消解、跨段落的逻辑推理,关键信息往往隔得很远,过于激进的线性衰减会把这些必要信号压得过低,导致长程依赖方面的表现受限。

因此研究社区提出了若干变体:最直接的一种是把斜率从固定值改成可学习参数,用 σ(w_h) 做光滑参数化,让模型在训练中自己找到每层每头的“最佳打折力度”;也有工作把 ALiBi 与 RoPE 等相对位置编码组合,互补长短。但即便改进层出不穷,ALiBi 依旧凭借“零参数、零训练改动、立竿见影”被奉为经典基线,新模型做长上下文对比时几乎都会请它出战。

规则可以微调,但“距离越远越打折”的剧场逻辑,依然是长上下文时代最朴素也最可靠的底色。

mh=σ(wh)=11+e−whm_h = \sigma(w_h) = \frac{1}{1 + e^{-w_h}}
可学习斜率变体:用一个 sigmoid 把自由标量 w_h 压到 (0,1),既保持衰减为正,又让打折力度随任务自适应。
  1. 可学习标量 w_h用梯度下降直接优化每个头的未约束斜率参数,训练中自动寻找最优打折力度。
    whw_h
  2. sigmoid 映射 σσ 把任意实数压到 (0,1),保证斜率始终为正、不破坏“远距离衰减”的基本方向。
    σ(wh)=11+e−wh\sigma(w_h) = \frac{1}{1 + e^{-w_h}}
  3. 形态不变即便斜率可学习,偏置仍然加在注意力分数上,核心机制与 ALiBi 一脉相承。
    −mh∣i−j∣-m_h |i - j|

AI 应用场景

推荐系统长行为序列建模

阶段:召回/排序阶段的用户行为序列特征建模

解决的问题:用户行为日志按时间排序成一条很长的 item 序列,传统方案只能截断取最近 512 个,早期兴趣被白白丢弃;正弦位置编码一旦超出训练窗口就严重失真。ALiBi 让模型对任意长度的行为历史都能保持“近期强、远期弱”的平滑关注,且天然支持窗口外推。

具体案例:某短视频 App 用 30 天行为序列(约 8000 个 item)做精排。之前只能截断到 512,引入 ALiBi 后完整序列直接入模,线上点击率提升约 1.2%,凌晨的“冷门旧兴趣”也能被重新召回。

大模型长文本推理与流式生成

阶段:大模型推理部署与生成服务优化

解决的问题:模型训练窗口只有 2048,用户却要求对 8000 token 的文档做摘要,正弦编码外推掉点严重。ALiBi 的位置偏置只看相对距离,推理时逐 token 追加偏置向量,无需重算位置编码,长文本输出依然稳定。

具体案例:智能客服把一周的聊天记录(约 6000 token)一次性交给模型生成服务总结,远距离的早期对话仍能被适度关注,总结完整不丢头。

流式逐词增量推理

阶段:生成阶段的 KV 缓存与位置增量管理

解决的问题:流式生成中每来一个新 token 都要更新位置信息,绝对位置编码需维护整张位置表,ALiBi 只需在旧偏置向量尾部追加一个新值,O(1) 完成位置更新,与 KV 缓存机制天然契合。

具体案例:实时语音转写与字幕生成场景中,模型按词流式输出,ALiBi 的增量偏置让长对话的越往后越不漂移。

Python 演示

python46 行
import numpy as np  def softmax(x):    x = x - np.max(x, axis=-1, keepdims=True)    e = np.exp(x)    return e / np.sum(e, axis=-1, keepdims=True)  def build_slopes(num_heads):    # 几何序列 2^-1, 2^-2, ..., 2^-h    return np.power(2.0, -np.arange(1, num_heads + 1))  def build_alibi_bias(seq_len, num_heads):    # 相对距离矩阵    pos = np.arange(seq_len)    rel_dist = np.abs(pos.reshape(-1, 1) - pos.reshape(1, -1))    slopes = build_slopes(num_heads)    # 形状 (heads, seq_len, seq_len)    return -slopes.reshape(-1, 1, 1) * rel_dist.reshape(1, seq_len, seq_len)  def attention_with_alibi(q, k, v, bias, dk):    scores = q @ k.T / np.sqrt(dk)    scores = scores + bias    weights = softmax(scores)    return weights @ v  def main():    seq_len, num_heads, dk = 8, 4, 16    rng = np.random.default_rng(42)    q = rng.normal(size=(seq_len, dk))    k = rng.normal(size=(seq_len, dk))    # 值向量设为位置序号, 输出值即可解释为"注意力聚焦的位置"    v = np.arange(seq_len).reshape(seq_len, 1)    bias = build_alibi_bias(seq_len, num_heads)    out = attention_with_alibi(q, k, v, bias[0], dk)    print("查询 5 的输出值:", np.round(out[5, 0], 2))    print("最近邻位置 5 应获得最大权重")    print("头 1 偏置矩阵首行:", np.round(bias[0][0], 2))  if __name__ == "__main__":    main()
目的:用 NumPy 从零实现 ALiBi 的斜率构造、偏置矩阵生成与注意力叠加,并验证“近邻优先”的局部性。
  1. rel_dist = np.abs(pos.reshape(-1, 1) - pos.reshape(1, -1))用广播机制一次性算出所有词对的距离矩阵,对角为 0。
  2. return -slopes.reshape(-1, 1, 1) * rel_dist.reshape(1, seq_len, seq_len)每个头乘上自己的斜率并取负,得到 (h, L, L) 的偏置张量。
  3. scores = q @ k.T / np.sqrt(dk)标准的缩放点积注意力分数,是偏置注入前的“原始打分”。
  4. scores = scores + bias在 softmax 之前把线性偏置直接加到分数上,这就是 ALiBi 的全部魔法。
  5. weights = softmax(scores)归一化后,远距离 token 权重被压低,近邻获得主要关注。
  6. bias[0][0]第一行的偏置依次是 0, -0.5, -1.0, ……,直观展示“距离翻倍,扣分翻倍”。

常见误区

误区“ALiBi 和可学习位置编码一样,也是训练出一组位置向量,只是把这组向量加到了注意力分数上而不是词向量上。”

正解ALiBi 的偏置矩阵由两条固定规则直接算出:相对距离 |i-j| 和几何序列斜率 2^{-8j/h}。全程没有任何可学习参数,也不参与梯度更新。它更像剧场门口印死的打折告示,而不是售票员发出去、需要观众背下来的号码牌。

为何常见:主流位置编码(正弦、可学习嵌入)都有参数,大脑默认“位置方案 = 参数”,看到 ALiBi 也产出一个矩阵,就误以为它也是练出来的。

误区“位置信息不都是加到词向量上的吗?ALiBi 应该也是把偏置向量加到每个词的嵌入上,只是换个形式。”

正解ALiBi 不走 embedding 通道。它作用在 QK^T/√d 算出的分数矩阵上,也就是 softmax 之前那一刻,直接做一次矩阵加法。打个比方:它调节的是“关注的音量旋钮”,而不是改写“台词内容”本身。向量级与分数级是两条完全不同的通道。

为何常见:教科书上讲位置编码几乎都以“加到 embedding 上”为例,容易把所有位置方案都归入同一类。

误区“既然 m 控制衰减力度,那每个数据集、每个模型都要重新调这个超参数,比如用网格搜索找最佳斜率。”

正解论文给的是封闭解:第 j 个头的斜率固定为 2^{-8j/h},由头数 h 唯一确定,不随任务、数据集变化,也无需搜索。不同头自动形成“近处专精、远处兜底”的分工,像剧场的阶梯坡度由建筑师统一设计好,不用每场演出重调。

为何常见:看到 m 像一个可调系数就默认要调参,忽略了它其实是头索引的确定函数——这正是 ALiBi“零超参”的优雅之处。

误区“ALiBi 支持长度外推,那生成 100 万 token 也没问题,完全不用担心上下文长度。”

正解ALiBi 解决了“位置模式陌生”这一环,但超长文本还受三大约束:KV 缓存内存随长度线性增长、softmax 数值稳定性下降、线性衰减会压制超远距离信息。它能优雅外推到训练长度的数倍,不代表没有上限。

为何常见:“长度外推”四个字太有诱惑力,容易让人忽略注意力机制之外的内存、数值和先验适配等工程瓶颈。

面试题

Q1. ALiBi 将线性偏置注入到哪个环节?

单选题 · easy

  • A.词嵌入向量上面
  • B.注意力分数矩阵上← 正确答案
  • C.输出投影层输出后
  • D.前馈网络输出后面

答案:B。偏置加在 QK^T/√d 得到的分数矩阵上,赶在 softmax 之前。就像剧场告示牌调节的是“音量旋钮”,而不是改台词本身;其余选项都发生在不同的计算阶段。

Q2. 两个 token 距离越远,ALiBi 的偏置与注意力权重如何变化?

单选题 · easy

  • A.偏置越负权重越小← 正确答案
  • B.偏置越正权重越大
  • C.两者都保持不变
  • D.偏置为零权重不变

答案:A。偏置公式为 -m|i-j|,距离越大偏置越负,经过 softmax 后权重越小,体现“越远越打折”的线性衰减。

Q3. ALiBi 各头斜率构成的数列属于哪种类型?

单选题 · mid

  • A.固定等差数列
  • B.等比几何序列← 正确答案
  • C.随机初始化序列
  • D.每头完全相同的常数

答案:B。斜率按 2^{-8j/h} 排列,相邻头之比恒为 2^{8/h},这是典型的等比几何序列,而非等差或随机。

Q4. 相比正弦位置编码,ALiBi 的最大优势是?

单选题 · mid

  • A.参数量明显更大
  • B.更长上下文外推← 正确答案
  • C.训练时间必然更短
  • D.只能支持单向注意力

答案:B。ALiBi 只依赖相对距离,规则不随绝对位置变化,因此训练长度之外依然稳定;正弦编码的位置模式在训练窗口外会失真。

Q5. 对 8 头注意力,ALiBi 第一个头的斜率是多少?

单选题 · mid

  • A.2 的负一次方← 正确答案
  • B.2 的负二次方
  • C.2 的负三次方
  • D.2 的负八次方

答案:A。代入公式 m_1 = 2^{-8×1/8} = 2^{-1} = 0.5,即第一头斜率最大、衰减最猛,专注近邻。

Q6. ALiBi 偏置张量的形状通常是?

单选题 · mid

  • A.长度乘宽度二维
  • B.头数乘层数二维
  • C.头数长度长度三维← 正确答案
  • D.头数乘长度二维

答案:C。每个头各有一张 L×L 的距离表,堆叠成 (h, L, L) 的三阶张量,与多头注意力分数矩阵做广播相加。

Q7. ALiBi 能外推更长序列的根本原因是?

单选题 · hard

  • A.训练了更长的样本
  • B.偏置仅依赖相对距离← 正确答案
  • C.使用了更大的维度
  • D.叠加了正弦周期信号

答案:B。偏置只由差值 |i-j| 决定,不出现绝对位置,因此训练窗外的新位置也遵守同一规则。这不依赖更长样本、更大维度或正弦信号。

Q8. 下列哪些属于 ALiBi 的工程实现步骤?

多选题 · hard

  • A.构造相对距离矩阵← 正确答案
  • B.在 softmax 前加偏置← 正确答案
  • C.全部头共用同一斜率
  • D.偏置矩阵为三阶张量← 正确答案

答案:ABD。实现时要先构造相对距离矩阵,再在 softmax 前叠加偏置,张量形状为 (h, L, L)。C 错误:每个头的斜率来自几何序列,各不相同。

Q9. 关于 ALiBi 的局限性,下列哪些说法正确?

多选题 · hard

  • A.长程依赖时衰减假设欠佳← 正确答案
  • B.远距离信息可能被压制← 正确答案
  • C.必须与 RoPE 联合使用
  • D.无法支持流式逐词推理

答案:AB。固定衰减对长程依赖任务未必最优,且会压掉必要的远距离信号。C 错误:ALiBi 独立成立;D 错误:增量偏置恰恰非常适合流式推理。

Q10. ALiBi 相比正弦位置编码的优势体现在?

多选题 · easy

  • A.对更长文本外推更强← 正确答案
  • B.不需要额外位置参数← 正确答案
  • C.实现只需矩阵加法← 正确答案
  • D.必须配合因果掩码

答案:ABC。ALiBi 外推更强、零新增参数、实现只需一张偏置表做加法。D 错误:因果掩码是自回归模型的需求,与 ALiBi 本身无关。