ChatGPT背后的指令学习是什么?PSU发布首篇「指令学习」全面综述
任务语义可以用一组输入到输出的例子或一条文本指令来表示。传统的自然语言处理(NLP)机器学习方法主要依赖于大规模特定任务样本集的可用性。
但这出现了两个问题:首先,收集特定于任务的标记示例,不适用于任务可能太复杂或太昂贵而无法注释,或系统需要立即处理新任务的场景;其次,这对用户来说并不友好,因为最终用户可能更愿意在使用系统之前提供任务描述,而不是一组示例。
因此,社区对NLP的一种新的监督寻求范式付出了越来越大的兴趣:从任务指令中学习。尽管取得了令人印象深刻的进展,但社区仍面临一些共同的问题。
本文试图从以下几个方面对当前的指令学习研究进行总结:
(1)什么是任务指令,存在哪些指令类型?
(2)如何为指令建模?
(3)哪些因素影响和解释指令的执行?
(4)指令中还存在哪些挑战?
据我们所知,这是第一次对文本指令的全面调查。
1 引言
人工智能的一个目标是建立一个可以普遍理解和解决新任务的系统。标记示例作为主流任务表示,不太可能大量可用,甚至不存在。那么,是否有其他任务表示可以有助于任务理解?任务指令为表达任务语义提供了另一个监督维度,指令往往包含比单个标记示例更抽象和全面的目标任务知识。
指令学习是受典型的人类对新任务的学习启发,例如,小孩可以通过从指令和几个例子中学习来很好地解决一个新的数学任务。这种新的学习范式最近引起了机器学习和NLP社区的主要关注。
如图1所示,通过任务指令的可用性,可以快速构建系统来处理新任务,特别是在特定于任务的注释稀缺的情况下。
当谈到任务指令时,我们大多数人首先会将这个概念与提示联系起来——使用一个简短的模板将新的输入重新格式化为语言建模问题,以便为启动PLM回复响应。尽管提示在文本分类、机器翻译等中普遍存在,但提示只是指令的一种特殊情况。本文对指令驱动的NLP研究进行了全面和更广泛的看法。具体来说,我们试图回答以下问题:
什么是任务指令,存在哪些指令类型?
给定任务指令,如何对其进行编码以帮助完成目标任务?
哪些因素(如模型大小、任务数量)影响指令驱动系统的性能,以及如何设计更好的指令?
指令学习能带来什么应用?
指令学习中存在哪些挑战,未来的方向是什么?
据我们所知,这是第一篇调研文本指令学习的论文。与一些现有的侧重于特定上下文指令的调研相比,例如提示、按输出输入的演示或推理,我们提供了一个更广泛的视角,以有组织的方式连接该领域的不同研究。希望本文能呈现一个更好的指令学习故事,吸引更多同行来研究这个具有挑战性的人工智能问题。我们还发布了本次调研的相应阅读清单。
2 基础知识
对于任务式学习,目标是通过遵循指令来驱动系统达到给定输入的输出。因此,一个数据集由三个元素组成:
Input (X):实例的输入;它可以是一段文本(如情感分类)或一组文本(如文本蕴涵、问题回答等)。
Output (Y):实例的输出;在分类问题中,它可以是一个或多个预定义标签;在文本生成任务中,它可以是任何开放形式的文本。
模板(T):一种文本模板,试图单独表达任务的含义,或者充当X和y之间的桥梁。T可能还不是一种组件结构。
3 什么是任务指令?
在之前的零样本和少样本NLP任务中已经使用了各种类型的文本指令,例如提示,Amazon Mechanical Turk 指令,辅以演示的指令和思维链解释。不同的指令最初是为不同的目标设计的(例如,Mturk指令最初是为人类标注者理解而创建的,提示是为了控制PLM)。在本节中,如图2所示,我们首先将这些指令总结为三个类别,它们执行T、X和ˆY的不同组合(面向蕴含、面向PLM和面向人),然后比较它们并提供指令的正式定义。
3.1 I=T^+Y:Entailment主导的指令
处理分类任务的一个传统方案是将目标标签转换为索引,并让模型决定输入属于哪个索引。这种范式侧重于对输入语义进行编码,同时丢失标签语义。为了让系统识别新标签而不依赖于大量标记的示例,Yin等人提出为每个标签建立一个假设——然后,推导标签的真值被转换为确定假设的真值。如表1所示,这种方法内置在指令I中,将模板T与标签Y相结合,以解释每个目标标签Y。由于这种范式自然地满足文本蕴含的格式(TE,其中任务输入和指令可以分别被视为前提和假设),这些类型的指令被称为「面向蕴含(Entailment)的指令」。
面向蕴含(entailment)的指令学习方法具有以下4个方面的优势:
(1)保持了标签语义,使得输入编码和输出编码在建模输入输出关系时得到同等的重视;
(2)形成了一个统一的推理过程——文本蕴含——来处理各种NLP问题;
(3)它创造了利用现有TE数据集的间接监督的机会,以便预训练TE模型有望在不进行特定任务微调的情况下在这些目标任务上工作;
(4)将原始的闭集标签分类问题扩展为具有少量甚至零类属类样本的开放域开放形式标签识别问题。
因此,它被广泛应用于各种少样本/零样本分类任务中,如分类主题、情感、姿态、实体类型和实体关系。
3.2 I=T^+X:面向PLM的指令(如ˆ提示)
提示是面向PLM的指令的代表,它通常是一个简短的语句,前面加上任务输入(前缀提示),或者一个完形填空问题模板(完形填空提示)。它主要用于从预训练的语言模型(PLM)中查询中间响应(可以进一步转换为最终答案)。
由于提示输入符合PLM的预训练目标,例如,完形风格的输入满足掩码语言建模目标,它有助于摆脱对传统监督微调的依赖,并大大减轻人工标注的成本。因此,快速学习在大量之前的少量/零样本NLP任务上取得了令人印象深刻的结果,例如问答、机器翻译、情感分析、文本蕴含和命名实体识别。
3.3 以人为本指示
以人为本的指令基本上是指在人类注释平台上用于众包的指令(例如Amazon MTurk指令)。与面向人的指令不同,面向人的指令通常是一些人可读的、描述性的、段落式的任务特定文本信息,由任务标题、类别、定义、要避免的事项等组成。因此,以人为本的指令更加友好,可以理想地应用于几乎任何复杂的NLP任务。
4 如何为指令建模?
在本节中,我们总结了几种最流行的指令学习建模策略。总体而言,本文介绍了四种不同的建模方案:对于早期的基于机器学习的系统,(1)基于语义解析器的策略是编码指令的常用方法;随着神经网络和预训练语言模型的出现,(2)基于提示模板和(3)基于前缀指令的指令学习模式成为两种备受青睐的范式;最近,(4)基于超网络的方法也引起了更大的兴趣。
5 应用
5.1人机交互
文本指令可以自然地视为一种人机交互方式。之前的许多工作使用自然语言指令来「指导」计算机执行各种现实世界的任务。
对于非NLP(多模态)任务,大多数专注于基于环境的语言学习,即驱动智能体将自然语言指令与环境相关联,并做出相应的反应,例如从图像/视频中选择提到的对象,按照导航指示,在地图上绘制相应的痕迹,基于给定规则玩足球/纸牌游戏,生成实时体育广播、控制软件和查询外部数据库。与此同时,指令也被广泛适用于帮助与系统沟通,以解决NLP任务,例如,遵循操作字符串的指令,根据给定的解释对电子邮件进行分类,以及文本到代码生成。
近年来,越来越多的研究倾向于以迭代和模块化的方式设计人机通信过程。例如,Li等人构建了一个系统来帮助用户处理日常任务(例如,点咖啡或请求Uber)。得益于用户友好的图界面,系统可以迭代地询问有关任务的问题,用户可以不断改进他们的指令,以避免不明确的描述或模糊的概念。类似地,Dwivedi-Yu等人提出了一个基准来迭代地指导PLM改进文本,其中每次迭代只使用具有精确目的的一小段指令(例如,「简化文本」或「使文本中性」)。此外,Chakrabarty等人构建了一个协作写诗系统,用户可以最初提供一个模棱两可的指令(例如,「写一首关于蛋糕的诗」),然后通过观察模型的中间输出,用更多的细节逐步完善指令(例如,「包含单词-巧克力」)。同时,Mishra和Nouri提出了一个传记生成系统,该系统逐步从用户那里收集必要的个人信息(通过在对话场景中提出问题来引导用户),并最终生成一个段落式的传记。针对非专家用户难以一次性编写完整的指令的问题,在基于指令的人工智能系统设计中采用迭代式、模块化的设计范式,可以引导用户逐步丰富任务指令,从而有效地缓解用户的思维需求,使系统更加面向用户。鉴于其实用价值,本文强调了这一分支工作的重要性。
5.2 数据和特征增强
任务指令被认为是一种间接的监督资源,其中有时包含一些肤浅且武断的规则。这些规则也被称为标记函数,可以直接应用于注释(例如,句子「a very fair price」是情感积极的,因为「单词price之前直接有fair」)。因此,现有的一些工作还将指令作为远程监督来执行数据或特征增强。例如,Srivastava等人使用语义解析器将自然语言解释转换为逻辑形式,并将它们应用于数据集中的所有实例以生成额外的二进制特征。而Wang等人利用标签解释自动标注原始语料库,并在产生的噪声数据上训练分类器。除了直接的扩充外,Su等人进一步使用任务指令来丰富模型表示,并实现了较强的跨任务泛化。具体来说,他们在具有对比学习的不同指令数据集上训练了一个嵌入模型(单个编码器),然后使用该模型为下游未见过的任务生成基于指令的特定任务表示。
5.3 通用语言模型
根据通用人工智能(Artificial General Intelligence, AGI)的定义,「通用模型」通常是一个能够胜任不同任务并在多变环境中可扩展的系统,这将远远超出其创造者最初的预期。虽然特定于NLP领域,但通用语言模型应该是一个优秀的多任务助手,能够以完全零样本/少样本的方式熟练处理各种现实世界的NLP任务和不同的语言。由于许多现有工作证明了在跨任务泛化中使用指令的惊人能力,该指令很可能成为实现这一最终目标的突破。
值得注意的是,最近指令的两个显著应用,即InstructGPT和ChatGPT,也表明在构建通用语言模型方面迈出了一大步。然而,与其他主要采用指令学习的工作不同,ChatGPT还采用了一些其他组件,如人工反馈的强化学习(RLHF)。虽然「哪个组件对ChatGPT的出色结果贡献更大」的答案仍然是模糊的,需要进一步调研,但我们介绍了一些最近的工作,以强调指令学习的关键作用。例如,Chung等人进行了广泛的实验来评估人类对PaLM的偏好对齐。他们发现,即使没有任何人类反馈,指令微调也显著降低了PaLM开放式世代的毒性,比如性别和职业偏见。此外,其他一些工作也单独采用创造性指导而不是人工反馈,并取得了显著的跨任务结果。尽管ChatGPT仍然存在许多不令人满意的方面,距离通用语言模型还很远,我们希望AGI的目标可以通过采用和发展更强大的技术来继续推动,包括指令学习。