面包屑图标 当前位置: 首页
AI资讯
热点详情

大模型的位置编码与外推性问题是否相同

AI热点日报
AI热点日报时间:2026-07-19
热点解读

现如今,很多大模型都已经支持超过4096长度的推理了——GPT-4能做到30k以上,ChatGLM2-6B也能处理最长32K的文本。但受制于显存资源,这些模型在训练时并不会真的用这么长的文本,通常预训练阶段只设计到4k左右。这就引出了一个核心问题:如何确保模型在推理阶段能支持远远超过预训练时的长度?

现如今,很多大模型都已经支持超过4096长度的推理了——GPT-4能做到30k以上,ChatGLM2-6B也能处理最长32K的文本。但受制于显存资源,这些模型在训练时并不会真的用这么长的文本,通常预训练阶段只设计到4k左右。这就引出了一个核心问题:如何确保模型在推理阶段能支持远远超过预训练时的长度?这个问题在业界被称为大模型的外推性

目前提升外推性主要从两个角度入手,也是最有效的两个方向:

  • 寻找或设计合适的位置编码;
  • 设计局部注意力机制。

本文就从这两方面展开,深入探讨大模型的位置编码和外推性问题。

一、位置编码基础介绍

对于一个token,其表征向量记作x_i,对于一个句子 s = [w_1, w_2, ..., w_T],则表示为 [x_1, x_2, ..., x_T]。那么可以通过一个映射函数将这个句子中的token表征为 [x_1 + p_1, x_2 + p_2, ..., x_T + p_T],其中 p_ip_j 表示第i和第j个token的位置编码。

1.1 绝对位置编码

在Transformer中,采用正余弦函数来表示绝对位置,公式如下:

PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

这种编码方式又叫做Sinusoidal编码。直观上,第pos个位置的表征向量维度是d_model,这个向量的奇数位置元素使用余弦值,偶数位置元素使用正弦值。可视化效果如下:

可以看到,相邻的位置编码向量很相似,较远的位置编码向量差异很大——这说明基于正余弦函数的绝对位置可以表征位置的相关性;同时,不需要显式地学习位置,效率更高。最后,映射函数可以定义如下:输入表征为token的表征和其对应的绝对位置表征,通常直接将位置表征与Word表征相加。

1.2 相对位置编码

(1)显式的相对位置

对于第i和第j个位置的token,其相对位置可以表示为clip(i-j, -K, K),即两个token之间的相对距离,且由最大最小值做约束。相比绝对位置,相对位置只需要有限个表征向量即可。在计算两个token之间的attention值时,只需要在attention计算过程中注入这两个位置对应的相对位置r_{i-j}对应的相对位置表征向量。这样一来,只需要有限个位置编码,就能表达出任意长度的相对位置(因为进行了截断),不管是选择可训练式的还是三角函数式的,都可以达到处理任意长度文本的需求。参考论文:《Self-Attention with Relative Position Representations》

(2)Transformer-XL(XLNet)

将第i和第j个位置的QK计算进行了分解,引入了一些可学习的参数:
a_{ij} = (q_i + u) · (k_j + v) + (q_i + w) · (R_{i-j}) + (u · R_{i-j})
其中R_{i-j}表示待学习的第i-j个token的相对位置向量,uv表示待学习的第i-j个token的相对位置向量。通过分解让相对位置注入在attention的计算过程中。

(3)Transformer-XL的改进

第二和第四项使用相对位置表征R_{i-j}来替换绝对位置表征,同时加入新的可训练参数uv。该方法在T5模型中被首次使用,参考论文:《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》

(4)可训练偏置项

Transformer-XL中的位置表征是将QK分解为4项,后面3个够项都有跟位置有关的参数,可以直接将后面的3项之和抽象为一个偏置b_{i-j}。进一步改造还可以得到a_{ij} = q_i · k_j + b_{i-j}等等。这三种方法均是对Transformer-XL的表征形式进行改进。

二、RoPE旋转位置编码

