近年来,语言模型(LM)在自然语言处理(NLP)研究中变得更加突出,在实践中也越来越有影响力。一般来说,扩大模型的规模已被证明可以提升在一系列NLP任务中的性能。
不过,扩大模型规模的挑战也是显而易见的:训练新的、更大的模型需要大量的计算资源。此外,新的模型往往是从头开始训练的,无法利用以前的模型的训练权重。
对于这个问题,谷歌的研究人员探讨了两种互补的方法,在不额外消耗大量计算资源的情况下,大幅提高现有语言模型的性能。
首先,在 「Transcending Scaling Laws with 0.1% Extra Compute」一文中,研究人员介绍了UL2R,这是一个轻量级的第二阶段预训练模型,使用一个混合enoisers目标。UL2R提高了一系列任务的性能,甚至在以前具有接近随机性能的任务上释放出突发性能。
另外,在「Scaling Instruction-Finetuned Language Models」中,探讨了在一个以指令为措辞的数据集上微调语言模型的问题,这个过程我们称为 "Flan"。这种方法不仅提高了性能,而且还提高了语言模型对用户输入的可用性。
最后,Flan和UL2R可以作为互补技术结合在一个名为Flan-U-PaLM 540B的模型中,该模型在一系列具有挑战性的评估基准中,比未经调整的PaLM 540B模型表现高出10%。
UL2R的训练
传统上,大多数语言模型都是在因果语言建模目标上进行预训练,使模型能够预测序列中的下一个词(如GPT-3或PaLM)或去噪目标,其中模型学习从损坏的单词序列中恢复原句(如T5)。
尽管在语言建模目标中存在一些权衡,即因果关系的语言模型在长句生成方面表现更好,而在去噪目标上训练的语言模型在微调方面表现更好,但在之前的工作中,研究人员表明,包括这两个目标的混合enoisers目标在两种情况下都能取得更好的性能。
不过,在不同的目标上从头开始对大型语言模型进行预训练,在计算上是很困难的。因此,我们提出了UL2修复(UL2R),这是一个用UL2目标继续预训练的附加阶段,只需要相对较少的计算量。
我们将UL2R应用于PaLM,并将产生的新语言模型称为U-PaLM。
在实证评估中,我们发现,只需少量的UL2训练,模型就会有大幅改善。
例如,通过在PaLM 540B的中间检查点上使用UL2R,可以达到PaLM 540B在最终检查点的性能,同时使用了2倍的计算量。当然,将UL2R应用于最终的PaLM 540B检查点也会带来巨大的改进。
PaLM 540B和U-PaLM 540B在26个NLP基准上的计算与模型性能对比。U-PaLM 540B继续训练PaLM,计算量非常小,但在性能上有很大的提升。
使用UL2R的另一个好处是,它在一些任务上的性能比纯粹在因果语言建模目标上训练的模型好得多。例如,有许多BIG-Bench任务具备所谓「新兴能力」,即只有在足够大的语言模型中才有的能力。
虽然最常见的发现新兴能力的方式是通过扩大模型规模,但UL2R实际上可以在不扩大模型规模的情况下激发新兴能力。
比如在BIG-Bench的导航任务中,衡量模型进行状态跟踪的能力,除了U-PaLM,所有模型的训练FLOPs少于10^23个。另一个例子是BIG-Bench的Snarks任务,该任务衡量模型检测讽刺语言的能力。
对于来自BIG-Bench的两种能力,展示了新兴的任务性能,U-PaLM由于使用了UL2R目标,所以在较小的模型规模下实现了新兴性能。
指令微调
在第二篇论文中,我们探讨了指令微调,这涉及到在一组以指令为措辞的NLP数据集上对LM进行微调。
在之前的工作中,我们将指令微调应用于62个NLP任务的137B参数模型,比如回答一个小问题,对电影表达的情感进行分类,或者将句子翻译成西班牙语等。
在这项工作中,我们在超过1.8K的任务上微调了540B参数的语言模型。此外,以前的工作只对有少量例证的语言模型(如MetaICL)或无例证的零例证语言模型(如FLAN、T0)进行微调,而我们对两者的组合都进行了微调。
我们还包括思维链微调数据,这使得模型能够进行多步骤推理。我们把我们改进的方法称为 "Flan",用于微调语言模型。
值得注意的是,即使在1.8K的任务上进行微调,与预训练相比,Flan只用了一小部分的计算量(对于PaLM 540B,Flan只需要预训练计算量的0.2%)。
在1.8K个以指令形式表述的任务上对语言模型进行微调,并在新任务上对模型进行评估,这些任务不包括在微调中。分别在有/无示例的情况下进行微调(即0-shot 和 few-shot),以及有/无思维链的情况下进行微调,使模型可以在一系列评估场景中推广开来。
本文中,一系列规模的LM进行了指令-微调,目的是研究同时扩大语言模型的规模和增加微调任务数量的共同效果。
例如,对于PaLM类语言模型,包括8B、62B和540B参数规格。在四个具有挑战性的基准评估标准(MMLU、BBH、TyDiQA和MGSM)上评估了我们的模型,发现扩大参数数量和微调任务数量都能提高在此前未见的新任务上的性能表现。
扩大到540B的参数模型和使用1.8K的微调任务都能提高性能。上图y轴是四个评估套件(MMLU、BBH、TyDiQA和MGSM)的归一化均值。
除了更好的性能之外,指令微调LM能够在推理时对用户的指令做出反应,而不需要少量的示例或提示工程。这使得LM在一系列的输入中更加方便用户。例如,没有指令微调的LM有时会重复输入或不能遵循指令,但指令微调可以减轻这种错误。
我们的指令微调语言模型Flan-PaLM与没有指令微调的PaLM模型相比,对指令的反应更好。
强强联合,实现「1+1>2」
最后,我们表明,UL2R和Flan可以结合起来训练Flan-U-PaLM模型。
由于Flan使用来自NLP任务的新数据,并能实现零点指令跟踪,我们将Flan作为UL2R之后的次选方法。
我们再次对四个基准套件进行评估,发现Flan-U-PaLM模型优于只有UL2R(U-PaLM)或只有Flan(Flan-PaLM)的PaLM模型。此外,当与思维链和自洽性相结合时,Flan-U-PaLM在MMLU基准上达到了新的SOTA,得分达到75.4%。
与只使用UL2R(U-PaLM)或只使用Flan(Flan-U-PaLM)相比,将UL2R和Flan(Flan-U-PaLM)结合起来会带来最佳性能:四个评估套件(MMLU、BBH、TyDiQA和MGSM)的归一化平均值。
总的来说,UL2R和Flan是两种互补的方法,用于改进预训练的语言模型。UL2R使用相同的数据使LM适应denoisers的混合目标,而Flan则利用超过1.8K NLP任务的训练数据来教模型遵循指令。
随着语言模型变得更大,像UL2R和Flan这样无需大量计算就能提高一般性能的技术,可能会变得越来越有吸引力。
参考资料:https://ai.googleblog.com/2022/11/better-language-models-without-massive.html