跳转至

T0

摘要

该研究探讨了是否可以通过显式的多任务学习直接诱导大语言模型的零样本泛化能力. 研究者开发了一个系统将大量不同类型的监督学习数据集转换为人类可读的提示形式. 他们使用这些多样化的提示数据集对一个预训练的编码器-解码器模型进行了微调. 结果表明该模型在多个未曾见过的标准数据集上表现出强大的零样本性能, 甚至优于比其大16倍的模型, 并且在BIG-bench基准测试的部分任务上也超越了比其大6倍的模型.

FLAN的论文发表在先, 但学术界的研发通常是并行进行的. T-ZERO的研发团队 (主要是BigScience项目) 在FLAN论文发表时也正在独立地进行类似方向的研究, 他们更侧重于通过一个公开的协作过程 (使用PromptSource) 来系统性地创建和评估用于多任务提示训练的数据集. 因此, 尽管FLAN论文发布更早, 但可以将T-ZERO视为对同一核心思想 (指令/提示微调) 的一次独立且更侧重于方法论探索和数据集构建的实现.

"公开的协作过程"指的是一个允许来自世界各地的研究人员 志愿者和开发者共同参与项目贡献知识和资源的开发模式. 在T-ZERO的案例中, 这个过程主要体现在其依赖的PromptSource平台上, 任何人都可以登录该平台, 为各种NLP任务提交或审核新的指令模板 (prompt), 这些模板随后被用来训练T-ZERO. 这种开放的协作方式使得数据集的构建过程透明化, 并且能够汇集全球社区的智慧, 创造出比单一团队更丰富更多样化的训练数据.

简介

隐式泛化学习

最近的研究表明大型语言模型展现出了对新任务的零样本泛化能力, 即使仅在语言建模目标上进行训练, 它们也能在未经过明确训练的任务上表现良好, 例如问答或摘要. 一个有影响力的假说认为这种能力源于模型在预训练过程中隐式地进行了多任务学习, 通过预测下一个词, 模型被迫学习其训练语料中包含的各种隐性任务格式. 然而, 这种泛化能力需要足够大的模型规模, 并且对自然语言提示的措辞非常敏感.

此外, 这种多任务学习的隐式程度仍然是一个开放性问题, 考虑到现代语言模型预训练语料库的巨大规模, 一些常见的自然语言处理任务很可能以明确的形式出现在数据中, 从而直接对模型进行了训练. 例如, 许多网站包含了类似封闭式问答任务的有监督训练数据, 因此他们假设预训练中的这种显式多任务监督在零样本泛化中扮演了重要角色.

显式泛化学习

本文主要研究以监督式和大规模多任务的方式显式训练语言模型. 研究方法是使用一个包含大量以自然语言提示指定任务的训练混合集, 目标是促使模型在无需巨大规模的情况下更好地泛化到未见过的任务, 并对提示的措辞有更强的鲁棒性. 为了将大量自然语言任务转换为提示形式, 研究者为结构化数据集使用了一种简单的模板语言, 并开发了一个收集公共贡献提示的接口, 最后在一个包含多种任务和提示的子集上训练了一个T5编码器-解码器模型的变体, 并在模型未训练过的任务和提示上进行评估.

他们的实验研究了两个问题, 首先多任务提示训练是否能提高对未见任务的泛化能力, 其次在更多种类的提示上训练是否能增强对提示措辞的鲁棒性. 对于第一个问题, 他们发现多任务训练确实促进了零样本泛化, 他们的模型尽管比GPT-3小16倍, 却在11个未见数据集中的9个上达到或超过了其性能. 对于第二个问题, 他们发现针对每个数据集使用更多提示进行训练能够持续提高性能中位数并降低其波动性.

评估

为了衡量自然语言处理模型对未见任务的泛化能力的方法, 首先将数据集划分成不同的任务, 每个任务代表一种由多个数据集测试的通用能力, 然后在部分任务上训练模型, 并在另一组从未见过的保留任务上进行评估. 然而, 这种任务分类非常模糊和困难, 因为很难为每个任务分离出独特的技能, 例如, "常识" 虽常被定义为单一任务, 但其相关数据集内容差异巨大, 涵盖了从基础知识到专业定理等各种领域, 因此将其归为一类是有问题的.

