☰
248、【AI】【模型部署】基座模型研究:不旋转也能注入位置——绝对、正弦、相对偏置与 ALiBi
2026/10/13 3:13:33 网站建设 项目流程

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

标题

248、【AI】【模型部署】基座模型研究:不旋转也能注入位置——绝对、正弦、相对偏置与 ALiBi

背景

上篇 blog
247、【AI】【模型部署】基座模型研究:RoPE 用在前向还是反向——训练、推理与 KV cache
把 RoPE 的工程面讲清了:旋转只发生在每层注意力的前向里、训练和推理都做;它没有可训练参数,反向只是把梯度反向旋转(乘R ⊤ R^\topR⊤)继续回传;训练整段并行、推理按 prefill + decode 给位置;和243篇的 KV cache 配合的关键是——缓存里存旋转后的 K、未旋转的 V,于是新查询转一次就能和历史键点积、自动得到相对偏移( t − n ) (t-n)(t−n);训练与推理的旋转方式必须严格一致。

RoPE 走的是"旋转q , k q,kq,k"这条路。但位置注入并非只有旋转一条路——244篇开头列过三条注入路径,本篇就把另一条路的几种经典方案拉出来横向对比:可学习绝对位置嵌入、正弦位置编码、相对位置偏置、ALiBi,看看它们各自怎么工作、适合什么场景,以及 RoPE 相对它们站在哪里。

模型部署

把244篇的三条路径再收一次:路径一把位置项加到输入向量上,路径二把位置项偏置到注意力分数上,路径三旋转q , k q,kq,k(RoPE)。本篇要讲的四种方案,正好覆盖前两条:

图 1 上半是路径一(绝对位置:查表或公式算出位置项,加到输入向量),下半是路径二(相对方案:直接在q ⋅ k q\cdot kq⋅k上加一个与距离有关的偏置)。RoPE 是第三条路,不在图里,作为对照。


🧩方案一:可学习绝对位置嵌入

最直白的做法:给每个位置分配一个可训练的向量p i p_ipi​,用的时候加到 token 向量e i e_iei​上:

h i = e i + p i , i = 0 , 1 , … , L − 1 h_i=e_i+p_i,\qquad i=0,1,\dots,L-1hi​=ei​+pi​,i=0,1,…,L−1

其中p i ∈ R d p_i\in\mathbb{R}^dpi​∈Rd是学出来的参数,一共L × d L\times dL×d个。BERT、GPT-2 用的都是它。优点是简单直接,位置信息显式可见;缺点是位置数被固定死——训练只准备了L LL个向量,遇到更长的位置就没有对应向量,外推能力差。


🧩方案二:正弦位置编码

原版 Transformer 换了个思路:不学参数,用不同频率的sin ⁡ / cos ⁡ \sin/\cossin/cos直接算出位置向量:

P E ( pos , 2 i ) = sin ⁡ ⁣ ( pos 10000 2 i / d ) , P E ( pos , 2 i + 1 ) = cos ⁡ ⁣ ( pos 10000 2 i / d ) PE(\text{pos},2i)=\sin\!\Big(\frac{\text{pos}}{10000^{2i/d}}\Big),\qquad PE(\text{pos},2i+1)=\cos\!\Big(\frac{\text{pos}}{10000^{2i/d}}\Big)PE(pos,2i)=sin(100002i/dpos​),PE(pos,2i+1)=cos(100002i/dpos​)

同样加到输入向量上。它没有参数,而且设计上让"相近位置编码相近、且可由线性变换得到相对关系"。不过这个相对结构在乘上投影矩阵之后未必保留,所以实际外推能力也只是比可学习版本略好,并不强。


🧩方案三:相对位置偏置

前两种都是"绝对位置"。相对位置偏置改了注入点:不动输入,而是在注意力分数上直接加一项与相对距离i − j i-ji−j有关的偏置:

score i j = q i ⋅ k j + b clip ( i − j ) \text{score}_{ij}=q_i\cdot k_j+b_{\text{clip}(i-j)}scoreij​=qi​⋅kj​+bclip(i−j)​

b bb是学出来的偏置表,按相对距离索引(Shaw 等人提出);T5 进一步把距离分桶,用对数间隔的桶来省参数、并让近处分辨率更高、远处粗糙:

图 2 左格就是这种"分桶偏置"的形状(示意):偏置随距离变化,近处桶密、远处桶疏。它直接对"两个 token 隔多远"建模,是相对位置方案。


🧩方案四:ALiBi

ALiBi(Attention with Linear Biases,线性偏置注意力)把相对偏置简化到极致——不学分桶表,直接用一条直线:

score i j = q i ⋅ k j − m h ( i − j ) , i ≥ j \text{score}_{ij}=q_i\cdot k_j-m_h\,(i-j),\qquad i\ge jscoreij​=qi​⋅kj​−mh​(i−j),i≥j

每个注意力头有自己的固定斜率m h m_hmh​(通常取1 / 2 , 1 / 4 , 1 / 8 , … 1/2,1/4,1/8,\dots1/2,1/4,1/8,…这样的几何序列),完全不需要训练。直观上,它给"距离越远的关系"扣越多分,逼模型更关注近处。

