Redian新闻
>
聊聊大模型位置编码及其外推性

聊聊大模型位置编码及其外推性

公众号新闻

作者 | 王嘉宁 

整理 | NewBeeNLP

https://wjn1996.blog.csdn.net/article/details/131753251

进NLP群—>加入NLP交流群

现如今很多大模型都开始支持超过4096长度的推理,例如GPT-4支持超过30k,ChatGLM2-6B也支持最长为32K的文本。但是由于显存资源的限制,这些大模型在真正在训练过程中不一定要训练这么长的文本,通常在预训练时只会设计到4k左右。

因此 如何确保在模型推理阶段可以支持远远超过预训练时的长度 ,是目前大模型的核心问题之一,我们将这一问题归为 大模型的外推性

大模型的外推性目前主要在这两个方面考虑,也是提升最有效的两个角度:

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

本文从这两方面进行深度探讨大模型的位置编码和外推性问题。

一、位置编码基础介绍

对于一个token ,其表征向量记作 ,对于一个句子 则表示为 。那么可以通过一个映射函数将这个句子中的token表征为

其中 表示第 和第 个token。

1.1 绝对位置编码

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

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

  • 相邻的位置编码向量很相似,较远的位置编码向量差异很大,说明基于正余弦函数的绝对位置可以表征位置的相关性;
  • 不需要显式地学习位置,提高效率。

最后 映射函数可以定义如下所示。即输入表征为token的表征和其对应的绝对位置表征。

该表征通常是直接将位置表征与Word表征直接相加。

1.2 相对位置编码

(1)显式的相对位置
对于第 和第 个位置的token,其相对位置可以表示为,即两个token之间的相对距离,且由最大最小值做约束(相对位置不能超过最大值或小于最小值)。

因此,相比于绝对位置,相对位置只需要有表征向量即可,即在计算两个token之间的attention值时,只需要在attention计算过程中注入这两个位置对应的相对位置 对应的相对位置表征向量即可:

这样一来,只需要有限个位置编码,就可以表达出任意长度的相对位置(因为进行了截断),不管是选择可训练式的还是三角函数式的,都可以达到处理任意长度文本的需求。

该表征通常是直接将位置表征与Word表征直接相加。
参考论文:《Self-Attention with Relative Position Representations》

(2)Transformer-XL(XLNet)

将第 和第 个位置的QK计算进行了分解。引入了一些可学习的参数:

其中 表示待学习的第 个token的相对位置向量, 表示待学习的第 个token的相对位置向量。通过分解让相对位置注入在attention的计算过程中。

该表征通常是在Attention计算过程中融入绝对位置。

(3)Transformer-XL的改进

第二和第四项使用相对位置表征 来替换绝对位置表征。同时加入新的可训练参数

该表征方法在T5模型中被首次使用,参考论文:《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》

该表征通常是在Attention计算过程中融入相对位置。

(4)可训练偏置项

Transformer-XL中的位置表征是将QK分解为4项,而后面3个够项都有跟位置有关的参数,可以直接将后面的3项之和抽象为一个偏置:

进一步改造还可以得到:

以及:

这三种方法均是对Transformer-XL的表征形式进行改进。

二、RoPE旋转位置编码

RoPE(Rotary Position Embedding)的出发点就是“ 通过绝对位置编码的方式实现相对位置编码 ”,或者可以说是实现 相对位置编码和绝对位置编码的结合

这样做既有理论上的优雅之处,也有实践上的实用之处,比如它可以拓展到线性Attention中就是主要因为这一点。

2.1 复数的引入

假设 是对应位置的二维行向量(即每个位置都有两个向量来表征位置),因此这个二维向量可以用复数来代替(包括实部和虚部),因此他们的内积可以作为其对应的Attention值。

内积的计算可以由两个复数实现:,其中 表示共轭复数, 表示取复数中的实部。

两个二维向量的内积,等于把它们当复数看时,一个复数与另一个复数的共轭的乘积的实部。

因此当分别对 融入绝对位置时,即得到:

RoPE求解过程推导了如何确定获得每个位置编码是

可以发现,当乘以绝对位置 时,等价于复数运算中乘以 ,即相当于在复数空间中是相对位置 ,这样就巧妙地通过复数运算的形式将绝对位置转换为相对位置。

复数乘法的几何意义是向量的旋转,假设 表示向量 位置的位置编码,则有:

其中

等价于

后面两项的乘积本质就是向量 (或)的两个二维行向量。

当向量维度为 时( 为偶数),则可以扩展为:

每两个为一组二维向量,一共有 个组合,可以直接拼接作为维度的旋转位置编码。
二维扩展到多维的解读:Transformer升级之路:4、二维位置的旋转式位置编码 - 科学空间|Scientific SpacesTransformer升级之路:6、旋转位置编码的完备性分析 - 科学空间|Scientific Spaces

2.2 RoPE的实现

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

RoPE一种线性的实现如下所示:

RoPE的性质

(1)远程衰减

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

(2)优势

  1. 用一个旋转矩阵rotation matrix来对绝对位置进行编码,于此同时,meanwhile;
  2. 在自注意力机制中导入显式的位置依赖。
  3. 自由的序列长度;
  4. 随着相对位置的增大,而逐步延缓退化(=衰减)的inter-token dependency;
  5. 用相对位置编码来“武装”线性自注意力。

具体来说,RoPE 使用 旋转矩阵对绝对位置进行编码 ,同时将 显式的相对位置依赖性纳入自注意公式中