鉴于按技能对任务进行分组是不完善的启发式方法, 他们倾向于根据任务的格式而非所需技能来组织任务分类体系, 这符合现有文献中的惯例. 他们从这些参考文献中收集所有数据集, 并排除了非英语数据集 (包括编程语言和解析树等结构化标注) 以及需要特殊领域知识 (如生物医学) 的数据集. 最终, 这项工作获得了12个任务和62个带有公开贡献提示的数据集, 这些都用于训练和评估混合任务中. 此外, 所有实验都使用了Hugging Face数据集库中的数据.

例子

例如与其将一项数学应用题任务和一项法律案例分析任务都归类于宽泛的"推理"技能之下, 不如根据它们的格式进行区分. 前者可以被精确地描述为"开放式生成问答"格式, 即输入文本问题并生成数字答案. 而后者则可能属于"多项选择问答"格式, 即输入案例描述并从给定选项中选择最合适的法律判断. 这种基于格式的分类方法更加清晰地定义了模型需要执行的具体操作.

图2: T0的数据集及其任务分类

为了测试零样本泛化能力, 研究人员特意保留了四类任务的数据集不用于模型训练, 分别是自然语言推断(NLI), 指代消解, 句子补全和词义消歧. 他们选择这些任务是因为人类也通常无需专门训练就能直观地完成它们, 这使其成为理想的测试标准. 同时, 句子补全被排除是因为它可能与NLI任务过于相似. 为确保公平比较, 该模型也没有使用Brown等人(2020)用于评估的数据集进行训练, 并且研究者已确认这些保留任务的数据未曾泄露到预训练数据中.

研究人员在一个名为 BIG-bench 的基准测试的子集上对模型进行最终评估. BIG-bench 是一个由社区创建的包含多种困难任务的测试集, 用于考验大型语言模型的能力. 研究人员选择的这个子集专注于语言类任务, 其文本内容完全在 T5 分词器的词汇表内, 意味着它只包含纯英文文本, 并且 BIG-bench 的维护者已为这些任务提供了初步结果. 关键在于, 所有这些 BIG-bench 的任务对于被评估的模型来说都是全新的, 未曾用于训练.

模板

该方法使用一种模板语言, 将每个数据样本格式化为包含输入模板和目标模板的提示. 模板允许用户将原始数据字段与任意文本结合, 生成自然的输入和输出语句. 例如, 对于一个自然语言推理任务, 模板可以将"前提"和"假设"字段组合成一个问题句"If {Premise} is true, is it also true that {Hypothesis}?", 同时将数字标签(如0, 1, 2)通过元数据(metadata)映射为对应的目标词("yes", "maybe", "no"). 这种方式使得同一个数据样本可以被转换成多种不同的提示形式.

图5: 一个名为P3的提示(prompt)集合, 它通过模板来生成机器学习任务的训练实例. 具体来说, 每个模板都包含输入和目标两个部分, 并会结合原始数据以及模板级别的元数据(例如预设的答案选项)进行填充, 这个填充过程被称为"materialized"(物化), 其最终产物就是一个可以直接使用的提示实例.

为了训练一个对不同指令格式具有鲁棒性的模型, 该项目通过一个开放的交互界面邀请了来自全球多个机构的贡献者来创建多样化的提示语. 项目对提示语的唯一主要限制是它们必须语法正确且对于没有任务背景的普通英语使用者来说易于理解, 同时避免了需要模型进行精确数字计数的任务, 例如要求模型直接复制答案文本而不是输出其在文中的位置索引. 在此基础上, 贡献者被鼓励以各种正式或创新的风格自由地组织数据和提问.

大多数使用的提示语都直接对应原始任务, 但也包含了一些对原始任务进行修改或颠倒的版本, 例如根据摘要生成原文. 这类非原始任务的提示语被加入到训练数据中以增强多样性, 但它们不会被用于最终的评估报告, 因为它们的设定偏离了原始数据集所使用的评估指标和基线标准.