
微调以提高语言模型的零点射击性能。
三个要点
✔️ 提出一个简单的方法来提高大型语言模型的性能
✔️ 提议的指令调整,将自然语言任务训练成简单的指令
✔️ 拟议的FLAN模型在许多任务中的性能优于GPT-3 Zero-Shot
Finetuned Language Models Are Zero-Shot Learners
written by Jason Wei, Maarten Bosma, Vincent Y. Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, Quoc V. Le
(Submitted on 3 Sep 2021 (v1), last revised 8 Feb 2022 (this version, v5))
Comments: Published on arxiv.
Subjects: Computation and Language (cs.CL)
code:![]()
![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
介绍。
在大规模的语言模型中,如GPT-3,少数人学习已经取得了令人惊讶的成功。然而,"零次 "学习的成功率较低,其结果比 "多次 "学习的表现差得多,包括阅读、回答问题和推理等任务。
本文提出了一个名为Finetuned LAnguage Net(FLAN)的模型,它通过一个简单的方法提高了大型语言模型的零点性能。通过对一个由137B参数组成的预训练模型应用一种叫做指令调谐的方法,该模型在各种数据集上的表现超过了175B的GPT-3。
FLAN:用Insturuction Tuning提高零点学习性能。
所提出的方法,即FLAN,使用了一个简单的想法,称为指令图因。
这是微调一个预先训练好的语言模型,以执行一个描述为某种指令(Instruction)的任务。然后,即使给出一个未知的任务,通过提供一些表明任务的指令,它鼓励模型根据该指令执行任务。
正如本图中的(C)所代表的那样,通过学习遵循具体的指令来执行各种任务(B、C、D),即使是未知的任务(A)也可以通过遵循指令来解决。
教学调整的任务和模板。
指令调整需要一个由各种任务组成的数据集和一个用于创建描述每个任务的指令(指示)的模板。
关于任务
首先,我们使用Tensorflow Datasets上发布的62个文本数据集作为指令调优的数据集。这包括语言理解和语言生成任务,这些任务在下图中得到了总结。
在这里,每个数据集被划分为12个不同的任务群组。
在评估过程中,根据这个任务群,决定每个任务是否是模型的未知任务。
例如,在评估NNLI(自然语言推理:图中左上角)时,在所有数据集上用指令调谐创建检查点,除了那些被归类为NNLI集群的数据集,该模型被用来评估NNLI使用该模型的任务。
关于该模板
为了在这些数据集上进行指令推演,有必要为预训练模型准备包含描述每个任务的指令的数据。本文为实现这一目标,使用了10个手工创建的模板。例如,它们包括。
图中以自然语言推理任务中的一个模板为例。
在这些模板中,任务的描述形式是 "你能从上面的<前提>中得出<假设>的结论吗?"和 "阅读下面的内容并决定是否可以从<前提>中推断出<假设>"。这些任务按以下格式描述。10个模板中的一些包括任务相反的例子,以增加数据集的多样性。
例如,确定电影评论是正面还是负面的任务还包括一个需要生成正面或负面评论的模板。
分类和生成任务
对于一个给定的任务,模型的输出空间是几个类(分类任务)或文本(生成任务)。在分类任务中,模型是用该任务中明确的输出类别列表来训练的,如前面模板中的<options>表示。
最后,指令调整可以被总结为下图所示。
FLAN模型结构使用一个预先训练好的LaMDA-PT模型,由137B个参数组成。
在指令调整期间,每个数据集的样本数被限制为30k,在128核TPUv3上进行了大约60小时的训练。在评估过程中,报告了最后检查点的结果,其中进行了30k步的训练。(关于其他超参数的细节,见原始论文)。
实验结果
在实验中,对以下任务进行了评估
- 自然语言推理(NLI)
- 阅读理解
- 闭门造车的QA
- 翻译
- 常识性的推理
- 同义词解决
- 结构到文本
如前所述,数据集被划分为任务集群,在对被评估的集群以外的集群进行指令调整后,对属于评估目标的未知任务进行实验。在性能评估中,对每个数据集来说,所有模板的性能的平均值都会得到。
首先,自然语言推理(NLI)、阅读理解、闭卷质检和翻译的零点成绩如下。
在所有的任务中,FLAN都显示出优秀的整体结果。包括其他任务(常识推理、核心推理和结构到文本)在内的更详细的结果也在下面显示。
与上述结果相比,FLAN在常识推理和核心推理方面的效果较差,只在七个任务中的三个任务中超过了LamDA-PT。这可能是由于当原来的预习目标和下游任务相似时,FLAN中的指令图因几乎是多余的。
任务群组数量的影响
作为一个额外的实验,我们首先研究用于指令调谐的任务群/任务的数量如何影响性能。
这里,NLI、Closed-book QA和Commonsense推理被选为要评估的聚类,其他七个聚类则用于指令调优。按每个集群的任务数顺序选择1至7个集群,指令调谐的结果如下。
总的来说,我们发现性能随着集群的增加而提高(除了情感分析)。
这个实验的结果还表明,各家的性能似乎并不饱和,所以增加更多的任务群可能会进一步提高性能。
关于模型比例
然后在参数大小为422M、2B、8B、68B和137B的模型上进行实验,研究指令调谐与模型规模之间的关系。
结果如下。
有趣的是,人们发现低于8B的模型由于指令调谐而显示出对未知任务的性能降低。这可能是由于当模型的容量不足时,它只适合指令调谐时的任务,使得对新任务的概括能力变得困难。
教学的有效性。
接下来,为了研究指令调优中指令的影响,我们考察了简单地只给模型提供输入和输出而不提供指令模板的情况,以及在输入前面加上任务名称和数据集名称进行微调的情况。结果如下。
总的来说,性能明显低于FLAN中的结果,这表明在未知的任务中,用指令进行训练对零射性能很重要。
关于Few-Shot设置中的结果。
到目前为止,我们主要关注的是 "零射击 "设置的结果,但我们也将检查 "少射击 "设置的结果,它提供了少量的示范性结果。结果如下。
通过使用Few-Shot设置,所有任务的性能都得到了提高,特别是对于具有大的和复杂的输出空间的任务(例如Struct-to-text、翻译、闭卷的QA)。相反,在一些任务群中,如阅读理解和常识推理,"零枪 "和 "少枪 "的表现几乎相同。
摘要
这篇文章介绍了一篇论文,其中提出了指令调谐(Instruction Tuning),这是一种在零点射击环境中提高任务绩效的简单方法,以及基于此的模型FLAN。该模型在一些任务上的表现优于GPT-3,证明了大型语言模型根据指令执行任务的潜在能力。
与本文相关的类别