高效拓展LLM高低文窗口 北大联结MSRA提出PoSE 用短输入模拟长样本
论文标题:PoSE: Efficient Context Window Extension of LLMs via Positional Skip-wise Training
论文链接:
代码链接:
一、钻研简介
大型言语模型(LLMs)通常有一个预约义的高低文窗口大小,这限度了它们在长输入的场景中的经常使用。为了使 LLMs 顺应更长的输入,通常须要用指标长度的样本对其启动微调(全长微调),由此造成训练老本十分低廉。
举例来说,在 Positional Interpolation[1]这份上班中,将 LLaMA 的高低文窗口从 2048 拓展到 8192 经常使用了 32 张 A100,关于更大的高低文窗口则经常使用了 128 张 A100。
为了将训练长度与指标长度解耦合,以成功高效的高低文窗口扩展,咱们提出了一种称为位置腾跃式训练(Positional Skip-wisE training, PoSE)的方法,在原始的高低文窗口中模拟更长的训练样本。
如下图所示,咱们将原始的高低文窗口分红几块,而后引入不同的 bias 项来调整每个块的位置编码。关于每一条训练样本,这些 bias 项和块的长度都会出现变动,因此经过少量的训练,模型能顺应指标长度内的一切位置。
试验结果标明,PoSE 有以下三方面的长处:
二、技术背景
旋转位置编码 RoPE:RoPE 是当下干流的位置编码模式,被 LLaMA、GPT-J 等大言语模型所驳回。给定一个 ,RoPE 经过如下模式编码位置消息:
其中 。此前的相对位置编码多是间接作用在输入向量 上,与之不同的是,RoPE 是在作用在每一层的 query 和 key 向量上。RoPE 可以看作是一种相对位置编码,给定位置
高低文窗口扩展:给定一个以 为原始高低文窗口长度的大言语模型,咱们的指标是其允许的高低文长度拓展到 个输入内能较好地坚持原有的性能。
位置插值(PI):为了将 LLM 的高低文窗口从
但是,通常标明[1] [2], 这局部的位置在前向流传时会发生劫难性的离群值,从而造成训练不可到达预期的成果。这重要是由于模型在预训练时只见过
这些位置,不可很好的泛化到外推进来的这局部位置。
为了处置这个疑问,Position Interpolation[1]这份上班首先提出用“内插”替代“外推”,设定缩放因子 ,并将上述留意力公式修正为 (也就是将位置编码线性修正为
这种模式可以增加离群值的出现,将高低文窗口拓展到了 32k。在此基础上,NTK 提出经过修正 来启动位置插值,取得了更好的成果。YaRN 则依据不同的维度,对上述线性插值和 NTK 启动了整合。
三、方法形容
虽然上述 Linear / NTK / YaRN 等插值模式能必定水平上处置位置外推的疑问,他们依然须要用指标长度的训练样原本训练模型(即全长微调)。
随着指标长度的参与,平方级别的计算复杂度带来的开支照旧是难以接受的。因此,在插值技术的基础上,咱们提出调整原始的高低文窗口中的位置编码,来模拟更长的训练样本,从而成功高效的高低文扩展。
位置编码的调整重要有两个考量:
第一步:咱们将原高低文窗口 ,则这个块的位置编码如下:
第二步:咱们从团圆平均散布
为了防止块之间位置编码的重合,咱们施加了 这一限度。值得留意的是,关于每条数据,咱们会从新采样每个块的大小和腾跃偏置项。直观过去说,经过这种模式,咱们扩展了原高低文窗口能笼罩的相对位置范围,并且位置编码的不延续只出当初块之间,因此尽或许地坚持了预训练阶段的位置编码结构。
第三步:选定每个块内的内容。给定输入文本 ,咱们用相似的方法来抽取每个块内的填充的内容:
咱们也尝试了其它 ,此时块间的内容也是延续的;或如 ,此时调整后的位置编码恰恰对应训练数据在原始文本中的位置。试验结果标明,这几种赋值模式并没有显著的差异。
第四步:位置插值及超参初始化。咱们经常使用位置插值来使训练更稳固。
四、试验剖析
1. 试验设置
训练环节:咱们重要经常使用 LLaMA-7B 作为基模型,关于一切设定都只训练 1000 步,训练时长度为 2k,batch size 为 64。咱们经常使用 8 张 V100 启动训练,1 张 A100 启动推理。关于咱们的方法和各个 baseline,咱们都自动驳回线性插值来使训练更稳固。
2. 重要结果
言语模型:
咱们经常使用滑动窗口的模式来计算困惑度 PPL。在 GovReport 和 Proof-Pile 两个数据集上,PoSE 的性能和 Full-length 十分凑近,远超未做窗口扩展的版本(Original)和随机位置的版本(RandPos)。且随着窗口长度从 2k 参与到 32k,PPL 呈降低趋向,说明拓展后的模型能充沛应用更长的高低文消息。
明码检索:
在明码检索义务上,应用 PoSE 拓展到 16k 和 32k 的模型能区分在 16k 和 32k 的高低文内取得凑近 100% 的明码检索准确率,说明模型能关注到指标长度内的每个位置。
时空效率:
在时空效率方面,全长微调的训练时长和内存消耗随指标长度的参与而迅速增长,相比之下,PoSE 须要的训练期间和内存较为稳固。并且在每个期间步上,性能和全长微调都很凑近。
兼容性:
兼容性方面,PoSE 可以适配 LLaMA、LLaMA2、GPT-J、Baichuan2 等各种基于 RoPE 的基础模型,以及 Linear、NTK、YaRN 等各种插值战略,展现出较好的普适性。其中 NTK 在最后阶段会有一个 PPL 的突增,这重要是由于给定缩放因子,NTK 实践成功的缩放倍数会略小于[3]。YaRN 处置了这个毛病,取得了三者中最好的成果。
超长高低文拓展的后劲:
只经常使用 2k 的训练长度和 1000 步的训练步数,咱们尝试了将 LLaMA 模型拓展到 128k。试验标明,在经常使用 YaRN 的状况下,模型在 128k 的窗口下依然能坚持较低的 PPL。
原窗口内的言语才干:
最后,咱们剖析了经由 PoSE 训练事先的模型在原窗口内的言语才干。可以看出,和全长微调以及原始模型相比,PoSE 模型才干的损失十分庞大,这说明 PoSE 在拓展高低文窗口的同时较好地坚持了模型的基础才干。
五、总结与探讨
本文提出了一种位置腾跃式训练(PoSE)来高效的拓展大言语模型的高低文窗口。经过调整位置编码,PoSE 在原始的高低文窗口中模拟更长的训练样本,以到达解耦合训练长度和指标长度的目的。
试验结果标明 PoSE 在和全长微调坚持等同性能的状况下,大大增加了训练所需的时空开支,并体现出良好的普适性和超长高低文扩展的后劲。咱们置信 PoSE 将大大降低高低文窗口拓展的老本,使更多人可以介入到关系的钻研中来,从而推进长高低文建模畛域的极速开展。
PoSE 成功于 2023 年 9 月,咱们置信这种位置腾跃的思绪是 Long Context 的有效处置打算。结合近几个月来 Long Context 关系钻研的停顿,咱们以为 PoSE 或许有以下一些方面值得进一步探求:
原文链接: