谷歌大模型指令微调:The Flan Collection
论文: The Flan Collection: Designing Data and Methods for Effective Instruction Tuning
GitHub: https:// github.com/google-resea rch/FLAN/tree/main/flan/v2
这篇论文是谷歌介绍大模型指令调优的相关工作。主要有以下几个重要结论:
- 使用 混合 的零样本提示(zero-shot prompt)和少样本提示(few-shot prompt)来训练语言模型可以提高语言模型在不同任务上的泛化能力。
- 输入反转 方法对于训练集中的任务(Held-In)没有帮助, 但对于训练集外的任务(Held-Out)有很大的帮助
- CoT 的微调对于所有的评估指标都有好处。
- 对于不同任务集合的 权重组合 ,论文作者提到,他们用了一种简单但有效的策略,就是根据自己的经验来选择权重,而不是用复杂的算法。
- Flan-T5 在单个下游任务上比 T5 需要更少的微调就能更快更高地收敛,从而激励了指令调优模型作为新任务更节省计算资源的起始检查点。
背景
这篇论文是由 Shayne Longpre 等人于 2023 年 1 月 31 日在 arXiv 上发表的。论文的背景是大模型可以通过阅读指令来执行自然语言处理任务,而 指令调优 是一种进一步提高语言模型从指令中执行未见过任务的能力的方法。论文的主要工作是研究和评估公开可用的指令调优方法的设计决策,并分析了 Flan 2022 模型的开发过程。论文通过在 Flan Collection 的指令调优任务和方法上进行细致的消融实验,揭示了使 Flan-T5 在各种评估设置下比先前的工作提高 3-17%+ 的设计决策的影响。论文还展示了 Flan-T5 在单个下游任务上比 T5 需要更少的微调就能更快更高地收敛,从而激励了指令调优模型作为新任务更节省计算资源的起始检查点。论文最后将 Flan 2022 的数据集、模板和方法的集合公开提供,以加速指令调优的研究。
指令调优(instruction tuning)是一种训练大型语言模型(LLMs)的方法,使它们能够根据自然语言的指令来执行不同的 NLP 任务,即使是没有见过的任务。这篇论文介绍了 Flan 2022 模型,并通过对 Flan 集合中的任务和方法进行消融实验,分析了影响 Flan-T5 性能的设计决策。论文发现,任务平衡和丰富技术对于有效的指令调优至关重要,特别是 使用混合的提示设置 (零样本、少样本和思维链)可以在所有设置下提高(2%+)性能。
图1展示了不同的公开指令调优集合在三种评估方法上的性能比较,分别是 Held-In(在训练集上的零样本评估)、Held-Out(在 BIG-Bench Hard 和 MMLU 两个未见过的数据集上的零样本评估)、和 Chain-of-Thought(在多个任务之间切换的情境下的评估)。图表中的所有模型除了 OPT-IML-Max(175B)都是基于T5-XL(3B)的,绿色的文字表示相比于下一个最好的 T5-XL(3B)模型的绝对提升。从图表中可以看出, Flan 2022 模型在所有的评估方法上都取得了最好的结果 ,说明它具有很强的指令泛化能力。
1. 介绍
论文首先介绍了大型语言模型(LLMs)和指令调优(instruction tuning)的背景。大型语言模型是指那些在大规模无监督语料上预训练的深度神经网络模型,它们可以根据自然语言的指令来执行各种 NLP 任务,例如问答、文本分类、文本生成等。论文中提到了几个代表性的大型语言模型,如 PaLM、Chinchilla 和 ChatGPT 等。论文还介绍了指令调优的概念,即在一个包含多个 NLP 任务和指令格式的集合上对大型语言模型进行微调,以提高它们对未见过的指令的泛化能力。
论文中的研究对象是开源的指令泛化方法,即用大量的 NLP 任务和指令来微调大型语言模型,使其能够根据新的指令来执行未见过的任务。文章特别关注和评估“Flan 2022集合”中的一些关键的方法论改进,这个集合是指数据和方法的一个组合,用于数据增强和指令调优,最早由Chung等人(2022)实现和使用。与 Chung 等人(2022)主要关注 Flan 2022 与 PaLM 540B 结合后的性能结果不同,文章更侧重于指令调优方法本身的细节,通过消融实验分析各个因素的影响,并且与之前的工作进行直接比较,保持预训练模型的大小和检查点一致。
Flan 2022 集合是一个公开的指令调优任务和方法的集合,包含了多个来源的数据和模板,以及一些数据增强和格式化的技巧。论文中展示了一个模型在这个集合上训练后,在各种评测标准上都超过了其他公开的集合,包括 Flan 2021、T0++、Super-Natural Instructions 和 OPT-IML 等。文本中还提到了两个具体的评测标准,MMLU 和 BIG-Bench Hard,分别测试了模型的推理和知识能力,以及在一些困难的任务上的表现。结果显示,在相同模型大小的情况下,Flan 2022 集合能够在这两个评测标准上分别提高 4.2%+ 和 8.5%。
Flan 2022 方法之所以能够取得强大的结果,一方面是因为它使用了更大更多样的任务集合,另一方面是因为它采用了一些简单有效的微调和数据增强技术。具体来说,训练时使用了不同类型的模板,包括零样本、少样本和思维链模板,这些模板能够提高模型在各种情况下的表现。例如,仅仅增加 10% 的少样本模板就能提高 2%+ 的零样本结果。此外,通过反转输入输出对来丰富任务多样性,以及平衡不同任务来源的比例,也被证明是影响性能的关键因素。最终得到的 Flan-T5 模型在单任务微调时比 T5 模型收敛得更快更高,这表明指令调优模型可以作为下游应用的一个更高效的起点,这也与Aribandi等人(2021)和Liu等人(2022b)的结论一致。
论文的五个核心贡献,分别是:
- 方法论:证明了使用混合的零样本和少样本模板训练能够在两种情况下都获得更好的性能(第3.2节)。
- 方法论:评估和展示了有效指令调优的关键技术:扩大任务规模(第3.3节),通过反转输入输出对来丰富任务多样性(第3.4节),增加思维链训练数据,以及平衡不同数据来源(第3.5节)。
- 结果:展示了这些技术选择能够在已有的开源指令调优集合上取得 3-17% 的外部任务提升(图1)。
- 结果:展示了 Flan-T5 可以作为一个更强大更高效的起点,用于单任务微调(第4节)。
- 开源了新的 Flan 2022 任务集合、模板和方法,供公众研究。
2. 公开指令调优集合(Public Instruction Tuning Collections)
图 2 展示了公开指令调优集合的时间线,指明了每个集合的发布日期,微调模型的详细信息(基础模型、大小、是否公开),训练时使用的提示规范(零样本、少样本或思维链),包含在 Flan 2022 集合中(随本文发布)的任务数量,以及每项工作的核心方法贡献。需要注意的是,任务和示例的数量在不同的假设下会有所变化,因此只是估计值。例如,“任务”和“任务类别”的定义因工作而异。
大语言模型: 论文中介绍了大型语言模型(LLMs)是一种可以用于交互式对话和功能性任务的工具,而指令调优是一种提高它们能力的方法。文本中回顾了之前的工作,有些是使用大规模多任务微调来提高下游单目标微调的效果,但没有使用指令模板。还有些是将多种 NLP 任务统一为一个生成式问答格式,使用指令模板进行多任务微调和评估。
第一波: 论文中列举了几个指令调优任务集合,它们都是将大量的 NLP 任务集合整合起来,并用指令模板来格式化(零样本提示),目的是让模型能够对未见过的指令进行泛化。MetaICL(Min et al., 2022)也整合了其他任务集合,训练模型从多个输入输出示例中学习任务,这被称为少样本提示,但在这种情况下没有使用指令。论文中还强调了任务和模板多样性的规模效益,以及一些工作通过反转输入输出来生成新任务所带来的强大优势。
第二波: 论文中列举了一些扩展了之前资源的指令调优任务集合,它们都是将更多的数据集和任务整合到一个资源中,比如 Super-Natural Instructions 或者 OPT-IML,还有一些增加了多语言指令调优的任务集合,比如 xP3 ,以及在 Flan 2022 中引入了Chain-of-Thought 训练提示。Flan 2022 和 OPT-IML 都包含了之前任务集合中的大部分任务。谷歌将这些任务集合(的集合)和它们的方法汇聚起来,作为未来开源工作的最强起点。
新的方向: 未来的两个新方向:(a) 通过合成数据生成,特别是在创造性和开放式对话方面,更加积极地扩展任务多样性 ,以及 (b) 提供人类反馈信号来评价模型的回应 。这些新方向很可能是在指令调优方法的基础上的增强。
利用人类反馈进行调优: 论文中指出,基于人类反馈的指令调优在开放式任务上有很强的结果,但是牺牲了在更多传统的 NLP 任务上的表现。文本中还提到了“对齐税”(alignment tax)的概念,指的是为了让模型与人类偏好一致,而付出的性能损失。谷歌的工作专注于指令泛化,而不使用人类反馈,有两个原因。第一,人类反馈数据集比指令调优数据集更难公开获取(而且可能与模型相关)。第二,单凭指令泛化就能在提高开放式任务上的人类偏好回应的同时,也能提高传统的 NLP 指标。在没有昂贵的人类回应示范或评分的情况下,能够获得多大的进步仍然是一个开放的问题,也是缩小公开和非公开研究之间差距的重要追求。
开源的重要性 :高水平的研究越来越依赖于非公开的数据,例如 GPT-3 等 。这些资源的不可获取性阻碍了研究社区在公共领域分析和改进这些方法的能力。谷歌视野缩小到开源和可访问的数据集,目的是为了实现研究的民主化。
3. Flan 2022 指令调优实验
Flan 2022 是一个开源的指令调优数据集和方法的集合,指令调优是指在一个包含多种自然语言处理任务的数据集上微调预训练的语言模型,使其能够根据给定的指令来执行未见过的任务。这个项目是在 Chung 等人(2022)的工作的基础上进行的,他们首次提出了 Flan 2022,并展示了它与 PaLM 540B 模型结合的效果。这篇论文则更深入地探讨了 Flan 2022 中的关键方法改进,并将它与其他现有的指令调优集合进行了比较。
论文指出了四个能够显著提高指令调优效果的设计要素。这些要素在第二节中概述,分别是:
(I)在训练时使用混合的零样本、少样本和思维链模板(第3.2节)
(II)将 T5 大小的模型扩展到1800+个任务(第3.3节)
(III)通过输入反转来丰富任务(第3.4节),以及(IV)平衡这些任务混合(第3.5节)
在第 3.1 节中,论文首先通过测量每个要素的价值,并将最终模型与其他指令调优集合(及其方法)进行比较。
实验设置: Flan 2022 模型是一种基于指令调优的语言模型,能够根据不同的指令完成多种自然语言处理任务。实验使用了 T5-LM 模型作为基础,这是一种前缀语言模型,可以将任何语言问题转换为文本到文本的格式。实验使用了 XL(3B)的模型大小,并在多个评估集合上进行了测试,包括 Held-In、Chain-of-Thought、MMLU 和 BBH。这些评估集合涵盖了不同的任务类型,如问答、自然语言推理、推理和知识能力等。实验的细节可以在附录A中找到。
补充:
- 零样本、少样本和思维链模板 是指令调优的一种技术,它可以让大型语言模型(LLM)根据指令来执行不同的自然语言处理(NLP)任务,而不需要额外的任务特定层或参数。零样本模板只包含指令和输入,少样本模板在指令和输入之间添加几个输入-输出示例,思维链模板则要求模型按照步骤生成输出,并给出每一步的理由。这些模板可以提高 LLM 的泛化能力和推理能力,使其能够处理新颖和复杂的任务。
- T5 是一种基于 Transformer 的序列到序列模型,可以用于多种 NLP 任务。T5 有不同大小的版本,从小型(60M参数)到XXL型(11B参数)。T5 使用 C4 语料库进行预训练,然后可以在特定的任务上进行微调或指令调优。
- Flan 是一种基于 T5 的指令调优模型,它使用了 1800+个不同来源和类型的 NLP 任务进行训练,包括 Flan 2021、P3++、Super-Natural Instructions 等。Flan 在多个评估基准上超越了其他指令调优集合,包括MMLU、BBH 等。
- 输入反转 是一种数据增强技术,它可以通过交换输入-输出对来生成新的任务。例如,一个原始的任务是给定一个问题x,评估模型是否能回答 y。输入反转后的任务是给定一个答案 y,训练模型生成问题 x。这种方法可以在有限的数据源下增加任务的多样性。
- 任务混合 是指在训练时使用不同来源和类型的任务,并为它们分配不同的权重。任务混合可以影响模型对各种任务的适应性和泛化性。平衡任务混合是指根据不同任务来源的重要性和质量来调整它们的权重,以达到最佳的训练效果。
3.1 消融实验
表1展示了不同的模型在不同的任务和评估指标上的表现。表1分为两部分,上半部分是方法消融实验,下半部分是集合消融实验。方法消融实验是指在 Flan-T5 XL 模型上去掉某些方法,比如去掉 CoT 任务、输入反转、混合平衡或者少样本提示模板,然后观察模型在各个任务上的性能变化。集合消融实验是指用 T5-XL-LM 模型在其他的数据集上进行微调,比如 Flan 2021、P3++ 和 Super-Natural Instructions,然后与 Flan-T5 XL 模型进行比较。表1还列出了一些并行工作的结果,比如 OPT-IML 和 GLM-130B。表1最后一行显示了 Flan-T5 XL 模型相对于其他 T5-XL-LM 模型的改进幅度。
比如,表1中T5-XL Flan 2022 对应的数字 73.8 / 74.8 表示 Flan-T5 XL 在 Held-In 任务上的零样本/少样本准确率。CoT 对应的数字 28.8 / 24.6 表示去掉 CoT 后在 CoT 任务上零样本/少样本准确率。
表 1 的方法消融实验说明了 Flan 模型中的每个组成部分对不同的评估指标的影响。 Chain-of-Thought 训练可以提高 Chain-of-Thought 评估的性能,输入反转可以提高 Held-Out 评估(MMLU 和 BBH)的性能,少样本提示训练可以提高少样本评估的性能,混合平衡可以提高所有评估指标的性能。
3.2 使用混合提示进行训练
关于使用不同的输入模板来提高预训练大型语言模型(LLM)在不同任务上的性能,输入模板是一种指示语言模型如何完成任务的方式,例如给出一些例子或者描述任务的要求。两种不同的提示设置:零样本提示(zero-shot prompting)和少样本提示(few-shot prompting)。零样本提示是指只用一个描述任务的指示,而不给出任何例子,让语言模型直接完成任务。少样本提示是指给出一些例子,让语言模型根据例子学习如何完成任务。以前的研究表明,对于每个任务,使用多种不同的输入模板可以提高性能。但是,这些研究大多只针对一种提示设置,要么是零样本提示,要么是少样本提示。
目前关于一种新的语言模型训练方法,叫做 InstructGPT。InstructGPT 是一种利用人类反馈来调整语言模型的方法,让语言模型更好地遵循用户的意图。InstructGPT 的特点是它可以同时使用零样本提示和少样本提示来训练语言模型,而不是只针对一种提示设置。这样做的好处是可以提高语言模型在不同提示设置下的性能,即使是参数较少的模型也能有显著的提升。InstructGPT 的这种设计选择在之前的研究中没有被充分探讨,因此作者们对其进行了实验验证,并得到了令人惊讶的结果。
目前关于一种新的语言模型训练方法,叫做 InstructGPT。InstructGPT 是一种利用人类反馈来调整语言模型的方法,让语言模型更好地遵循用户的意图。InstructGPT 的特点是它可以同时使用零样本提示和少样本提示来训练语言模型,而不是只针对一种提示设置。这样做的好处是可以提高语言模型在不同提示设置下的性能,即使是参数较少的模型也能有显著的提升。InstructGPT的这种设计选择在之前的研究中没有被充分探讨,因此作者们对其进行了实验验证,并得到了令人惊讶的结果。
图3展示了使用不同比例的零样本提示和少样本提示来训练语言模型的效果。图3显示了两个结果:
(1)在训练数据中加入少量的少样本提示(5%)可以显著提高零样本评估的性能
(2)在训练数据中加入一定比例的零样本提示(10%以上)也可以提高少样本评估的性能
这些结果都是在两种不同的任务上得到的,一种是训练时就有的任务(Held-In),另一种是训练时没有的任务(Held-Out)。图3还显示了在不同比例的零样本提示和少样本提示下,性能达到最高点的情况,但这个比例并不固定,而是根据不同的任务而变化。
总之,使用混合的零样本提示和少样本提示来训练语言模型可以提高语言模型在不同任务上的泛化能力。
3.3 将小模型扩展到1800+任务
Flan 2022 是一种利用人类反馈来调整语言模型的方法,让语言模型更好地遵循用户的意图。Flan 2022 的数据集包含了1873个不同的任务,每个任务都有一个或多个输入模板,即指示语言模型如何完成任务的方式。这段文字说,作者们使用了 T5-LM 这种预训练的语言模型,并在不同规模的任务子集上进行了微调,从8个任务到所有1873个任务。每次微调都保证包含了 Held-In 任务,即训练时就有的任务,这样可以估计任务规模对语言模型在已知任务上保持性能的影响。
图 4 展示了使用不同大小的语言模型和不同数量的任务来微调语言模型的效果。这里的语言模型是指 T5-LM 这种预训练的语言模型,有 Small, Base, Large, XL, XXL 五种规模。这里的任务是指 Flan 2022 的数据集中的不同任务,每个任务都有一个或多个输入模板,即指示语言模型如何完成任务的方式。图 4 分为左右两部分,左边是Held-In 任务的性能,右边是 Held-Out 任务的性能。Held-In 是指训练时就有的任务,Held-Out 是指训练时没有的任务。图 4 显示了两个结果:
(1)对于 Held-In 任务,不同大小的语言模型在使用不同数量的任务时都有一个最高点,用金色星星标出,随着任务数量的增加,性能会先上升后下降。
(2)对于 Held-Out 任务,不同大小的语言模型在使用不同数量的任务时都呈现出对数线性增长的趋势,即随着任务数量的增加,性能会逐渐提高。
图 4 显示了一个令人惊讶的结果,即只有 T5-Small 在使用 1836 个任务之前就超过了它在 Held-Out 任务上的性能,而更大的语言模型在使用更多的任务时还能继续提高性能。Held-Out 是指训练时没有的任务。这些结果表明:
(a)即使是 T5-Base 也可能没有用尽它的容量,即它还可以学习更多的任务
(b)最大的语言模型可以从更多的任务中受益,无论是对于 Held-In 还是 Held-Out 任务。
上面的分析需要假设所有的任务都是相同的,即没有区别地计算和统计。但是第 3.5 节显示了,并不是所有的任务来源都对训练有同样的好处,而且如果一个来源的任务太多,模型的性能可能会饱和(例如 Super-Natural Instructions)。因此,不能简单地认为增加任务数量就能提高性能,还要注意任务的多样性和质量。
3.4 任务多样性和输入反转
输入反转是指将有监督任务中的输入输出对 (x, y) 互换,从而生成新的任务。例如,一个数据集可能最初是设计为,给定一个问题 x,评估一个模型能否回答 y。输入反转则是给模型提供答案 y,并训练它生成问题 x。这是一种在数据源有限的情况下丰富任务多样性的简单方法。然而,当已经有数百个不同的数据源和数千个任务时,这种方法是否仍然有用尚不清楚。
输入反转方法对于训练集中的任务(Held-In)没有帮助, 但对于训练集外的任务(Held-Out)有很大的帮助 。这些收益激发了对使用数据增强技术进行语言模型微调的前景的期待,因为之前的研究表明,当语言模型预训练时间越长时,数据增强技术的收益会递减。
3.5 平衡数据来源
论文作者在研究如何在一个包含大量自然语言指令的任务集合上微调语言模型。他们想要找到最好的方法来组合不同类型的任务,以及给每种任务分配多少权重。他们实验了从任务集合中去掉一些任务,看看这对一个叫做MMLU 的基准测试的性能有什么影响,这个基准测试可以衡量模型对不同学科和领域的理解能力。
表 2 中的每一行代表了去掉一种任务后的结果,比如 All - Flan 2021 表示去掉了 Flan 2021 这个任务集合。表 2 中的最后一行表示了使用一种加权的方法来组合不同的任务,而不是平均分配。
从表 2 可以看出 Flan 2021 和 T0-SF 是最有益的任务集合,其次是 Super-Natural Instructions 和 Chain-of-Thought,最后是 Dialog 和 Program Synthesis。作者还引用了另一篇论文,证实了他们的发现,并且指出Super-Natural Instructions 对于 Held-Out 任务的性能提升有限,可能与它的输入格式和指令设计有关。作者还特别注意到 Chain-of-Thought 的微调对于所有的评估指标都有好处 ,尽管它包含的任务比 Flan 2021,T0-SF或 Natural Instructions 少得多。
对于不同任务集合的权重组合 , 论文作者提到,他们用了一种简单但有效的策略,就是根据自己的经验来选择权重,而不是用复杂的算法 。作者还说这种策略在表格1 中显示了很好的效果,但也为未来的工作留下了很多改进的空间。
3.6 讨论
作者对他们的工作和另一篇论文(OPT-IML)作了比较,说明了他们有什么相似和不同之处。作者说他们和 OPT-IML 都使用了类似的任务集合,例子和技术,但是 OPT-IML 没有公开他们的数据处理和混合的方法,所以很难进行直接的对比。作者还说他们的模型(Flan-T5)在两个基准测试(MMLU 和 BBH)上都超过了 OPT-IML 的模型,即使后者的模型更大。作者认为这些差异可能由预训练,模型结构,和指令微调等因素造成。作者还提到了一些可能影响指令微调效果的细节,比如例子的模板化,混合输入提示的使用,和任务的组成。
虽然 OPT-IML 包含的任务比 Flan 2022 多,但是估计约 94% (2067/2207) 的任务也被用于 Flan 2022 集合,而且 Flan 2022 中很少有任务不包含在 OPT-IML 的某种格式中。这表明当使用共享的“任务”定义时,任务多样性的总体差异并不显著。任务混合比率也强调了类似的来源,包括 Flan 2021 (46% vs 20%)、PromptSource/P3 (28% vs 45%) 和 Super-Natural Instructions (25% vs 25%),分别用于 Flan 2022 和 OPT-IML。OPT-IML 的其他集合 (Crossfit, ExMix, T5, U-SKG) 的权重并不显著:分别为 4%,2%,2%,2%。
图 5 比较了 T5 模型经过三种不同微调方式的结果。这三种方式分别是T5->Flan->FT、T5->FT、T5->Flan。
- T5->Flan->FT: 是在 T5 的基础上进行了指令微调(T5->Flan),以及进一步的单任务微调(Flan->FT),得到最终 单任务微调模型 Flan-T5
- T5->FT :是在 T5 的基础上进行了单任务微调,得到 单任务微调模型 T5
- T5->Flan :是在 T5 的基础上进行了指令微调,得到 模型 Flan-T5
从图 5 中可以看出,单任务微调模型 Flan-T5 在所有任务上都优于 T5,而且在一些任务上甚至优于进行了单任务微调的 T5。这说明了指令微调可以提高语言模型的泛化能力和效率。
对于 Flan 2022 集合与 OPT-IML 集合在指令微调方面的一些差异。作者认为,最大的差异可能在于示例模板化和混合提示格式。示例模板化是指将不同的 NLP 任务转换为带有指令的输入输出对,混合提示格式是指在训练时使用零提示、少提示和思维链提示的不同组合。
作者表示,他们的模板库相比 Flan 2021 有了很大的更新,增加了各个维度上的多样性。例如,模板化过程会改变指令的位置(在少提示之前或之后)、少提示和思维链提示之间的间隔和分隔符、多选题的答案选项(及其目标)的排列方式,有时还会在输入或示例中包含或排除答案选项。作者虽然没有进行专门的实验来比较多次开发的结果,但他们发现这些过程显著增加了输入的多样性,并带来了反复的性能提升。他们的示例模板化过程是开源的,供其他研究者检查和使用。
4. 指令微调提升单任务Finetuning
作者介绍了一种应用场景,即机器学习从业者使用微调过的NLP模型来完成某个特定的目标任务,通常这些任务已经有了微调数据。作者还提到了之前的工作已经证明了中间微调或多任务微调对下游任务的好处,但是对于指令微调的模型,这方面的研究还不够充分。中间微调或多任务微调是指在预训练模型和单任务微调之间增加一个额外的微调步骤,让模型学习更多的任务或领域知识。指令微调是指在预训练模型上进行微调,让模型能够根据不同的指令来执行不同的 NLP 任务。
作者评估了 Flan 2022 指令微调(instruction tuning)作为单一目标微调之前的中间步骤,以了解 Flan-T5 是否可以作为应用实践者的更好的起点。在图 5 中评估三种设置:直接在目标任务上微调 T5 作为传统的基准(蓝色条形图),使用 Flan-T5 而不进行进一步的微调(米色条形图),以及在目标任务上进一步微调 Flan-T5(红色条形图)。
单任务微调的帕累托改进 : 对于所检查的两组 Held-In 和 Held-Out任务,Flan-T5 的微调比直接微调 T5 提供了帕累托改进。在某些情况下,通常是当任务的微调数据有限时,Flan-T5 不进行进一步的微调就能胜过 T5 的任务微调。
更快的训练和计算优势: Flan-T5 是一种经过指令微调的模型,可以根据不同任务的指令来生成合适的输出。作者指出,Flan-T5 相比于 T5 这种没有经过指令微调的模型,在单任务微调时收敛得更快,也达到了更高的准确率。作者还提出,使用指令微调的模型有利于节省计算资源和降低环境影响,因为指令微调只是一次性的开销,而没有经过指令微调的模型则需要在每个任务上进行大量的微调。作者认为,如果指令微调的模型能够成为单任务微调的新标准起点,那么它们就能够显著减少在多种任务上所需的微调步骤。
5. 相关工作
大规模语言模型 :大型语言模型是指在大规模无监督语料上预训练的通用语言表示,可以用于多个下游任务。作者回顾了从 2013 年开始,Mikolov 等人和 Dai 和 Le 等人提出的预训练方法,到 2018 年,Peters 等人和 Devlin等人确立了预训练大型模型的范式,以及 NLP 领域迅速采用这些模型并在所有任务上显著超越了之前没有预训练的任务特定 LSTM 模型的过程。作者还指出,最初访问预训练模型中编码的高质量句法和语义知识的主要方式,并不是通过指令来提示它们,而是通过训练一个额外的任务特定线性层,将模型激活映射到数值类标签。一年后,Radford 等人,Raffel 等人和 Lewis 等人推广了一种观点,即下游任务——以及多个任务——可以通过直接使用预训练的 LM 头来生成自然语言的答案(而不是任务特定的数值类标签)来共同学习,这些生成式模型的任务通用性成为了许多多任务迁移学习研究的先驱,进而引发了第一波指令调整,如第2节所述。
一般的大型语言模型是指参数超过 1000亿 的模型,目前市场上主流的大型语言模型都是只有解码器的从左到右的因果变换器,而且所有这种规模级别的公开模型参数都是只有解码器的,这种选择通常是由于硬件和软件框架支持更好。然而,Raffel 等人一致发现,从左到右的因果语言建模是一个次优的目标,而 Tay 等人和 Wang 等人特别表明,非顺序目标的混合对于具有零镜头和少镜头提示的下游任务更优越。另一个尚未被充分探索的因素是预训练语料库、指令调整和下游能力之间的关系。通常,公开模型都是在少数几个公开语料库上进行训练的:C4(Raffel等人,2020),The Pile(Gao等人,2020),或ROOTs(Laurençon等人,2022)。
指令微调 :指令微调是一种用于改善语言模型的零样本学习能力的方法。它通过在一组用指令描述的 NLP 任务上微调语言模型,来显著提高对未见过任务的零样本性能。这种方法被称为参数高效调整(也称为连续或软“提示调整”),它表明只更新模型参数的一个小子集就可以达到与完全调整所有模型参数相当的性能。Liu 等人表明,由于少量 ICL 的长序列长度以及需要重复推断少量示例来评估每个示例,因此参数高效调整在计算上比在上下文中学习更便宜且性能更高。此外,单任务和多任务参数高效调整都可以与指令调整有效地结合在一起,无论是在常规全模型指令调整之前还是之后。这项工作使其他研究人员可以在通用领域指令调整模型的基础上构建,并收集他们使用的自定义指令调整混合物。
指令微调和对齐技术解决的问题 :指令微调是一种旨在使语言模型与更有用的目标和人类偏好“对齐”的工作的一部分。在没有这些方法的情况下,语言模型被认为会表现出有毒/有害的行为,生成非事实信息以及部署和评估中的其他挑战。分析、评估和减轻这些问题是未来工作的一个有前途的方向。指令微调值得进一步研究,因为它已经证明自己是一种令人鼓舞的补救措施,在减少 NLP 偏差指标方面取得了成果。
6. 讨论
新的 Flan 2022 指令调整集合统一了最流行的先前公共集合及其方法,同时添加了新的模板和简单的改进,例如使用混合提示设置进行训练。由此产生的集合在 Held-In QA、NLI 和 Chain-of-Thought 任务以及 Held-Out MMLU 和 BBH 上均优于 Flan 2021、P3++、Super-Natural Instructions 和 OPT-IML-Max 175B,通常优势很大。结果表明,这个新的集合为研究人员和从业人员提供了一个更具竞争力的起点,他们对推广到新指令或在单个新任务上进行微调都感兴趣。
附录A 实验细节
A.1 指令微调
关于 Flan Collection 实验,它们是使用 T5X(Roberts等,2022)来组装和运行的。T5X 是一种基于 JAX 的 T5(Text-to-Text Transfer Transformer)的实现,它针对检索应用进行了优化。作者的指导调整遵循了 Chung 等(2022)描述的相同设置。在微调过程中,他们使用了少量示例和少量 Chain-of-Thought 提示,模板化过程生成了包含2、3或5个示例的少量示例。这项工作中的实验使用了 Flan 2022 集合的稍早版本,该版本与他们发布的版本有一些细微的改进。
简单地说,作者介绍一种使用 T5X 框架进行检索任务的方法,它利用了少量示例和模板来调整预训练的 T5 模型。作者还说明了他们使用的数据集和模型版本。
用于平衡各种数据源的混合权重是根据第 3.5 节的实验结果和实践者的直觉得出的。
A.2 单任务微调
对于第 4 节描述的单任务微调,作者对所有任务的模型进行了 10 万步的微调。使用 0.001 的恒定学习率,0.1 的dropout 概率,以及 128 个长度为 512 的序列的批量大小。每 20 步保存一个检查点,并根据最高的验证性能对应的模型检查点报告测试性能。对于没有验证划分的任务,从训练集中留出 1024 个样本用于验证。对于没有测试划分的任务,从训练集中留出 1024 个样本用于验证,并在原始验证集上报告结果。对于 PubmedQA,不使用与数据集相关的任何未标注和人工生成的 QA 实例。对于 CxC,只考虑数据集的文本-文本部分,遵循 Vu 等人(2022)的做法。对于训练样本少于 1K 的任务,报告3个随机种子的平均结果。
A.3 评估
对于 Held-In 评估,使用 4 个问答(QA)任务的验证集,包括 BoolQ、ARC Easy、ARC Challenge 和 AI2 的中学科学考试,以及 4 个自然语言推理(NLI)任务,包括 ANLI R1、R2、R3 和 RTE。这些数据集包含在 Flan 2022 微调集合中,是评估 LLM 在 QA 和 NLI 上的具有挑战性的基准。Held-In 分数是这8个任务的平均准确率。
对于链式思维(CoT)评估,使用 5 个数据集的平均准确率,这些数据集已经准备好了提示,要求在目标答案中提供逐步的解释:GSM8K、StrategyQA、SVAMP、Asdiv 和 CommonsenseQA。
链式思维(CoT)是一种利用大型语言模型进行复杂推理的方法,它通过生成中间推理步骤作为推理依据来推断答案。然而,现有的 CoT 研究只关注语言模态。论文提出了一种将语言(文本)和视觉(图像)模态结合起来的两阶段框架,将理由生成和答案推断分开。这样,答案推断可以利用基于多模态信息的更好的生成的理由。
对于保留外部的任务,使用 MMLU 的 57 个考试套件,以及 BBH 的 23 个任务套件,其中 PaLM 的表现比平均人类注释者差。为了确保它们是保留外部的,在训练时从 Flan 2022 集合的超自然指令部分移除了 MMLU 任务。
MMLU 是一个用来测试语言模型在科学、社会科学、人文、商业、健康等多个主题领域的推理和知识能力的基准测试。BBH 是一个包含 23 个来自 BIG-Bench 的具有挑战性的任务的基准测试,这些任务要求语言模型具有创造性、逻辑性和常识性。PaLM 是一个在大规模文本语料库上预训练的语言模型,可以通过自然语言指令来执行不同的 NLP 任务。Flan 2022 集合是一个包含 1800 多个 NLP 任务和方法的集合,用于指令微调语言模型,以提高它们对未见过指令的泛化能力。
附录B 输入反转细节
对于输入反转实验,Flan 2021、P3++ 和 Super-Natural Instructions 已经隐含地包含了一些已经反转的任务,例如,将问答任务转换为问题或上下文生成。因此,选择对 Flan 2022 集合中剩余的数据集也进行输入反转,包括对话、程序合成和思维链任务。
作为例子:对于对话任务,编写模板指令,要求模型根据当前的对话轮次生成之前的对话历史;对于程序合成,要求模型根据代码生成编程问题;对于思维链,包含查询-答案-解释三元组的每一种排列,其中至少有一个元素出现在输出中。图 7 展示了思维链输入反转排列的示例。
作者选择了 30% 的反转比例,意味着对于一个对话任务,每 10 个正常的例子会生成 3 个反转的例子。作者选择这个比例是为了简单起见,大致与之前的工作一致,并留下更大的探索空间给未来的工作。
书籍推荐