YaRN是一种计算高效的方法,用于扩展基于transformer的语言模型的上下文窗口。相比于以前的方法,YaRN需要更少的token和训练步骤,具体来说是原来的1/10和1/2.5。
YaRN利用旋转位置嵌入(RoPE)来增强模型处理顺序数据和获取位置信息的能力,并通过压缩变压器来扩展上下文窗口。
实验证明,YaRN只需要400个训练步骤就成功实现了语言模型的上下文窗口扩展,相比以前的方法,训练样本量减少了10倍,训练步骤减少了2.5倍。
这项研究的项目地址是https://github.com/jquesnelle/yarn。
RoPE使用复杂数旋转,这是一种有效的编码位置信息的方式,使得模型能够在没有固定位置嵌入的情况下有效地编码位置信息。这有助于模型更准确地捕捉长期依赖关系。控制旋转参数是在模型训练过程中学习的,模型可以自适应地调整旋转以最好地捕捉标记之间的位置关系。
他们采用的方法是压缩变压器,通过使用外部存储库来扩展上下文窗口。模型可以在外部存储库中存储和检索信息,以便访问超出标准窗口尺寸的范围。他们还开发了将记忆组件添加到transformer架构的扩展,使得模型能够保留和利用过去标记或示例的信息。
实验结果显示,YaRN成功地实现了只需400个训练步骤的大型语言模型的上下文窗口扩展,这相当于原始预训练语料库的0.1%。相比于以前的方法,YaRN减少了10倍的训练样本量和2.5倍的训练步骤。这使得YaRN在计算上非常高效,而且没有额外的推理成本。
总的来说,YaRN改进了所有现有的RoPE插值方法,并以最小的实施努力替代了PI。微调后的模型在多个基准测试中保持了原有的能力,同时能够关注非常大的上下文范围。未来的研究可以探索内存增强技术,将其与传统的自然语言处理模型相结合。基于transformer的模型可以结合外部存储库来存储与上下文相关的信息,用于下游任务,如问答和机器翻译。