编译 | 曾全晨 审稿 | 王建民
今天为大家介绍的是来自google研究团队的一篇大型语言模型的论文。在以指令形式构建的数据集上对语言模型进行微调已被证明可以提高模型的性能,并增强其对未见任务的泛化能力。文章重点探讨指令微调的几个方面:(1)任务数量的扩展,(2)模型规模的扩展,以及(3)链式思考数据上的微调。实验发现,以上几个方面的指令微调显著提升了多个模型类别(PaLM、T5、U-PaLM)、评估设置(零样本、少样本、链式思考)和评估基准(MMLU、BBH、TyDiQA、MGSM、开放式生成、真实毒性提示)的性能。
人工智能的一个重要目标是开发能够泛化到未见任务的模型。在自然语言处理(NLP)领域,预训练语言模型在实现这一目标方面取得了显著进展,因为它们可以根据自然语言描述执行任务。进一步的进展是通过将语言模型在以指令形式构建的任务集上进行微调,使模型对指令的响应更好,并减少了对少样本示例的需求。文章在指令微调方面进行了几方面的改进。首先,作者研究了指令微调的扩展影响。实验结果表明,指令微调在任务数量和模型规模上都具有良好的扩展性。它们各自的扩展行为表明未来的研究应进一步扩大任务数量和模型规模。其次,研究了微调对模型执行推理任务的影响。实验结果显示,之前的指令微调方法(不包括链式思考)会严重降低在链式思考评估中的性能,而仅仅加入九个链式思考数据集到微调混合中就能够在所有评估上实现更好的性能。
图1 作者对各种语言模型进行1.8K个以指令形式表达的任务的微调,并在未知任务上进行评估。同时进行有示例和无示例(即零样本和少样本)以及有链式思维和无链式思维的微调,使其能够在各种评估场景下进行泛化。
基于这些发现,作者使用540B参数的模型训练了Flan-PaLM,并将微调任务数量增加到1.8K,并包括了CoT数据。Flan-PaLM的表现优于PaLM,在几个基准测试中取得了新的最先进水平。例如,Flan-PaLM的改进推理能力使其能够利用CoT和自一致性在Massive Multi-task Language Understanding(MMLU)上达到75.2%的性能。与PaLM相比,Flan-PaLM在多语言能力方面也有所提高,如在TyDiQA上提升了14.9%,在少见语言的算术推理上提升了8.1%。在人工评估中,Flan-PaLM在一系列具有挑战性的开放式生成问题上明显优于PaLM,表明其可用性得到了改善。
表1 平均五次测试的MMLU得分(百分比)对于57个任务,包括模型和人类准确性比较
图2 微调数据包括473个数据集,146个任务类别和1836个任务。
Flan 微调
图 3
表 2
作者使用多个数据源(图2)和各种指令模板类型(图3)进行指令微调。作者将这个微调过程称为Flan(Finetuning language models),并将“Flan”添加到微调后的模型名称中(例如,Flan-PaLM)。作者展示了Flan在多种模型规模和架构上的适用性(表2)。
以往的文献表明,在指令微调中增加任务数量可以提高对未知任务的泛化能力。在文中,作者通过结合先前研究中的四个任务混合(Muffin、T0-SF、NIV2和CoT)来扩展到1836个微调任务,如图2所总结的。Muffin(80个任务)包括了62个任务以及在本研究中新增的26个任务,其中包括对话数据和程序合成数据。T0-SF包括了193个任务,但与Muffin中使用的数据没有重叠(SF代表“sans Flan”)。NIV2包括了1554个任务。
作者将指令微调应用于各种模型系列,包括T5、PaLM和U-PaLM。这些模型系列涵盖了各种规模,从Flan-T5-small(80M参数)到PaLM和U-PaLM(540B参数)。对于每个模型,作者采用相同的训练过程,除了一些超参数:学习率、批量大小、dropout和微调步骤。作者使用恒定的学习率调度,并使用Adafactor优化器进行微调。值得注意的是,与训练计算相比,用于微调的计算量只占很小一部分,如表2所示。
扩展到540B个参数和1.8K个任务
图 4
表 3
作者首先通过在模型大小和微调任务数量两个方面进行扩展来考察对保留任务性能的影响。对三种PaLM模型大小进行实验:8B、62B和540B。为了扩展任务数量,我们按顺序添加任务混合物,从任务最少的混合物到任务最多的混合物:CoT、Muffin、T0-SF和NIV2。
图4显示了扩展这两个变量对保留基准的归一化平均值的联合影响。各个基准的结果在表3中报告。首先发现对于所展示的三种模型大小,与无微调相比,多任务指令微调显著提高了性能。性能提升范围为9.4%至15.5%。其次,增加微调任务的数量会提高性能,尽管大部分改进来自使用282个任务以内。关于在282个任务之后性能改进较小的可能有两个解释。一种解释是额外的任务不够多样化,因此没有为模型提供新的知识。另一个解释是,多任务指令微调的大部分改进来自于模型学习更好地表达它已经从预训练中获得的知识,而超过282个任务对此没有太大帮助。这第二个解释有道理,因为预训练数据包含780B个标记,而指令微调只使用了1.4B个标记(占预训练标记的0.2%)。
最后,可以额看到将模型规模增加一个数量级(即从8B到62B或从62B到540B)会大幅改善微调和非微调模型的性能。需要注意的是,确定指令微调对于小型模型或大型模型的改进程度(相对于没有微调的基准)可能会更加复杂。例如,尽管8B模型的绝对改进幅度大于540B模型(8B为15.5%,540B为9.4%),但540B模型的错误率相对减少的幅度更大(540B为18.4%,8B为16.6%)。通过绘制这样的扩展曲线,可以洞察进一步扩大模型规模和任务数量如何提高性能。将模型规模扩大一个数量级(尽管具有挑战性)预计会带来显著的性能提升。扩大微调任务的数量也应该提高性能,尽管可能只是逐步地改进。总体而言,绘制的扩展曲线表明未来的工作应该继续扩展指令微调。
使用链式思维注释进行微调
表 4
作者首先展示了将九个具有链式思维(CoT)注释的数据集包含在微调混合中如何提高推理能力。表格4显示了Flan-PaLM在四个保留评估基准上的CoT提示能力超过了PaLM的表现。对于BBH基准,作者遵循Suzgun等人的协议,将任务分为自然语言处理任务和算法任务。表格4还展示了如何将CoT提示与自我一致性(SC)结合起来,在多个基准上实现了新的最佳表现。例如,在MMLU基准上,Flan-PaLM 540B实现了75.2%的成绩。这相比于先前的模型有明显优势。在多语言数学问题的MGSM基准上,加入CoT + SC的Flan-PaLM显著改善了最佳表现,甚至在欠表示语言上也取得了高分,例如孟加拉语达到69.6%。相比之下,加入CoT + SC的PaLM只在法语上取得63.6%的成绩,在德语上取得61.2%的成绩,这些都是高资源语言。最后,在GSM8K基准上,加入CoT + SC的Flan-PaLM取得了83.9%的新最佳表现,但需要注意的是,GSM8K的训练数据集包含在指令微调混合中。
图 5
接下来,作者对包含九个CoT数据集的指令微调进行了消融实验。作者将评估结果分为保留的CoT基准(MMLU、BBH和MGSM)和保留的非CoT基准(MMLU、BBH和TyDiQA),并计算CoT和非CoT的归一化平均值。在图5左侧,与仅进行CoT微调相比,结合非CoT和CoT微调的性能在保留的CoT基准上更强。图5右侧证实了预期结果,即与仅在非CoT上微调相比,结合CoT和非CoT微调不会损害在非CoT任务上的性能。
图 6
图 7
指令微调使用包含和不包含示例的CoT数据的最后一个好处是,由此产生的模型能够在零样本设置中进行CoT推理。这个零样本设置很重要,因为它测试了模型在没有CoT的少样本示例的情况下产生自己的推理能力的能力,而这可能需要大量的提示工程来正确组织。图6显示了针对23个未知的具有挑战性的BIG-Bench任务的BBH基准测试中,Flan-PaLM模型通过利用由短语“let's think step-by-step”激活的CoT推理能力可以实现改进的性能。相比之下,未经微调的PaLM不能生成允许其解决这些问题的CoT。图7显示了PaLM和Flan-PaLM在零样本CoT方面的三个示例。
混合之后
表 5
在前面的结果基础上,作者现在展示了指令微调的普适性,将其应用于不同大小、架构和训练目标的多个模型。除了PaLM系列模型外,还对具有编码器-解码器架构的T5模型进行指令微调,而不是PaLM的仅解码器架构。作为PaLM 62B模型的扩展版本,作者进行了指令微调的cont-PaLM模型,它是从PaLM-62B初始化的62B PaLM模型,并在此基础上进行了额外的500B标记的预训练。最后,作者进行了指令微调的U-PaLM模型,它是从PaLM-540B初始化的540B PaLM模型,并使用UL2目标进行了额外的20k步预训练。这些评估结果显示在表5中。指令微调大幅改善了所有模型类型的标准化平均性能。对于没有进行指令微调的T5模型,作者使用了进行语言建模的标准目标在C4上训练的经过LM适应的模型。考虑到评估基准的难度以及T5模型不是多语言的事实,与未经微调的模型相比,T5模型从指令微调中受益最大。这些结果对于一些基准测试来说非常强大,例如,Flan-T5-XL仅有3B参数,MMLU得分为52.4%,超过了GPT-3 175B的43.9%得分。作为另一个亮点,作者实现的整体最强模型是将指令微调与U-PaLM模型中使用的UL2持续预训练相结合。这个结果表明,指令微调和UL2持续预训练是互补的、计算效率高的方法,可以改善语言模型的性能,而无需增加模型规模。
结论
在论文中,作者扩展了指令微调,并通过以下方式对Flan-PaLM进行了训练:(1)扩展到540B参数的语言模型,(2)扩展到1.8K的微调任务,以及(3)在微调中包含链式思维(CoT)数据。实验证明,模型的性能在模型规模更大和微调任务更多的情况下显著提高。此外,尽管之前的指令微调方法在CoT任务上性能下降,但与CoT数据一起微调可以改善所有评估指标的性能。Flan-PaLM在多个基准测试中达到了最先进的性能水平,例如在五次迁移学习多任务理解(MMLU)上达到了75.2%的性能。Flan-PaLM还具有改进的易用性,例如它可以在没有提示工程或少量样本的情况下进行零样本推理。
参考资料
Chung, H. W., Hou, L., Longpre, S., Zoph, B., Tay, Y., Fedus, W., ... & Wei, J. (2022). Scaling instruction-finetuned language models. arXiv preprint arXiv:2210.11416.