相关链接
这是一篇来自google的工作。作者将NLP大模型归纳为一个统一的架构FLAN,并基于此使用其它大模型,包括
- FLAN-UL2 20B
- FLAN-PaLM 62B和540B
- FLAN-T5-XXL 11B
原文翻译
摘要
现有的预训练模型通常针对特定类别的问题进行优化。到目前为止,似乎还没有就正确的架构和预训练设置达成共识。本文提出了一个统一的框架,用于预训练模型在不同数据集和设置下普遍有效。
- 首先,我们将架构原型与预训练目标分开,这两个概念通常被混淆。
- 接下来,我们提出了一种通用和统一的NLP自我监督视角,展示了不同的预训练目标如何互相转换,并且介绍了如何在不同目标之间进行插值来提高效果。
- 然后,我们提出了混合去噪(MoD)的预训练目标,将多样的预训练范例组合在一起。
- 我们还引入了模式切换的概念,其中下游微调与特定的预训练方案相关联。
我们进行了广泛的实验来比较多个预训练目标,并发现我们的方法通过在多个不同的设置中优于T5和/或GPT类模型来推动帕累托前沿。最后,通过将我们的模型扩展到20B参数,我们在50个公认的监督NLP任务中实现了SOTA性能,这些任务涵盖了语言生成(自动和人工评估)、语言理解、文本分类、问答、常识推理、长文本推理、结构化知识基础和信息检索。我们的模型还在上下文学习方面取得了强大的结果,在zero-shot SuperGLUE上优于175B GPT-3,并且在一次性摘要中将T5-XXL的性能提高了三倍。我们在https://github.com/google-research/google-research/tree/master/ul2 上发布了基于Flax的T5X模型检查点,适用于20B模型。
介绍
如今,NLP研究人员和实践者有各种各样的预训练模型可供选择(Devlin等,2018; Brown等,2020; Raffel等,2019; Radford等,2019; Liu等,2019; Yang等,2019; Thoppilan等,2022; Fedus等,2021; Du等,2021; Chowdhery等,2022)。当面临使用哪种模型的问题时,答案通常是“要看情况”,然后是“针对什么任务?”回答这个问题可能会让人不知所措,包括一系列精细的后续问题,比如“只用编码器还是编码器解码器?”,“跨度损坏还是语言模型?”进一步追问时,答案似乎总是取决于目标下游任务。
本文质疑并重新思考了这种思考过程,特别是回答了为什么预训练语言模型的选择应该取决于下游任务?以及如何预训练可以在许多任务上普遍有效的模型?本文提出了一个步骤,使普遍适用的语言模型成为可能。我们提出了一个“统一语言学习范例”或UL2的框架,该框架在非常多样化的任务和设置上始终有效。图1显示了UL2如何在普遍表现良好,而其他模型通常需要做出取舍的例子。
普遍模型的吸引力是明显的,因为这不仅允许集中精力改进和扩展单个模型,而不是将资源分散在N个模型上。此外,在资源受限的情况下,只能提供少数模型的情况下(例如,在设备上),最好拥有一个可以在许多类型的任务上表现良好的单个预训练模型。
UL2的核心是新提出的Mixture-of-Denoisers(MoD),这是一种预训练目标,可以在各种任务中实现强大的性能。MoD是几种已经确立的去噪目标以及新目标的混合体,即X-denoising(极端去噪),考虑极端的跨度长度和损坏率,S-denoising(顺序去噪)严格遵循序列顺序,以及R-denoising(正常去噪),是在(Raffel等,2019)中引入的标准跨度损坏目标。我们展示了MoD在概念上简单但对多种任务高效。
我们的方法利用了一个认知,即大多数经典预训练目标函数(pre-training objectives)的差异,在于模型所依赖的上下文类型。例如,
- span corruption objective类似于调用prefix language modeling (PLM)的多个区域,其中prefixes是non-corrupted tokens的连续片段,而目targets可以完全访问所有PLM segments的prefixes 。
- 当span接近完整序列长度的情况下,大致上是在long-range context下的language modeling objective(LM)。
因此,我们能够设计一个预训练objective,平滑地插值这些不同的范例(span corruption vs LM vs PLM)。
简单来说,这一段比较了span corruption、LM、PLM三个目标函数之间的差异和联系。换句话说,LM和PLM都可以看做是span corruption的一种变种。
笔者根据个人理解,会重新组织句子的语言。
还可以很容易地看出,每个denoiser的难度方式都不同。它们在外推(或内插)的性质上也有所不同。比如:
- 通过双向上下文(或未来)(即跨度损坏)来限制模型的上下文,使任务变得更容易,并变得更接近于补全事实。(这相当于内推)
- 与此同时,前缀语言建模/语言建模目标通常更加““open ended”。可以通过监控这些不同去噪目标的cross-entropy loss轻松观察到这些行为(这相当于外推)。
在这里,限制(bounding) 指的是通过限制模型的上下文,使其只考虑输入序列的一部分,从而使任务变得更加容易。例如,在跨度损坏中,模型只能看到文本中的一部分词语,因此只需要预测这些被替换成特殊标记的词,而不需要考虑整个输入序列。在这种情况下,模型被 “bounded” 到输入序列的一部分,使其只关注特定的语境,这可以使任务变得更加容易。同时,这种方式也使得预训练模型更加类似于基于事实的推理,因为模型需要从已知的上下文中推断出缺失的词语,以恢复原始输入。
在这里,“open ended”表示任务的性质更加开放、更加*。在前缀语言建模(PrefixLM)和语言建模(LM)等目标函数中,模型需要根据前面的上下文来预测下一个单词,这种任务是没有固定的答案或预测目标的,因为一个句子可以有很多种可能的续篇。因此,这些目标函数被认为更加“open ended”,因为它们涉及到更多的创造性和*性,需要模型具备更强的理解和推理能力。同时,这种*性也会使得预训练模型更加通用,可以应用于更广泛的下游任务。通过监测不同去噪目标的交叉熵损失,可以轻松地观察到这些不同的行为特征。
在这里,extrapolation和interpolation指的是模型在处理预测数据时如何推断或插值。extrapolation指的是在模型已知的数据范围之外进行预测,即模型需要预测一些超出已知数据范围的数据。相反,interpolation指的是在已知数据范围内进行预测,即模型需要预测一些在已知数据范围内的数据。不同的去噪器在 extrapolation 和 interpolation 上的表现也不同,例如,跨度损坏更适合于 interpolation,因为它会在已知的数据范围内进行预测,而前缀语言建模和语言建模等去噪器更适合于 extrapolation,因为它们更具有创造性和*性,需要模型更强的推理能力来预测超出已知数据范围的数据。