RoPE(Rotary Position Embedding)的出发点是“通过绝对位置编码的方式实现相对位置编码”,或者说实现相对位置编码和绝对位置编码的结合。这样做既有理论上的优雅之处,也有实践上的实用之处——比如它可以拓展到线性Attention中,主要就是因为这一点。

2.1 复数的引入

假设x_ix_j是对应位置的二维行向量(即每个位置都有两个向量来表征位置),因此这个二维向量可以用复数来代替(包括实部和虚部),那么它们的内积可以作为其对应的Attention值。内积的计算可以由两个复数实现:Re() = Re(f(x_i) * conj(f(x_j))),其中conj表示共轭复数,Re表示取复数中的实部。两个二维向量的内积,等于把它们当复数看时,一个复数与另一个复数的共轭的乘积的实部。

因此,当分别对x_ix_j融入绝对位置时,即得到f(x_i, i) = x_i * e^{iθ_i}。RoPE求解过程推导了如何确定每个位置编码是e^{iθ_m}。可以发现,当乘以绝对位置e^{iθ_i}e^{iθ_j}时,等价于复数运算中乘以e^{iθ(i-j)},即相当于在复数空间中是相对位置(i-j)——这样就巧妙地通过复数运算的形式将绝对位置转换为相对位置。

复数乘法的几何意义是向量的旋转。假设f(x_m, m)表示向量x_m在位置m的位置编码,则有f(x_m, m) = R_m * x_m,其中R_m = [[cos(mθ), -sin(mθ)], [sin(mθ), cos(mθ)]]。等价于f(x_m, m) = R_m · x_m。后面两项的乘积本质就是向量x_m(或x_n)的两个二维行向量。

当向量维度为d时(d为偶数),则可以扩展为:
f(x_m, m) = [R_m, 0; 0, R_{2m}; ...] · x_m
每两个为一组二维向量,一共有d/2个组合,可以直接拼接作为维度的旋转位置编码。更多细节可参考:Transformer升级之路:4、二维位置的旋转式位置编码Transformer升级之路:6、旋转位置编码的完备性分析

2.2 RoPE的实现

当输入一个句子“Enhanced Transformer with Rotary Position Embedding”时,首先获得其Query和Key向量q、k,其对应的维度均为d。然后对于向量中相邻两个元素为一组,可以得到d/2组(图中左下部分相同颜色的两个元素作为一组,对于每一组,一个文本则可以得到两个行向量)。获得每个词的绝对位置编号(该句子由6个词,位置编号分别为1到6)。假设取“Enhanced”单词为例,其第一组元素为θ1,位置为m=1,那么通过旋转位置编码可以得到新的元素值。所有单词的d/2个组合都按照这种形式进行“旋转”,即可得到新的位置编码(右下角)。RoPE的一种线性实现如下:q_m = R_m * q, k_n = R_n * k,其中R_m是旋转矩阵。

RoPE的性质

(1)远程衰减

从图中可以看到,随着相对距离的变大,内积结果有衰减趋势。因此选择θ_i = 10000^(-2i/d)确实能带来一定的远程衰减性。当然,能带来远程衰减性的不止这个选择,几乎任意的光滑单调函数都可以。如果以θ_i = 10000^(-2i/d)为初始化,将θ视为可训练参数,训练一段时间后发现并没有显著更新,因此干脆就直接固定了。

(2)优势

  • 用一个旋转矩阵来对绝对位置进行编码,同时在自注意力机制中导入显式的位置依赖;
  • 支持自由的序列长度;
  • 随着相对位置的增大,逐步延缓退化的inter-token dependency;
  • 用相对位置编码来“武装”线性自注意力。

具体来说,RoPE使用旋转矩阵对绝对位置进行编码,同时将显式的相对位置依赖性纳入自注意公式中。核心两个点:一个是“旋转矩阵”,一个是“显式的相对位置依赖”。

三、长文本外推性

