论文 · arXiv 2109.01652
Finetuned Language Models Are Zero-Shot Learners
三句话总结
- 🎯 未经微调的大语言模型在零样本任务上表现欠佳,因为原始提示与预训练的标记分布存在偏差。
- 🔧 指令微调(instruction tuning):在通过自然语言模板表述的 62 个 NLP 数据集上微调 137B 仅解码器语言模型,并在训练时留出评估任务簇。
- 📈 零样本 FLAN 在评估的 25 个数据集中的 20 个上超越了零样本 175B GPT-3,并在 ANLI 和 BoolQ 等任务上击败了少样本 GPT-3。
摘要
本文探讨了一种提升语言模型零样本学习能力的简单方法。我们证明了指令微调(instruction tuning)——即在一组以指令形式描述的任务集上微调语言模型——能够显著改善模型在未见任务上的零样本表现。我们采用了一个包含 137B 参数的预训练语言模型,并在通过自然语言指令模板表述的 60 多个 NLP 任务上对其进行指令微调。我们在未见任务类型上评估了这一名为 FLAN 的指令微调模型。FLAN 相比其未微调的基座模型实现了性能的大幅跃升,并在我们评估的 25 个任务中的 20 个上超越了 175B 的零样本 GPT-3。FLAN 甚至在 ANLI、RTE、BoolQ、AI2-ARC、OpenbookQA 和 StoryCloze 上以较大优势击败了少样本 GPT-3。消融实验表明,微调数据集的数量、模型规模以及自然语言指令是指令微调成功的关键因素。
英文原文摘要
This paper explores a simple method for improving the zero-shot learning abilities of language models. We show that instruction tuning -- finetuning language models on a collection of tasks described via instructions -- substantially improves zero-shot performance on unseen tasks. We take a 137B parameter pretrained language model and instruction-tune it on over 60 NLP tasks verbalized via natural language instruction templates. We evaluate this instruction-tuned model, which we call FLAN, on unseen task types. FLAN substantially improves the performance of its unmodified counterpart and surpasses zero-shot 175B GPT-3 on 20 of 25 tasks that we evaluate. FLAN even outperforms few-shot GPT-3 by a large margin on ANLI, RTE, BoolQ, AI2-ARC, OpenbookQA, and StoryCloze. Ablation studies reveal that number of finetuning datasets, model scale, and natural language instructions are key to the success of instruction tuning.
论文解读
问题与动机
大语言模型(如 GPT-3 175B)通过上下文示例在少样本学习中表现优异。然而,在阅读理解、自然语言推理(NLI)和问答等复杂 NLP 基准测试上,它们的零样本能力仍然明显较弱。未微调的模型依赖于被格式化为预训练数据续写形式的提示词,对于通常以明确指令或查询表述的任务而言,这种格式显得不够自然且脆弱。
作者探索了通过在以自然语言指令形式明确表述的广泛且多样化的 NLP 任务集合上进行监督微调,是否能够使语言模型在推理时零样本泛化到完全未见过的任务类型。
核心思想
- 指令微调(Instruction Tuning):使用自然语言提示模板将现有 NLP 数据集转换为“指令-响应”格式,将多任务监督与提示方法相结合。
- 任务簇留出(Task Cluster Holdout):将数据集划分为主题簇(例如 NLI、闭卷问答、翻译、情感分析)。当在目标簇 上测试零样本泛化时,属于 (以及紧密关联的簇)的所有数据集都会被排除在训练之外,以确保严格的跨任务零样本评估。
- 带选项的分类(Classification with Options):对于分类任务,在提示词末尾追加一个列出有效候选标签的
OPTIONS:后缀,直接引导生成模型的输出分布,而不仅限于纯基于 logits 排序对比的分类机制。
方法
基座模型为 LaMDA-PT,这是一个密集型、自左向右的仅解码器 transformer,具有 1370 亿参数,在包含网页文档、代码、维基百科和对话数据(约 10% 非英语)的 2.49T BPE 标记上进行了预训练。
- 数据整合:来自 TensorFlow Datasets 的 62 个数据集被划分为 12 个任务簇。对于每个数据集,撰写了 10 个独特的自然语言指令模板(包括多达 3 个“反向”模板,例如根据情感生成文本)。
- 训练设置:每个数据集的训练样本上限为 3 万条。采用样本成比例混合策略构建 batch,最大混合率上限为 3,000,以防止大型数据集主导训练。训练进行 30k 梯度步,batch 大小为 8,192 标记,使用 Adafactor 优化器(学习率 ),输入序列长度为 1024,目标序列长度为 256,并使用序列拼接(sequence packing)。
- 评估协议:为了在 个留出簇上进行评估,分别训练了 个不同的 FLAN 模型。性能指标同时汇报了在所有指令模板上的平均表现,以及在验证集上选出的最佳模板表现。
- 少样本示例推理:当存在 个示例 时,输入被格式化为: 其中 表示使用分隔标记进行拼接,上限为 16 个示例且总长不超过 960 个标记。
实验结果
- 与 GPT-3 的零样本对比:使用验证集最佳模板时,零样本 FLAN 137B 在 25 个评估基准中的 20 个上超越了零样本 GPT-3 175B,并在 10 个数据集上超越了少样本 GPT-3,包括 ANLI R1–R3、RTE、BoolQ、OpenbookQA 和 StoryCloze。
- 任务类型:在天然适合用指令表述的任务(如 NLI、阅读理解、闭卷问答、翻译)上获得了显著收益。在 RTE 上,FLAN 达到 84.1%(最佳验证模板),而零样本 GPT-3 为 63.5%,少样本 GPT-3 为 72.9%。在 BoolQ 上,FLAN 达到 82.9%,相比之下零样本 GPT-3 为 60.5%,少样本 GPT-3 为 77.5%。
- 对模型规模的依赖性:在 422M、2B、8B、68B 和 137B 参数下的消融实验表明,当模型参数 时,指令微调反而会损害在未见任务上的零样本泛化能力。只有在模型达到足够大尺寸( 和 )时,正向迁移效应才会显现。
- 指令的重要性:不使用指令模板(仅输入-输出:4 簇平均 37.3%)或仅使用数据集名称(46.6%)进行微调,其零样本表现显著差于使用自然语言指令(55.2%)。
- 与 Prompt Tuning 的兼容性:将参数高效的 prompt tuning 应用于 FLAN 时,在 SuperGLUE 上获得的准确率高于直接应用于未微调的 LaMDA-PT 基座模型,尤其是在 32 样本的低资源场景下。
局限性与开放问题
- 句子补全任务:在类似语言建模的任务(如常识推理中的 Winogrande 或句子续写)上,指令显得冗余,指令微调带来的增益极小(甚至可能产生负面影响)。
- 指令复杂度:该研究仅探讨了简短的单句指令,而非通常提供给人类评估人员的冗长复杂的提示指引。
- 上下文窗口与算力:FLAN 的 1024 标记上下文长度限制了对摘要任务的严格评估。此外,运行和部署 137B 参数的密集模型需要极高的计算资源。
关键术语
- instruction tuning(指令微调)
- 在由自然语言指令模板格式化构成的多样化数据集上微调预训练语言模型,以提升其对未见任务的泛化能力。
- FLAN
- Finetuned Language Net;基于 LaMDA-PT 仅解码器架构的 137B 参数指令微调模型。
- task clusters(任务簇)
- 按任务类型(如 NLI、闭卷问答)对 NLP 数据集进行的分组,用于在零样本测试中强制实施严格的留一任务簇评估划分。
- LaMDA-PT
- 一个具有 137B 参数的密集型、自左向右仅解码器 transformer,在 2.49T 标记的网页文档、代码、维基百科和对话数据上进行了预训练。
- classification with options(带选项的分类)
- 一种输出格式化策略,在分类提示后附加 'OPTIONS:' 标记及候选类别列表,以引导自由文本生成。
- examples-proportional mixing(按样本成比例混合)
- 多任务训练中的一种数据集加权策略,数据集采样概率与数据量成正比,但设有指定的采样上限(3,000 个样本)。
- data contamination analysis(数据污染分析)
- 一种事后评估方法,用于衡量预训练语料与基准测试集之间的 n-gram 重叠,以验证性能提升并非源于记忆背诵。
常见问题
指令微调与标准多任务微调有何不同?
传统多任务微调旨在优化特定训练任务的性能或适应新领域。而指令微调使用自然语言指令来训练模型理解任务描述,其核心目标是实现在训练过程中完全留出的未见任务类型上的零样本泛化。
为什么指令微调会损害较小语言模型的性能?
对于参数量为 8B 或更小的模型,学习大约 40 个不同的指令微调任务似乎耗尽了模型的全部参数容量,从而降低了其泛化到未见任务的能力。只有在规模达到约 68B 和 137B 参数时,模型的容量才能兼顾任务执行和通用指令遵循能力的学习。
在哪些任务上 FLAN 未能超越未微调的基座模型?
在直接表述为语言建模补全的任务上,指令微调收效甚微,例如指代消歧(如 Winogrande)和句子续写常识基准测试;在这些任务中,指令提示与基座模型的预训练目标在很大程度上是冗余的。
预训练语料中的数据污染问题是如何处理的?
作者检索了测试样本与 2.49T 标记预训练数据集之间的 13-gram 重叠,并构建了去除重叠的数据子集。在这些干净子集上的评测表现并没有出现性能下降,表明 FLAN 的零样本收益并非由记忆测试数据驱动。
本页解读由 AI 根据论文生成,可能有错误;细节请以原文为准。