并行上下文编码的长文本语言建模
内容提要
本文综述了大语言模型上下文窗口扩展方法,包括CLEX、RoPE调整、并行上下文窗口、语义压缩、LargeRoPE、ICAE、E2-LLM、Giraffe和YaRN等。这些方法通过位置编码外推、注意力缩放、上下文压缩和持续预训练,将上下文扩展至训练长度的数倍甚至32k以上,在长文本问答、摘要等任务中表现优异且计算高效。
延伸解读
长上下文扩展的两条技术路线
文章综述的方法可分为两类:一是通过位置编码外推(如RoPE调整、YaRN、Giraffe)直接扩展模型可处理的序列长度;二是通过上下文压缩(如语义压缩、ICAE)减少输入冗余,间接提升有效上下文。前者往往需要微调或持续预训练,后者则可能无需显著计算开销。读者可根据自身资源与任务需求选择合适路径。
计算效率与性能的权衡
YaRN仅需先前方法十分之一的令牌和2.5倍的训练步骤即可扩展上下文窗口,而语义压缩无需微调即可处理6-8倍长度的文本。这些方法在提升长文本任务表现的同时,注重计算效率。但需注意,部分方法如LargeRoPE虽能扩展至2048k tokens,可能伴随短上下文性能的保持问题,实际部署时需评估任务对长度与精度的双重需求。
持续预训练的有效性验证
文章提到,长上下文持续预训练比从头开始的长序列预训练更高效且同样有效,且预训练数据中大量长文本并非达到强性能的关键。这为资源有限的研究者提供了实用启示:基于现有模型进行持续预训练,并合理设计数据混合与训练课程,可能以较低成本实现上下文扩展。
评估基准与开源模型
为衡量长上下文能力,文章介绍了FreeFormQA、AlteredNumericQA和LongChat-Lines三个新评估任务,并发布了Giraffe系列模型(4k、16k、32k上下文)及YaRN微调的Llama 2检查点(64k、128k)。这些开源资源为后续研究提供了可复现的基准和工具,有助于推动长上下文语言建模的标准化比较。
Q&A
有哪些方法可以扩展大语言模型的上下文窗口?
文章综述了多种方法,包括CLEX、RoPE调整、并行上下文窗口(PCW)、语义压缩、LargeRoPE、ICAE、E2-LLM、Giraffe和YaRN等。这些方法通过位置编码外推、注意力缩放、上下文压缩和持续预训练等技术来扩展上下文窗口。
YaRN方法有什么特别之处?
YaRN是一种计算高效的RoPE扩展方法,它扩展上下文窗口所需的令牌数量比先前方法少10倍,训练步骤少2.5倍。使用YaRN,LLaMA模型可以有效地利用和推广到比原始预训练更长的上下文,并超越了先前的最新技术水平。
Giraffe模型是如何扩展上下文长度的?
Giraffe通过线性标度方法扩展上下文长度,并发布了三个新的13B参数长上下文模型:从基础LLaMA-13B训练的4k和16k上下文模型,以及从基础LLaMA2-13B训练的32k上下文模型。研究发现线性标度是扩展上下文长度的最佳方法,并且在评估时使用更长的标度可以获得进一步的收益。
并行上下文窗口(PCW)是如何工作的?
PCW通过将长上下文分成适合于模型的块(“窗口”)来限制注意机制的应用范围,并在窗口之间重用位置嵌入。这种方法可以缓解任何现成LLM的上下文窗口限制,并在不同输入和输出空间的任务中展示了实质性的改进。
语义压缩方法如何扩展LLM的上下文窗口?
语义压缩方法通过信息论中的源编码概念和使用预训练模型,减少长输入的语义冗余后再传递给LLM进行下游任务。这使得基于Transformer的LLM能够适用于长度为原先6-8倍的文本,而无需显著的计算开销或微调,并在问答、摘要、少样本学习和信息检索等任务中有效扩展了上下文窗口。
长上下文持续预训练有什么优势?
长上下文持续预训练相对于从头开始的长序列预训练更高效且同样有效。文章中的消融实验表明,在预训练数据集中有大量长文本并不是达到强大性能的关键。通过持续预训练,模型可以在长上下文任务上取得显著提升,例如70B变体在长上下文任务中超过了gpt-3.5-turbo-16k的整体性能。