外推性的含义是:在长文本表征过程中,如何在训练阶段只需要学习有限的长度,就能在推理阶段延伸长度至若干倍,且依然保持不错的性能和效果。长度外推性是一个训练和预测的长度不一致的问题,主要体现在两个方面:预测的时候用到了没训练过的位置编码;预测的时候注意力机制所处理的token数量远超训练时的数量。

解决长文本外推性问题的一个简单有效的方法是Attention Mask,如下图所示:

通过类似滑动窗口的结构,约束每个token只能对局部区域的token计算Attention值。这样,相对位置大小不会超过窗口大小,解决了第一个问题;同时,Attention只会在窗口内计算,避免了对大量token的Attention进行加权平均导致最终权重过度“平滑”现象。在实现过程中,本质上是在计算完Attention后减去一个矩阵,即Attention = softmax(QK^T - M),其中的形状如下图所示:

可以看出,蓝色区域(即滑动窗口内的局部区域)为0,说明保持原始的Attention归一化前的值;其他区域则为一个INT内最大的整数,说明Attention值是一个非常小的数(在softmax归一化后几乎为0)。

3.1 ALIBI

论文:《Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation》

其与上面的思想一样,只是改进了上面的M矩阵为-|i-j| * h,即Attention在归一化前的计算为:Attention = softmax(QK^T - |i-j| * h),其中h为超参数,Transformer的多头注意力中的每个头的h值可设置不同。矩阵的形状如下所示:

相比于原始的方法,相对距离越长,值就越大,越远的位置Attention值被归一化后就越小。相对于“滑动窗口”采用hard方法(在窗口内就计算attention,不在窗口内不计算),ALIBI是比较soft的——离得近attention就会比较大,离得远就比较小。

3.2 KERPLE

论文:《KERPLE: Kernelized Relative Positional Embedding for Length Extrapolation》

其对ALIBI进行了一些改进,引入了两个可学习的参数r1和r2来“动态”学习局部区域。如下图所示,左侧为原始的,通过引入参数来动态减去ALIBI中的矩阵:

定义了两种模式,分别是power和logarithmic,分别对应没有对数和有对数的形式:

在logarithmic模式中,-r1 * log(1 + r2 * |i-j|),r1控制了整体的量,相当于ALIBI中的h,c是一个常数。苏神版简化写作:-r1 * log(1 + r2 * |i-j|)

3.3 Sandwich

论文:《Receptive Field Alignment Enables Transformer Length Extrapolation》

Sandwich与KERPLE是同一个作者提出的,其对KERPLE进行了少量改进,即对应的公式改写为:-a * (|i-j|) - b * sin(|i-j|),其中a和b可以使用Sinusoidal编码表示。由于Sinusoidal编码在单调性上等价于|i-j|,都是线性递增形式,因此Sandwich只是改头换面了。

3.4 XPOS

论文:《A Length-Extrapolatable Transformer》

参考解读:Transformer升级之路:7、长度外推性与局部注意力

其在RoPE的基础上引入了局部注意力。RoPE的本质是:f(x_m, m) = R_m · x_m,其中R_m是旋转矩阵。在第2大节中已经介绍了RoPE是通过使用复数来实现绝对位置表示相对位置的。XPOS通过引入一个新的标量λ,即有:f(x_m, m) = λ^m * R_m · x_m。由于RoPE相对位置是R_m · R_n^T,而不是λ^(m-n),因此XPOS约束在了单向Transformer,从而避免了负数出现。XPOS还设计了一个局部感知的注意力机制Blockwise Causal Attention,进一步提升了局部注意力的性能,从而提升了长文本的外推性。

四、外推性的其他探索

(1)混合注意力Mask

在解决长文本位置表征时,典型的代表有Transformer-XL、BigBird、LongFormer,他们除了局部注意力机制以外,还引入了随机位置的性质:

如上图,第2张图为局部注意力(滑动窗口),第3张图为有限的全局感知(例如只限制前两个token可以看见所有的token)。而第一张图则是随机mask,以缓解过度hard的局部注意力。三者注意力混合起来后得到第四张图,这也是普遍训练超长文本大模型时采用的方法。

(2)随机位置表征