图 2 右格画出三条不同斜率的直线:头不同、惩罚速度不同。ALiBi 的卖点是无参数、实现简单、外推好,BLOOM 等模型用过它。


📊四种方案对比

把四种方案和 RoPE 放进一张表:

方案注入点参 数绝对/相对外推代表模型
可学习绝对位置输入向量L × d L\times dL×d绝对差BERT、GPT-2
正弦位置编码输入向量无绝对中原版 Transformer
相对位置偏置注意力分数有(分桶)相对好T5、Shaw
ALiBi注意力分数无相对好BLOOM
RoPE旋转q , k q,kq,k无相对好Qwen、Llama

从表里能看出一条清晰的主线:从"绝对"走向"相对",从"占参数"走向"无参数"。位置编码的演进方向,和注意力真正需要"相对距离"这件事是吻合的。


🧩为什么相对方案更受欢迎

把"绝对"换成"相对",收益主要来自两点:

  • 更贴合任务。注意力要判断的是"两个 token 关系近不近",而不是"它们各自排第几"。直接用相对距离建模,少绕一层弯。
  • 更容易外推。绝对方案把每个位置当成独立坐标记下来,训练长度之外就是"未见过的坐标";相对方案学的是"距离0 , 1 , 2 , … 0,1,2,\dots0,1,2,…对应的规律",这个规律在更长序列里只是被"用得更远",不会突然失效。

代价也有:相对方案要么引入额外参数(分桶偏置),要么牺牲一些表达力(ALiBi 的线性假设)——这正是各类方案之间权衡的地方。


🧩选型速查

把上面的对比落到"什么场景用什么":

  • 短序列、结构固定的分类或编码任务:可学习绝对位置足够,简单好用;
  • 想要一点外推、又不想加参数:正弦位置或 ALiBi;
  • 需要显式控制相对关系、也愿意加一点参数:相对位置偏置;
  • 现代大模型的长上下文:RoPE,并配合频率缩放等技巧(见#249/#250)。

这些并不是"谁淘汰谁"的关系,而是不同取舍下的不同选择。


🧩外推能力的差别

把"超出训练长度之后效果怎么变"画成示意图:

图 3(示意,非实测)里,可学习绝对位置一旦超过训练长度就迅速崩塌(没有对应向量);正弦位置衰减得更缓一点;而相对方案(相对偏置 / ALiBi / RoPE)大体还能撑住。这份"外推优势",正是相对位置方案的共同卖点,也是后面#249/#250要专门处理的主题。


🧩RoPE 站在哪

和上面四种比,RoPE 的定位很清楚:

  • 相对——和相对偏置、ALiBi 一样,点积只依赖n − m n-mn−m(245篇);
  • 无参数——和正弦、ALiBi 一样,不占可训练权重;
  • 外推好——和相对方案一样,超出训练长度还能工作(并以rope_theta等技巧进一步增强);
  • 独特之处——它不改输入向量、也不改分数,而是旋转q , k q,kq,k本身;而且旋转保长度、和 KV cache 天然兼容(247篇)。

可以说,RoPE 把"相对、无参、可外推"这几条优点凑齐了,还额外多了"和缓存友好"这一条工程优势——这是它成为主流的关键。


🧩两个常见误区

  • “正弦位置是相对的,所以外推一定好。”:不是。正弦位置编码本身是绝对坐标(给每个 pos 算一个向量),虽然公式里藏了频率结构,但注入的是绝对量;外推好不好还取决于投影之后模型怎么用它,实践中并不强。
  • “相对偏置和 ALiBi 会改变q , k q,kq,k。”:不会。它们只改注意力分数(在q ⋅ k q\cdot kq⋅k上加一项),q , k , v q,k,vq,k,v本身不动。这正与 RoPE 形成对照——RoPE 改的恰恰是q , k q,kq,k。

🧩两个常见疑问

  • “绝对位置为什么外推差?”:可学习绝对位置只准备了训练长度内的向量,更长的位置没有对应参数、只能拿到随机或无意义的值;正弦位置虽然公式能算任意位置,但模型学到的模式仍与训练长度绑定。位置表示一旦"越界",分布就和训练时不一致了。
  • “ALiBi 和 RoPE 都是相对、都无参,谁更好?”:没有绝对答案。ALiBi 更简单、外推更直接,但表达力较弱(只是线性惩罚);RoPE 更灵活、能和频率缩放等技巧结合,在长上下文模型里更常见。选哪个取决于对"简单"和"表达力"的偏好。

📌一句话记忆

位置注入不止旋转一条路:加到输入的可学习绝对位置(BERT/GPT-2)和正弦编码(原版 Transformer)表达绝对位置、外推弱;加到分数的相对位置偏置(T5 分桶)和 ALiBi(固定线性斜率)表达相对距离、外推好。RoPE 走第三条路——旋转q , k q,kq,k,把"相对、无参、可外推"凑齐,还多一条"和 KV cache 友好",因此成为主流。下一篇进入长上下文:训练时只见几千个位置,推理却要几万、几十万,超出的部分怎么办。


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【AI】【模型部署】基座模型研究:长上下文外推(上)——直觉与配置

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询