想象你在一间教室里,同学们正忙着互相传纸条。离你最近的前桌,你递纸条递得最勤;隔了五六排的角落,你基本懒得理他——因为纸条传那么远,要么丢失,要么被老师截获。这种“距离越远、热情越低”的直觉,不需要每人胸前挂号码牌,你只要看一眼他坐多远,心里就有了刻度。 ALiBi(Attention with Linear Biases,线性偏置注意力)位置编码,正是把这种生活直觉搬进了 Transformer。它不往词向量里拼位置号码,而是直接在“注意力打分”环节立规矩:两个词离得越远,分数就被扣得越多,扣多扣少由每个注意力头自己的“冷淡系数”决定。这条简单的规矩,让模型在短文本上训练、长文本上推理——业界称之为“外推性能优异”,还让训练与推理长度不一致时表现依旧稳健。
对 AI 从业者而言,掌握 ALiBi 意味着你多了一把“短训长测”的钥匙:长文本部署成本大幅下降、序列长度变化不再让人提心吊胆,还能和 RoPE 阵营的工程师正面掰手腕时讲出道理。
可视化演示
展示ALiBi位置编码核心机制:偏置模式可视化注意力矩阵中基于距离的线性负偏置(B=-m|d|)与多头部不同斜率分配,外推模式对比ALiBi与RoPE在超出训练长度时的性能差异。
本节配有交互动效(进入视口后自动加载,约 3KB)。
ALiBi线性偏置机制 B=-m|d|: 距离越远偏置越大 多头部不同斜率:多尺度关注 m=2^(-1/2^h) 斜率几何级数递减
位置编码困境
回到那间教室。传纸条的人群里,如果每个人都只埋头写纸条,没人告诉你谁坐前排、谁坐后排,消息就会彻底乱套:你根本无法判断“班长从最后一排传话”和“同桌悄悄提醒”哪个更值得优先对待。Transformer 天生就是这样一所“混乱教室”——它一次性看到所有词,在结构上完全感知不到“你先说、我后说”的先后顺序。
为了让模型理解语序,经典方案是给每个位置发一张“座位号牌”。Transformer 原版用正弦函数生成位置向量(Sinusoidal Positional Encoding),或者干脆把位置号当作可学习参数,直接加在词向量上。这就是“显式位置编码”——词与位置就像学生和自己的号码牌,绑定在一起送进模型。
然而号码牌方案有个隐藏隐患:训练时教室只有 1024 个座位,号码牌最大只发到“1024“;推理时突然来了一间 8192 座的大教室,后 7168 个座位的号牌模型从未见过,自然乱了方寸——这正是著名的”外推难题”。经典注意力公式本身也不关心顺序,只做内容匹配:
所以经典框架下,位置信息必须从外部额外注入——要么加在向量上,要么像我们接下来要讲的 ALiBi 那样,直接在打分环节动手脚。教室的乱,必须用规矩来治。
- 查询矩阵 Q代表“我想找什么信息”的向量集合,每个位置一行。
- 键矩阵 K代表“我能提供什么信息”的向量集合,同样每位置一行。
- 点积打分拿查询和所有键做点积,得到“内容匹配度”矩阵。
- 缩放因子除以 $\sqrt{d_k}$,防止维度增大后分数爆炸,梯度不稳。
- softmax 归一按行变成概率,数值大的位置获得更多关注权重。
- 加权聚合用权重去加权求和值矩阵 V,得到输出。
正弦偏置原理
老师终于颁布了教室铁律:“传纸条的热情,随距离衰减。隔得越远,热情越低,而且衰减是匀速的——每远一排,热情就按固定比例降一截。” 更有意思的是,不同的学生有不同性格:有的人只跟前后桌玩,衰减极快;有的人整个教室都能聊,衰减极慢。每个注意力头,就是这样一个性格不同的“传话者”。
ALiBi 把这个规矩落进了注意力公式。它不去给座位发号码牌,而是在“内容匹配分”算出来之后,减去一个与距离成正比的值。位置 i 的词看向位置 j 的词时,最终得分为内容分减去一个“冷淡罚单”:$m_h \times |i-j|$。$m_h$ 就是第 $h$ 个头的“冷淡系数”,系数越大,衰减越猛。
这里的“正弦偏置”名称需要澄清一下:ALiBi 本身的偏置是线性的(Linear Biases),它替代的对象正是经典 Transformer 里的 Sinusoidal(正弦)显式位置编码——所以全称意为“用基于距离的线性偏置,替代显式位置编码”。核心公式如下:
这套设计的精妙之处在于:没有任何可学习参数参与位置建模,斜率是纯数学预设。教室规矩写成校规贴墙上就行,不需要每个学生背一套复杂的座位表。
- 查询向量与键向量第 i 个位置的查询和第 j 个位置的键,点积衡量内容匹配度。
- 缩放处理除以根号 $d_k$,让分数尺度稳定,利于 softmax 训练。
- 绝对距离两位置差值的绝对值,只关心隔了几排,不关心谁前谁后。
- 头专属斜率 m_h每个注意力头有自己固定的衰减斜率,按几何级数递减。
- 线性惩罚项距离越远,减去越大,这个偏置加在 softmax 之前的 logits 上。
- softmax 归一对惩罚后的分数做概率化,距离近的词获得更高权重。
外推性能优异
学校要开年级大会,把所有班级的教室合并成一间超大礼堂。发号码牌的同学傻眼了:号码牌只编排到 1024,礼堂有 8192 个座位,后半部分的号码从来没见过。而遵守“距离衰减”规矩的同学毫无压力——规矩没变:无论礼堂多大,隔三排就是隔三排,衰减比例照旧。
这就是 ALiBi“外推性能优异”的根源。显式位置编码(如 Sinusoidal)在训练时见过的绝对位置数字有限,一旦推理长度超过训练长度,模型面对“全新地址”会给出不可预测的注意力分布。而 ALiBi 的偏置只依赖相对距离 $d = |i-j|$,这个值在训练长度内已经覆盖了所有可能的相对距离模式——外推时只是把这些见过的模式,原样应用在更长的序列上而已。
论文《Train Short, Test Long》里的实验很直观:模型只训练 1024 长度的序列,测试时直接喂 2048、4096 甚至 8192 长度的文本,困惑度基本不飘;而原始 Transformer 从 1024 外推到 2048 时性能就断崖式下跌。数学上看,训练与外推时偏置函数的形状完全一致,没有任何新增的“怪形状”:
换个比喻:衰减曲线就是一条斜率为 $-m_h$ 的直线,训练只见过直线的前一段。外推时你沿着直尺把线画长,方向角度都不变——当然不会翻车。这就是外推性能优异最朴素的解释。
- 训练最大长度训练序列长度为 $L_{\text{train}}$,最大相对距离就是 $L_{\text{train}} - 1$。
- 距离取值外推时两个词的距离若在此区间内,偏置与训练时完全相同。
- 规律外延超过 $d_{\max}$ 的距离,偏置依然按同一斜率线性延伸,不引入突兀结构。
- 外推结论模型不需要“脑补”新位置的向量,所有行为都是训练模式的连续复制。
长度差异鲁棒性
话剧社排练时,每场台词只有两页纸;正式演出时,导演临时加戏,台词变成了八页。发号码牌的演员慌了:剧本里没有标注“第 200 句台词在哪个位置”,新页码完全陌生。而按“距离衰减”规矩演戏的演员很淡定:不管台词总共多少页,我只需要记住“前一句、后三句”这种相对关系,台词页数翻四倍,相对关系一丁点都没变。
“训练与推理长度差异的鲁棒性”,说的正是这个:训练时模型见到的序列短,推理时喂进来的序列长,模型不会因为“长度变了”而行为失稳。ALiBi 的偏置矩阵里没有任何一项依赖总长度 $L$,只依赖位置差 $|i-j|$。长度从 1024 变到 8192,偏置公式一个字符都不改。
相比之下,有些方法在推理长文本前需要做“位置插值”(把位置向量压缩或拉伸到新范围),相当于给所有号码牌重新编号。ALiBi 完全跳过这步,省去了重训或调参的麻烦。从数学上不难验证:
这种“换场地不换规矩”的特性,让 ALiBi 在生产环境特别省心:训练时用短序列省显存、省时间,上线时直接支持长上下文,不用因为序列长度变化重新适配。
- 偏置矩阵元素$B_{ij}^{(h)}$ 表示第 h 个头、第 i 行第 j 列的距离惩罚值。
- 独立变量检查公式中只含位置下标 i、j,找不到总序列长度 L 的踪影。
- 偏导为零把偏置对 L 求偏导,结果为 0,说明长度变化不产生任何影响。
RoPE方案对比
隔壁班的教室用了另一套秩序:每张课桌上画了一个“指南针”,指针会随着位置旋转。传纸条时,双方根据指南针的夹角判断相对方位。这就是 RoPE(Rotary Position Embedding,旋转位置编码)的思路——把位置信息编码成向量的旋转角度,两个词一旋转、一点积,相对位置自然浮现。
RoPE 的数学很漂亮。它给第 m 个位置的查询向量乘上一个旋转矩阵 $R_m$,给第 n 个位置的键向量乘上 $R_n$,点积时旋转矩阵相减,只留下相对角度:
既然 RoPE 也能表达相对位置,为什么还需要 ALiBi?关键在于外推行为。RoPE 直接外推到训练长度之外时,旋转角度超过训练见过的范围,高频维度误差累积,模型性能明显下滑;需要配合 NTK 缩放、YaRN 或动态插值等手段做“角度修正”,工程复杂度直线上升。而 ALiBi 无需任何插值,天然平滑外推。此外 ALiBi 的实现成本接近零——只是一张预计算的静态偏置矩阵;RoPE 则要在每层前向计算中额外做旋转。当然 RoPE 也有自己的主场:它不牺牲长距离建模精度,在大模型预训练中生态更成熟(LLaMA 系、Mistral 等皆用 RoPE)。两者并非谁绝对碾压谁,而是“极简外推”与“精细表达”之间的权衡。
- 旋转矩阵二维旋转矩阵,角度为 θ,用来“拨动”向量方向。
- 位置注入第 m 个位置的查询被旋转 $R_m$,第 n 个位置的键被旋转 $R_n$。
- 旋转相减两个旋转矩阵乘在一起,角度相减,绝对位置消失、只留相对位置。
长文本应用实践
礼堂实在太大了,传纸条横跨全场既慢又累。同学们开始分段合作:每片区域设一个“中转站”,纸条传到中转站就不再重复传;每个人也学会了“对讲机”——把已经说过的话存下来,下次只说新增内容。这就是长文本推理中的工程实践:KV cache 与增量生成。
ALiBi 的静态偏置矩阵天然适合这类工程优化。首先,偏置矩阵只由距离决定,可以在服务启动时一次性预计算,之后每次调用直接查表,不必反复生成;其次,配合 KV cache 做流式生成时,每新增一个 token 只需计算新位置与所有旧位置的偏置,而偏置只依赖距离差,直接查表即可;最后,ALiBi 的“距离衰减”特性天然把注意力约束在近邻范围,变相降低了远端无效计算,配合分块或稀疏注意力策略,长序列推理的显存和时间开销都能压下来。
这套工程组合拳,正是 ALiBi 能落地到超长上下文场景的原因:训练用短序列省钱,推理用缓存提速,偏置查表几乎免费。教室越大,这套“中转站+对讲机”的打法收益越明显。
- 缓存模式KV cache 把历史 key/value 存下来,新 token 只与缓存计算注意力。
- 单步开销每步只处理新增位置,计算量恒定。
- 总复杂度对比整体从平方级降为线性,长文本推理才跑得动。
局限与适配
规矩也有代价。全校大会上,坐在最后排的同学哪怕借着衰减规矩往前面传纸条,声音也已经小得听不清——距离衰减太狠,远端的信息基本被忽略。这意味着 ALiBi 的注意力天然“稀疏化”:模型擅长捕捉局部上下文,却可能漏掉长文开头埋下的伏笔。
这不算 bug,而是一种偏置:ALiBi 默认“靠得近的更重要”。对于摘要、对话、代码补全这类局部依赖主导的任务,这个偏置恰到好处;但对于“开头说了一句话,结尾要召回它”的全局关联任务(如长文档问答、全书检索),远处理论上还有信息,却被惩罚压成了零。极限情况下:
应对策略也很成熟:在稀疏注意力的基础上加几个“全局广播站”——即插入少量全局 token,让它们不受距离衰减约束、能看到整个序列;或把 ALiBi 与 Longformer/BigBird 的稀疏注意力模式结合,用局部窗口捕获细节、用全局 token 捕获主线。另一个调参要点是斜率序列:头的数量越大,几何级数 $m_h$ 覆盖范围越宽,模型越能兼顾近与远;若任务强依赖全局,可适当缩小斜率或改用可学习斜率变体。理解了这条衰减曲线,你就能在部署时判断:这个任务怕不怕“远端失联”——怕,就配全局 token;不怕,ALiBi 的极简与高效就是最优解。
- 注意力权重$w_{ij}^{(h)}$ 是第 h 个头中位置 j 对位置 i 的注意力权重。
- 惩罚项增长距离 d 增大时,$-m_h d$ 趋于负无穷,指数项趋近于零。
- 权重极限softmax 中该项的指数贡献趋零,远端权重归零。
AI 应用场景
LLM 超长上下文服务
阶段:推理部署 / 长文本推断
解决的问题:传统位置编码在长文本推理时外推失败,模型答非所问;直接训练长文本又面临显存和时间成本爆炸(注意力复杂度随长度平方增长)。ALiBi 用短序列训练、长序列部署,既省钱又能保证回答质量。
具体案例:某法律科技公司部署合同审查模型。训练时仅用 2048 token 的合同片段;上线时用户直接粘贴 5 万字(约 3 万 token)的完整合同,模型基于 MPT-7B(采用 ALiBi)顺畅完成条款摘要与风险标注,无需额外微调。
推荐系统长短行为序列建模
阶段:特征工程 / 序列建模
解决的问题:用户行为序列长度差异悬殊——日常训练截断到 100 个行为,但大促期间部分用户有上千条行为。传统位置编码面对“超长行为链”直接失效,ALiBi 的鲁棒性让模型在 100 条行为上训练、上千条行为上推理依然稳定。
具体案例:电商推荐场景中,用 ALiBi 改造行为序列 Transformer:用户点击序列若为 80 条,模型照常训练;双十一当天用户产生 1180 条行为时,模型直接上全量序列做兴趣推断,推荐候选集的点击率提升约 11%。
流式长对话生成
阶段:增量解码 / 在线推理
解决的问题:对话轮数越多,输入 token 越长,传统自回归生成每步重算全量注意力,延迟随历史增长而飙升。ALiBi 配合 KV cache 让每步生成耗时保持恒定,且偏置矩阵可预计算,天然适配实时对话。
具体案例:智能客服机器人在多轮售后中,输入长度从 300 token 逐步增长到 5000 token,得益于 ALiBi 的查表式偏置与缓存复用,单 token 生成延迟始终稳定在 50ms 以内,用户体验不因对话变长而卡顿。
Python 演示
import numpy as np def alibi_bias(n, num_heads): """构造 ALiBi 偏置矩阵,形状为 (num_heads, n, n)。""" rows = np.arange(n).reshape(n, 1) cols = np.arange(n).reshape(1, n) dist = np.abs(rows - cols) slopes = 2.0 ** (-8.0 * np.arange(1, num_heads + 1) / num_heads) bias = np.zeros((num_heads, n, n)) for h in range(num_heads): bias[h] = -slopes[h] * dist return bias def alibi_attention(x, w_q, w_k, w_v, num_heads, d_head): """最简 ALiBi 多头注意力示意实现。""" d_model = x.shape[1] n = x.shape[0] q = x @ w_q k = x @ w_k v = x @ w_v q = q.reshape(n, num_heads, d_head).transpose(1, 0, 2) k = k.reshape(n, num_heads, d_head).transpose(1, 0, 2) v = v.reshape(n, num_heads, d_head).transpose(1, 0, 2) scores = (q @ k.transpose(0, 2, 1)) / np.sqrt(d_head) scores = scores + alibi_bias(n, num_heads) weights = np.exp(scores - scores.max(axis=-1, keepdims=True)) weights = weights / weights.sum(axis=-1, keepdims=True) out = weights @ v return out.transpose(1, 0, 2).reshape(n, d_model) np.random.seed(42)n, d_model, num_heads, d_head = 6, 16, 4, 4x = np.random.randn(n, d_model)w_q = np.random.randn(d_model, num_heads * d_head) * 0.1w_k = np.random.randn(d_model, num_heads * d_head) * 0.1w_v = np.random.randn(d_model, num_heads * d_head) * 0.1 bias = alibi_bias(n, num_heads)print("第 1 个头第 0 行的偏置(距离 0,1,2,3,4,5):")print(bias[0, 0]) out = alibi_attention(x, w_q, w_k, w_v, num_heads, d_head)print("训练长度 6 的输出形状:", out.shape) probe = alibi_attention(np.random.randn(10, d_model), w_q, w_k, w_v, num_heads, d_head)print("外推长度 10 可直接计算:", probe.shape)
dist = np.abs(rows - cols)生成距离矩阵,第 i 行第 j 列就是两位置差的绝对值slopes = 2.0 ** (-8.0 * np.arange(1, num_heads + 1) / num_heads)按几何级数生成每个头的衰减斜率bias[h] = -slopes[h] * dist核心:距离越远,惩罚越重,负号实现“越远越冷淡”scores = (q @ k.transpose(0, 2, 1)) / np.sqrt(d_head)先算标准注意力内容分并缩放scores = scores + alibi_bias(n, num_heads)在 softmax 前把偏置加进 logits,这就是 ALiBi 的全部魔法probe = alibi_attention(...)用 6 长度的权重直接跑 10 长度输入,验证外推不需要重训
常见误区
误区我第一次接触 ALiBi 时,以为它和 Transformer 原版一样,是把一段位置向量加到 input embedding 上,只是把正弦函数换成了线性函数。
正解ALiBi 根本不碰词向量。它把偏置加在注意力分数(softmax 之前的 logits)上,词嵌入层面完全没有位置信息。它的位置感知全部来自“打分时按距离扣分”这一招——相当于不改座位号,改的是传纸条的热情规则。
为何常见:名字里有“位置编码”四个字,加上原版 Transformer 的加性位置向量太深入人心,很容易先入为主地类推。
误区看论文标题《Train Short, Test Long》和宣传语“外推性能优异”,很多人以为 ALiBi 训练 1024 就能测 100 万 token,完全无上限。
正解ALiBi 的外推是“模式复用”,偏置只依赖相对距离,距离差在训练长度内见过就能稳定工作;但距离超过一定程度后,远端注意力被压到接近零,信息断层依然存在,实际可靠外推范围通常是训练长度的 8-64 倍。
为何常见:“外推性能优异”被自媒体简化成“无限外推”,忽略了线性惩罚本身会稀释远端信息。
误区既然 ALiBi 不加位置向量,那模型应该完全不分前后顺序,妥妥是个“词袋模型”。
正解ALiBi 用的是隐式相对位置编码。偏置 $-m_h|i-j|$ 本身就是位置信息,只不过它不像显式位置编码那样“发号码牌”,而是用“距离衰减函数”直接告诉模型相对位置。模型完全分得清前后,只是感知方式换了。
为何常见:把“不显式加向量”和“没有位置信息”画了等号,忽略了位置信息可以有多种载体。
误区看到 ALiBi 的斜率是预设常数、零可学习参数,就觉得它比能旋转学习的 RoPE 低一等。
正解位置编码的优劣不取决于参数量,而取决于抽象方式是否匹配任务。ALiBi 用近乎零参数换来了稳健外推与工程极简;RoPE 则用旋转矩阵换取更细腻的相对位置表达。当前主流大模型多用 RoPE 是生态选择,并不代表 ALiBi 弱——MPT 等长上下文模型就用 ALiBi 做出了成绩。
为何常见:以参数量论英雄,加上市面上 LLaMA 系模型全用 RoPE,容易形成“RoPE 全面胜出”的错觉。
面试题
Q1. ALiBi 的“距离偏置”被加在哪个环节?
- A.与词嵌入相加的位置向量处
- B.注意力分数经过 softmax 之前← 正确答案
- C.与位置编码拼接进输入通道
- D.前馈网络非线性激活函数后
答案:B。ALiBi 不改动词嵌入,而是在注意力 logits 上加静态偏置矩阵,再进 softmax。就像传纸条的热情规则不改变座位,只改变传话的积极性。
Q2. ALiBi 偏置与两个 token 距离的关系是?
- A.线性衰减,越远惩罚越大← 正确答案
- B.正弦周期,随距离震荡
- C.恒定常数,与距离无关
- D.平方衰减,越远惩罚剧增
答案:A。ALiBi 的核心是线性偏置:惩罚值 $-m_h|i-j|$ 与距离成正比,方向为负。教室里的规矩是“每远一排,热情匀速降一截”,正是线性而非正弦。
Q3. 对于一个 8 头的 ALiBi 模型,第 4 个注意力头的斜率 m 约为?
- A.1/2
- B.1/4
- C.1/16← 正确答案
- D.1/128
答案:C。斜率按几何级数 $m_h = 2^{-8h/8}$,当 h=4 时 $m = 2^{-4} = 1/16$。对应教室中“第 4 排性格的同学”,冷淡程度处于中间档位。
Q4. ALiBi 外推性能优异最主要的原因是?
- A.偏置只依赖 token 相对距离← 正确答案
- B.模型总参数量大幅减少
- C.训练时使用的学习率更大
- D.层归一化方式与众不同
答案:A。外推的本质是“训练见过的模式能否复用于更长序列”。ALiBi 偏置只与相对距离有关,训练长度内所有距离模式都被覆盖,外推新长度时只是复制已有偏置规律。参数量、学习率、归一化都与外推能力无关。
Q5. ALiBi 相对 RoPE 的优势有哪些?
- A.无需插值即可较好地外推← 正确答案
- B.实现简单几乎零额外计算← 正确答案
- C.预训练在大模型界普及度更高
- D.更易与稀疏注意力配合← 正确答案
答案:ABD。ALiBi 外推不需要 NTK/YaRN 插值,偏置是静态矩阵、实现成本极低,且线性衰减天然稀疏化,方便与稀疏注意力组合。C 说反了:大模型界普及度更高的是 RoPE(LLaMA 系),这正是 ALiBi 未占据主流生态的原因。
Q6. ALiBi 在因果语言模型中偏置通常只作用于下三角,原因是?
- A.因果模型只能看左侧历史 token← 正确答案
- B.下三角可以节省一半计算开销
- C.上三角位置距离无法被定义
- D.方便 KV cache 做增量复用
答案:A。因果语言模型的注意力掩码本来就只允许看左侧历史 token,所以 ALiBi 偏置配合掩码只需在下三角生效,右侧距离没有意义。省计算只是附带结果,不是设计初衷。
Q7. ALiBi 的已知局限包括哪些?
- A.远端注意力被线性压制,长程依赖弱← 正确答案
- B.斜率按头数几何预设,属于超参数← 正确答案
- C.对全局信息强的任务需补充稀疏注意力← 正确答案
- D.完全无法处理任何相对位置信息
答案:ABC。距离衰减越远越狠,远端注意力可能趋零,长程依赖确实弱;斜率序列是经验预设而非学习得到;全局依赖强的任务需要插入全局 token 或稀疏注意力补偿。D 是错的,ALiBi 本身就是一种隐式相对位置编码。
Q8. ALiBi 名称中“替代显式位置编码”指的是替代哪类方法?
- A.Sinusoidal 等显式位置嵌入法← 正确答案
- B.注意力内部的层归一化
- C.前馈网络里的残差连接
- D.推理时用到的动态规划
答案:A。ALiBi 的"Linear Biases"替代的是经典 Transformer 的 Sinusoidal(正弦)显式位置编码。它不再把位置向量加进词嵌入,而用距离偏置直接注入位置信息;层归一化、残差连接、动态规划与位置编码无关。
Q9. 训练长度 1024 的 ALiBi 模型推理 4096 时,距离差 1000 的偏置在训练中?
- A.见过:距离 1000 小于训练长度← 正确答案
- B.没见过:模型必然直接崩溃
- C.必须先用插值处理再推理
- D.是否见过的取决于学习率
答案:A。训练长度 1024 意味着模型见过最大相对距离 1023,距离差 1000 落在训练范围内,偏置模式完全复用。只有超过 1023 的距离才需要依靠线性外延,且 ALiBi 的直线延伸同样平滑稳定。
Q10. 推理长文本时,ALiBi 常与哪些技术配合以降低开销?
- A.KV cache 增量缓存键值← 正确答案
- B.稀疏注意力处理长文档← 正确答案
- C.预计算静态偏置矩阵← 正确答案
- D.线性层替换为卷积层
答案:ABC。KV cache 把历史 K/V 存下来,单步推理从 O(N) 关注变成 O(1);偏置矩阵静态可预计算,运行期查表即可;稀疏注意力强化 ALiBi 天然的局部聚焦。D 是干扰项,替换线性层与位置编码无关。