论文:《Randomized Positional Encodings Boost Length Generalization of Transformers》

绝对位置表征时,会存在位置上的OOV问题。随机位置编码则是在训练过程中采用如下策略:

对应的代码也很简单:

def random_position_ids(N, L=2048):
    """从[0, L)中随机不重复挑N个整数,并从小到大排列"""
    return np.sort(np.random.permutation(L)[:N])

苏神对随机位置编码的新探索:

对应的代码为:

def random_position_ids(N):
    """先随机采样n,然后从[0, n]均匀取N个点"""
    n = sample_from_xxx()
    return np.linspace(0, 1, N) * n

(3)Attention Scale

原始的Attention计算公式为:Attention = softmax(QK^T / sqrt(d)),只需要简单的改成下面即可:Attention = softmax(log(L_train / L_test) * QK^T / sqrt(d)),其中L_train是训练时的最大长度,L_test是预测时的位置。直觉来看,就是直接在计算时,根据其相对位置来控制Attention的值。当ij距离很远时,log(L_train / L_test)的值会很大,会使得整体Attention归一化后比较平缓,有助于解决外推性问题。

(4)全局依赖

滑动窗口的方法如果在一层Transformer Layer里看,本质上类似长度为S的N-Gram模型,如下图所示:

如果Transformer有L层,那么从输入层开始,长度为S的窗口内的信息,可以在经过L层之后传给一个更广的区域,区域长度为S * L,如下图所示:

苏神给出的一种新的想法是:假设有L层Transformer,则可以在前L-1层利用这种扩张特性,得到最终S * L长度的区域后,在最后一层采用上面提到的log Attention Scale方法,将前L-1层扩张的信息快速在最后一层与所有token进行交互。引入苏神的原文为:

这种局部注意力+Attention Scale的结合也是一种很巧妙的idea。实验也发现这种策略的外推性很惊艳。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:大模型的位置编码与外推性问题是否相同要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://m.elecfans.com/article/2236789.html
大模型

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-20 08:42
起亚索兰托二次中期改款谍照曝光延长车型周期

新款起亚索兰托的二次中期改款计划因现款车型出色的市场表现和盈利状况而启动,旨在规避新能源市场波动风险。新车将对外观细节和内饰科技配置进行升级,预计采用双联屏设计。动力系统则延续现有的混动方案,并着重提升插电混动版本的纯电续航和燃油经济性。此举也为品牌下一代电动车型的研发赢得了更多时间。

AI热点2026-07-20 08:42
比亚迪唐EV预售订单破十万,大型SUV市场竞争加剧

比亚迪全新大型SUV大唐EV预售订单突破10万台,引发市场高度关注。然而,在大型SUV细分市场竞争日趋激烈的背景下,这一亮眼数据能否转化为实际销量仍存变数。面对零跑D19等直接竞品的价格挑战,以及近期密集上市的多款同级新车围剿,大唐EV需在正式定价、配置差异化及技术实力上展现足够诚意,方能在25-3

AI热点2026-07-20 08:42
印尼延长窗帘进口保障措施两年,税率分阶段下调

印度尼西亚政府决定,自2026年5月22日起,继续对进口窗帘、百叶窗、床帷等装饰织物制品实施为期两年的保障措施。新税率将分阶段执行,第一年为每公斤9,841印尼盾,第二年为每公斤9,248印尼盾。此项措施源于2019年启动的调查,并经过多次复审得以延续,旨在保护国内相关产业。中国香港和澳门地区的产品

AI热点2026-07-20 08:42
能率Z系列燃气热水器接入米家支持远程开关调温

能率Z系列燃气热水器现已接入米家App,用户可通过手机实现远程开关机和温度调节。绑定流程简便,只需在米家App中添加设备即可。该热水器具备硬件安全与健康设计,如防爆玻璃面板和Ag+银离子抑菌水管。在技术层面,它支持32-60℃宽域调温、3kW超微火力以及0 5℃高精度控温,旨在为用户提供稳定舒适的沐

延伸阅读