【核心的两个点,一个是“旋转矩阵”,一个是“显式的相对位置依赖”】。

三、长文本外推性

外推性 的含义是在长文本表征过程中,如何在训练阶段只需要学习有限的长度,即可以在推理阶段能够延伸长度至若干倍且依然保持不错的性能和效果。

长度外推性是一个训练和预测的长度不一致的问题,主要体现在两个方面:

  • 预测的时候用到了没训练过的位置编码(不论是绝对位置还是相对位置);
  • 预测的时候注意力机制所处理的token数量远超训练时的数量。

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

  • 通过类似滑动窗口的结构,约束一个每个token只能对局部区域的token计算Attention值,因此对于相对位置大小不会超过窗口大小,解决了第一个问题;
  • Attention只会在窗口内计算,避免了对大量的token的Attention进行加权平均导致最终权重过度“平滑”现象。

在实现过程中,本质上是在计算完之后减去一个矩阵,即 ,其中的形状如下图所示:

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

3.1 ALIBI

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

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

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

3.2 KERPLE

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

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

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

在logarithmic模式中, 控制了整体的量,相当于ALIBI中的 , c是一个常数。苏神版简化写作:

3.3 Sandwich

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

Sandwich与KEPRLE是同一个作者提出的,其对KEPRLE进行了少量改进,即对应的公式改写为:,其中 可以使用Sinusoidal编码表示,即:

由于Sinusoidal编码在单调性上等价于 ,都是线性递增形式,因此Sandwich只是改头换面了。

3.4 XPOS

论文:《A Length-Extrapolatable Transformer》
参考解读:Transformer升级之路:7、长度外推性与局部注意力

其在RoPE的基础上引入了局部注意力。RoPE的本质是:

其中:

在第2大节中已经介绍了RoPE是通过使用复数来实现绝对位置表示相对位置的。XPOS通过引入一个新的标量 ,即有:

由于RoPE相对位置是 ,而不是 ,因此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(01, N) * n

(3) Attention Scale

原始的Attention计算公式为:

只需要简单的改成下面即可:

其中 是训练时的最大长度, 是预测时的位置,通常来说。直觉来看,就是直接在计算时,根据其相对位置来控制Attention的值。当 距离很远时, 的值会很大,会使得整体Attention归一化后会比较平缓,有助于解决外推性问题。

(4)全局依赖

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

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

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

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



进NLP群—>加入NLP交流群

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
楊绛先生的婚姻三要素說得到位华硕海外推出 PN64-E1 迷你主机:13 代酷睿处理器,2.5G 网口、499 美元起华为不打算海外推出Mate 60 Pro,小红书回应旅游搭子或涉黄,机票燃油费上调,苹果或推出C口耳机,这就是今天的其他大新闻!传OpenA正测试DALL·E 3模型;华为语音助手支持AI大模型;亚马逊组建AI大模型新团队丨AIGC大事日报聊聊大厂都怎么防止重复下单?叹李玟华为将推盘古数字人大模型;搜狗原CMO加盟王小川公司;首个线性注意力Transformer大模型推出丨AIGC大事日报微星海外推出 Cubi 和 Pro DP 系列迷你主机:搭载英特尔 12/13 代处理器,雷电 4 接口国内第一批大模型准入资质公布,聊聊海内外大模型创业的近距离观察 |极客周末小模型如何比肩大模型,北理工发布明德大模型MindLLM,小模型潜力巨大大数据在大模型趋势下的“新姿态”:大模型与企业数据充分协同Elecrow 海外推出 CrowView 便携显示器:14 英寸大小,众筹价 115 美元混合精度下位置编码竟有大坑,llama 等主流开源模型纷纷中招!百川智能给出修复方案CMF:2023中国宏观经济专题报告:大模型:原理、进展及其影响华府消息|美国务院高层不让其外交官就巴以局势提“停火”“结束暴力”等词汇科研上新 | 大模型推进科研边界;大模型的道德价值对齐;优化动态稀疏深度学习模型;十亿规模向量搜索的高效更新十亿参数,一键瘦身!「模型减重」神器让大模型狂掉3/4 | 最“in”大模型谷歌证实大模型能顿悟,特殊方法能让模型快速泛化,或将打破大模型黑箱盘古大模型之外,华为首秀大模型时代「硬实力」养狗聊聊大宝的期末考试成绩,一个教训提醒更多孩子注意大模型可以摆脱落地难的问题吗?InfoQ 大模型技术应用创新大赛正式开启!青玉案 粒子晨梦Llama也中招,混合精度下位置编码竟有大坑,百川智能给出修复方案沈向洋周明杨格大模型激辩:继续爆堆参数,大模型能出现新的「智能涌现」吗?iOS 17 再次调整「结束通话」按钮位置 / 腾讯透露通用大模型进展 / 视觉中国最新回应5小时get大模型时代提效神器:写出高价值大模型Prompt!《梁祝新歌》&《身骑白马》2023黄河旅游海外推介活动在洛杉矶隆重举行给大模型生成文本发身份证:针对大模型生成文本的可编码水印技术Epomaker 海外推出 TH80-X 键盘:自带旋钮屏幕、三模连接,99.99 美元大模型与知识图谱融合?爱数推出基于大模型的领域认知智能产品与方案上海发布大模型政策,打造AI“模”都;罗永浩“曲线上市”成功;华为云正式发布盘古大模型3.0……北京理工大学发布双语轻量级语言模型,明德大模型—MindLLM,看小模型如何比肩大模型个体奋斗无效?聊聊大厂与创业公司该怎么选|极客周末
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。