LLM前后文窗口超过200万,无需改变结构。 复杂的微调,轻松扩展8倍
LongRoPE方法首次将LLM的窗口扩展到2048ktoken,只需微调一下,就可以实现与短前后窗口相似的性能!
大语言模型(LLM)一般追求更长的东西「前后文窗口」,但是由于微调成本高,长文本稀缺,新token位置引入的灾难价值(catastrophic values)等问题,目前模型前后的窗口大多不超过128ktokenen
近期,Microsoft Research的研究人员提出了一种新的LongRoPE模型,首次进行预训练 LLM 前后文窗口扩展到2048ktoken,在256k的练习长度下,只需要1000个微调步骤,同时还可以保持原来短前后文窗口的性能。
主要包括LongRoPE。三个关键创新点:
1. 通过高效搜索识别和应用位置插值中的两种不均匀性,为微调提供了更好的初始化,并在非微调的前提下完成。 8 倍拓展;
2. 引入渐进扩展战略,首先微调 256k 长度的 LLM,然后在微调扩展的LLM上进行第二次位置插值,以实现。 2048k 前后文窗口;
3. 重新调整8k长度。 为了恢复短前后文窗口性能,LongRoPE。
在 LLaMA2 和 Mistral 在各种任务中,大量的实验证明了这种方法的有效性。
通过 LongRoPE 扩展模型保留了原有的结构,只对位置嵌入略有修改,并能重复使用大多数现有的优化。
01 位置插值不均匀
Transformer模型需要明确的位置信息,通常嵌入位置。(position embedding)这种方法表示输入token的顺序。
本文中的位置嵌入表示方法主要来自RoPE, 位置检索为 n 相应的标记 RoPE 代码可以简化如下:
其中,d 就是嵌入层,nθi 就是在位置上标记 n 上部旋转角度,θi = θ -2i/d 表示转动频率。是的 RoPE 中,θ 默认基准值为 10000。
受 NTK 和 YaRN 受到启发,研究人员注意到这两种模式可以从非线性嵌入中提高性能,特别是考虑到 RoPE 在进行特殊的内插法和外推法时,每个维度的不同频率。
但是,目前的非线性在一定程度上依赖于人工设计的规则。
自然而然地引出了这个问题两个问题:
1. 目前的位置插值是否为最佳?
2. 是否存在尚未探索的非线性?
为回答这些问题,研究人员使用进化搜索(evolution search)找出LLaMA2-7B更好的非匀称位置插值。PG19验证集中使用的5个随机样本,以常错性为导向。
科研人员通过实证研究,总结了几个主要发现。
发觉1:在RoPE层面上表现出极大的不均匀性,当前的位置插值方法无法有效地处理这些不均匀性;
在公式 2 中向每个 RoPE 层次搜索最好 λ。
与PG19和Proof-pile测试相比,研究人员集中使用不同的方法。 LLaMA2-7B 没有微调的情况下的复杂性。
从结果来看,获得的解决方案有了明显的改进,说明目前的线性解决方案(PI,positional interpolation)与非匀称(Dynamic-NTK 和 YaRN)插值方法都不是最好的。
值得注意的是,YaRN 在 PG19 上面的表现不如 PI 和 NTK,因为它不能达到非微调 LLM 前后窗口长度的目标。
比如,在 8k 前后文大小的情况,YaRN 的困惑度在 7k 之后达到峰值。
公式,通过搜索 2 里的重标度(rescaled)因素λ与PI相比,变得不均匀、在YaRN的分组计算中,NTK的公式转换与固定标度s不同。
这些不匀称因素大大提高了LLaMA2在8k和16k前后的语言建模性能(即复杂性),而无需微调。根本原因是原始RoPE,尤其是关键层面,嵌入由此产生的位置高效保留,从而降低了LLM区分类似token位置的难度。
发觉2:RoPE推断输入序列中的初始词块应该减少插值;
对于输入序列中的初始n个token,假设RoPE应该做更少的插值,因为它会获得更多的关注结果,这对于关注层来说尤为重要,就像在Streaming一样。 LLM和 LM-Infinite 中间看到的那样。
为了验证这一点,研究人员使用PI和NTK将前后文窗扩展到 8k 和 16k,保留前 n(0,2, ..., 256)token,不进行插值。n=0 那时,它又回到了原来的状态 PI 和 NTK

可以在上表中观察到2个结果:
1. 在不进行位置插值的情况下保留起始token确实可以提高性能。
2. 最佳起始token数n取决于目标扩展的长度。
发觉3:非匀称位置插值可以在微调和非微调设置中有效扩展。 LLM 前后文窗口。
虽然已经证明,在不进行微调的情况下,搜索到的非匀称位置插值可以显著提高8k和16k的扩展性能,但需要微调的扩展时间更长。
所以用搜索到的RoPE微调了LLaMA2-7B的64k前后文窗口大小。
从结果可以看出,在微调LLaMA2-7B之前和之后,这种方法明显优于PI和YaRN。主要原因是非匀称位置插值的高效使用,信息损失最小化,微调提供了更好的初始化。
受上述发现的启发,研究人员提出了LongRoPE,首先引入了一种高效率的优化算法,以充分利用这两种不均匀性,并将LLM前后的窗口扩展到 200 万个token
02 实验结论
研究人员在LLaMA2-7B和Mistral-7B模型上应用了LongRoPE,并从三个方面对其性能进行了评估:
1. 扩展前后文件的长文档 LLM 的困惑度;
2. 密匙(passkey)搜索任务,这个任务衡量模型从大量无关文本中搜索简单密钥的能力;
3. 标准LLM标准4096前后文窗口;
长序列语言建模在256k范围内进行
通过不同的插值方法在Proof-pile和PG19上扩展 LLaMA2 和 Mistral 的困惑度。
从实验结论中可以得出两个关键观点:
1. 从 4k 到 256k 从评估长度来看,扩展模型显示出整体混乱程度下降的趋势,说明模型有实力使用更长的前后文;
2. 即使是前后文窗口的长度也是 16 倍数(这通常是在较短的前后文长度下维持性能所面临的挑战),我们的 LongRoPE-2048k 模型在 256k 在前后文长度上,性能仍然优于最先进的基线模型。

长序列语言建模超过2000k
研究人员使用Books3数据来评估长文档的有效性。
随机抽取20本书,每本书的长度超过2048ktoken,并使用256k的滑动窗口进行评估。

通过结果可以看出,LongRoPE已经成功地将LLaMA2-7B和Mistral-7B的前后文窗口扩展到2048k,同时在8k-128k的较短长度内,实现了与基线相当或更好的混乱。
也能观察到2048k LLaMA2和Mistral的显著性能差异:Mistral在较短的长度上优于基线,但是当混乱度超过256k时,
LLaMA2的性能与预期一致:随着时间的推移,混乱将会减少,在1024k和2048k时略有增加。
另外,在LLaMA2上,LongRoPE-在256k比128k的微调长度下,2048k表现更好,主要是因为次级延伸比128k好。(secondary extension ratio)较小(即8倍对16倍)。
相比之下,Mistral在微调128k的窗口尺寸方面表现更好,主要是因为对Mistral的128k和256k微调,研究人员遵循YaRN的设置,使用16k的训练长度,影响了Mistral在微调后进一步扩展前后窗口的能力。
参考资料:
https://arxiv.org/abs/2402.13753
本文来自微信微信官方账号“新智元”(ID:AI_era),作者:新智元,36氪经授权发布。
本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。
免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com




