这是Prompt系列文章的第一篇,对《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》的翻译。

预训练、提示与预测:自然语言处理中提示方法的系统综述

  • 摘要
  • 1 自然语音处理中的两次巨变
  • 2 对提示的正式描述
    • 2.1 NLP中的监督学习
    • 2.2 提示基础知识
      • 2.2.1 提示添加
      • 2.2.2 回答搜索
      • 2.2.3 答案映射
    • 2.3 提示的设计注意事项
  • 3 提示模板工程
    • 3.1 提示形状
    • 3.2 手动模板工程
    • 3.3 自动化模板学习
      • 3.3.1 离散提示
      • 3.3.2 连续提示
  • 4 提示答案工程
    • 4.1 答案的形状
    • 4.2 答案空间设计方法
      • 4.2.1 手动设计
      • 4.2.2 离散答案搜索
      • 4.2.3 持续的答案搜索
  • 5 多提示学习
    • 5.1 提示集成
    • 5.2 提示增强
    • 5.3 提示组合
    • 5.4 提示分解
  • 6 提示方法的训练策略
    • 6.1 训练设置
    • 6.2 参数更新方法
      • 6.2.1 无提示微调
      • 6.2.2 无调整提示
      • 6.2.3 固定LM提示调整
      • 6.2.4 固定提示LM调整
      • 6.2.5 提示+LM调节
  • 7 应用
    • 7.1 知识探究
    • 7.2 结构预测
    • 7.3 基于分类的任务
    • 7.4 信息抽取
    • 7.5 NLP中的推理
    • 7.6 QA
    • 7.7 文本生成
    • 7.8 文本生成的自动评估
    • 7.9 元应用
    • 7.10 多模态学习
  • 8 提示相关的话题
  • 9 挑战
    • 9.1 预训练LM的选择
    • 9.2 提示的设计
    • 9.3 提示回答工程
    • 9.4 调整策略的选择
    • 9.5 多提示学习
    • 9.6 提示的理论与实证分析
    • 9.7 提示的可迁移性
    • 9.8 不同范式的结合
    • 9.9 提示方法的校准
  • 10 结论

摘要

本文以自然语言处理的一种新范式综述和组织研究工作,我们称之为“基于提示的学习”。与传统的监督学习不同,传统的监督学习训练模型接受输入 x x x并将输出y预测为 P ( y ∣ x ) P(y|x) P(y∣x),基于提示的学习基于直接对文本概率建模的语言模型。为了使用这些模型来执行预测任务,使用模板将原始输入 x x x修改为具有一些未填充槽的文本字符串提示 x ′ x' x′,然后使用语言模型来概率性地填充未填充的信息,以获得最终字符串 x ^ \hat x x^,从中可以导出最终输出 y y y。该框架功能强大且具有吸引力,原因有很多:它允许对大量原始文本进行语言模型预训练,通过定义新的提示函数,该模型能够执行少量甚至零样本学习,以适应具有少量或无标记数据的新场景。在这篇文章中,我们介绍了这一有前景的范式的基本原理,描述了一套统一的数学符号,可以涵盖各种各样的现有工作,并沿着几个维度组织现有工作,例如,选择预训练的语言模型、提示和调整策略。为了让感兴趣的初学者更容易进入该领域,我们不仅对现有工作进行了系统的回顾,并对基于提示的概念进行了高度结构化的类型学,还发布了其他资源,例如NLPedia–Pretrain网站,包括不断更新的综述和论文列表。

1 自然语音处理中的两次巨变

完全监督学习,即仅在目标任务的输入-输出示例数据集上训练特定任务的模型,长期以来在许多机器学习任务中发挥着核心作用,自然语言处理(NLP)也不例外。由于这种手动注释的数据集一直不足以学习高质量的模型,早期的NLP模型严重依赖于特征工程(表1(a)),其中NLP研究人员或工程师使用他们的领域知识来定义和提取原始数据中的显著特征,并为模型提供适当的归纳偏差,以从这些有限的数据中学习。随着NLP神经网络模型的出现,显著特征与模型本身的训练相结合,因此重点转移到了架构工程上,在架构工程中,通过设计有利于学习这些特征的合适网络架构来提供归纳偏差(表1(b)。
然而,从2017年到2019年,NLP模型的学习发生了翻天覆地的变化,这种完全监督的范式现在发挥着越来越小的作用。具体而言,标准转向了预训练和微调模式(表1(c))。在这种范式中,具有固定架构的模型被预训练为语言模型(LM),预测观察到的文本数据的概率。因为训练LMs所需的原始文本数据非常丰富,所以这些LMs可以在大型数据集上进行训练,在学习建模语言的健壮通用特征的过程中。然后,通过引入额外的参数并使用特定任务的目标函数对其进行微调,将上述预训练的LM适应于不同的下游任务。在这种模式下,重点主要转向目标工程,设计在预训练和微调阶段使用的训练目标。例如,Zhang等人表明,引入从文档中预测显著句子的损失函数将导致用于文本摘要的更好的预训练LM。值得注意的是,预训练的LM的主体通常(但并不总是)也进行了微调,使其更适合解决下游任务。
现在,到2021年写这篇文章时,我们正处于第二次大变革的中期,其中“预训练,微调”程序被我们称之为“预训练、提示和预测”的程序所取代。在这种范式中,不是通过目标工程将预训练LM适应下游任务,在文本提示的帮助下,下游任务被重新制定,看起来更像原始LM训练期间解决的任务。例如,当我们意识到社交媒体帖子“我今天错过了公交车”的情绪时,我们可能会继续提示“我感觉_”,并要求LM用一个带有情绪的词来填补空白。或者,如果我们选择提示“英语:我今天错过了公交车。法语:_”,那么LM可能可以用法语翻译来填补空白。通过这种方式,通过选择适当的提示,我们可以操纵模型行为,使得预训练的LM本身可以用于预测期望的输出,有时甚至不需要任何额外的任务特定训练(表1(d)。这种方法的优点是,在给定一套适当的提示的情况下,以完全无监督的方式训练的单个LM可以用于解决大量任务。然而,与大多数概念上诱人的前景一样,也有一个陷阱-这种方法介绍了提示工程的必要性,找到最合适的提示来允许LM解决手头的任务。

本综述试图通过提供提示方法的概述和正式定义来组织这个快速发展的领域的知识现状(第2节)。接下来是对提示方法的深入讨论,从提示模板工程(第3节)和提示答案工程(第4节)等基础知识到多提示学习方法(第5节)和提示意识训练方法(第6节)等更先进的概念。然后,我们组织了基于提示的学习方法所应用的各种应用程序,并讨论了它们如何与提示方法的选择相互作用(第7节)。最后,我们试图将激励方法的现状置于研究生态系统中,并与其他研究领域建立联系(第8节),提出一些当前具有挑战性的问题,这些问题可能已经成熟,可以进行进一步研究(第9节)。
最后,为了帮助对该领域感兴趣的初学者更有效地学习,我们重点介绍了本次综述和相关网站上提供的关于提示学习(以及预训练)的一些系统资源:

  • 一个基于提示的学习网站,包含:本综述的频繁更新、相关幻灯片等。
  • 图1:快速学习的重要概念类型。
  • 表7和表8:不同提示方法之间的系统和全面比较。
  • 表5:常用提示的组织。
  • 表4:基于提示的研究工作时间表。
  • 表1:不同预培训的LMs之间的系统和全面比较

2 对提示的正式描述

2.1 NLP中的监督学习

在NLP的传统监督学习系统中,我们获取输入 x x x,通常是文本,并基于模型 P ( y ∣ x , θ ) P(y|x,\theta) P(y∣x,θ)预测输出 y y y。 y y y可以是标签、文本或其他各种输出。为了学习该模型的参数 θ \theta θ,我们使用包含输入和输出对的数据集,并训练模型来预测该条件概率。我们将用两个标准化的例子来说明这一点。
首先,文本分类采用输入文本 x x x,并从固定标签集 Y \mathbf{Y} Y预测标签 y y y。举个例子,情感分析可以采用输入 x = x= x=“我喜欢这部电影”,并预测标签集 Y = { + + , + , , − , − − } \mathbf{Y}=\{++,+,~,-,--\} Y={++,+, ,−,−−}中的标签 y = + + y=++ y=++。其次,条件文本生成采用输入 x x x,并生成另一个文本 y y y。一个例子是机器翻译,其中输入是一种语言的文本,如芬兰语 x = x= x=“Hyväähuomenta”,输出是英语 y = y= y=“早上好”。

2.2 提示基础知识

监督学习的主要问题是,为了训练模型 P ( y ∣ x , θ ) P(y|x,\theta) P(y∣x,θ),有必要为任务提供注释数据,而对于许多任务来说,这些数据无法大量找到。NLP的基于提示的学习方法试图通过学习对文本 x x x本身的概率 P ( x ; θ ) P(x;\theta) P(x;θ)建模的LM来规避这个问题(详见附录),并使用这个概率来预测 y y y,从而减少或消除对大型标记数据集的需求。在本节中,我们对提示的最基本形式进行了数学描述,其中包括许多关于提示的工作,也可以扩展到其他工作。具体而言,基本提示分三步预测得分最高的 y ^ \hat y y^​。

2.2.1 提示添加

在这一步骤中,应用提示函数 f p r o m p t ( ⋅ ) f_{prompt}(\cdot) fprompt​(⋅)将输入文本 x x x修改为提示 x ′ = f p r o m p t ( x ) x'=f_{prompt}(x) x′=fprompt​(x)。在之前的大多数工作中,该功能由两个步骤组成:
(1) 应用一个模板,它是一个文本字符串,有两个槽:一个是输入 x x x的输入槽[X],另一个是中间生成的答案文本 z z z的答案槽[Z],稍后将它们映射到 y y y中。
(2) 用输入文本 x x x填充槽[X]。
在情感分析的情况下, x = x= x=“我喜欢这部电影”,模板的形式可能是“[x]总的来说,这是一部[Z]电影。”然后, x ′ x' x′会变成“我爱这部电影。总的说,这是部[Z]'电影,”给出了前面的例子。在机器翻译的情况下,模板可以采用“芬兰语:[X]英语:[Z]”等形式,其中输入和答案的文本通过指示语言的标题连接在一起。我们在表3中显示了更多的示例。
值得注意的是,(1)上面的提示符将在提示符中间或末尾有一个空的空格来填充 z z z。在下面的文本中,我们将把第一种类型的提示称为完形填空提示,将在文本中间插入一个空格,将输入文本完全位于 z z z之前的第二种提示称为前缀提示。(2) 在许多情况下,这些模板词不一定由自然语言表征组成;它们可以是后来嵌入连续空间的虚拟单词(例如,用数字id表示),一些提示方法甚至直接生成连续向量(详见第3.3.2节)。(3)[X]槽的数量和[Z]槽的数量可以根据手头任务的需要灵活更改。

2.2.2 回答搜索

接下来,我们搜索使LM的得分最大化的得分最高的文本 z ^ \hat z z^。我们首先将 Z \mathbf{Z} Z定义为 z z z的一组允许值。在生成任务的情况下, Z \mathbf{Z} Z可以是整个语言的范围,或者在分类的情况下可以是语言中单词的一小部分,例如定义 Z = \mathbf{Z}= Z={“优秀”、“好”、“OK”、“坏”、“可怕”}来表示 Y = \mathbf{Y}= Y={++、+、~、-、–}中的每个类。
然后,我们定义一个函数 f f i l l ( x ′ , z ) f_{fill}(x',z) ffill​(x′,z),该函数用潜在的答案 z z z填充提示 x x x中的位置[Z]。我们将调用经过此过程的任何提示作为填充提示。特别是,如果提示中填写了真实答案,那么我们将其称为已回答提示(表2显示了一个示例)。最后,我们通过使用预训练的LM P ( ⋅ ; θ ) P(\cdot;\theta) P(⋅;θ)计算其相应的填充提示的概率来搜索潜在答案集 z z z,
z ^ = s e r a c h z ∈ Z P ( f f i l l ( x ′ , z ) ; θ ) . (1) \hat z=\mathop{serach}\limits_{z\in\mathbf{Z}}P(f_{fill}(x',z);\theta).\tag{1} z^=z∈Zserach​P(ffill​(x′,z);θ).(1)
该搜索函数可以是搜索最高得分输出的 a r g m a x argmax argmax搜索,或者是根据LM的概率分布随机生成输出的采样。

2.2.3 答案映射

最后,我们想从得分最高的答案 z ^ \hat z z^到得分最高的输出 y ^ \hat y y^​。在某些情况下,这是微不足道的,因为答案本身就是输出(如在翻译等语言生成任务中),但在其他情况下,多个答案可能会产生相同的输出。例如,可以使用多个不同的带感情的词(例如,“优秀”、“美妙”、“奇妙”)来表示一个类(例如“++”),在这种情况下,有必要在搜索的答案和输出值之间进行映射。

2.3 提示的设计注意事项

现在我们有了基本的数学公式,我们将详细说明提示方法中的一些基本设计考虑因素,我们将在以下部分中详细说明:

  • 预训练的LM选择:有多种预训练的LMs可用于计算 P ( x ; θ ) P(x;\theta) P(x;θ)。在附录中,我们介绍了预训练的LMs,特别是从解释其在提示方法中的效用的重要维度。
  • 提示模板工程:假设提示指定了任务,选择合适的提示模板不仅对准确性有很大影响,而且对模型首先执行的任务也有很大影响。在第3节中,我们讨论了选择应使用哪个提示模板作为 f p r o m p t ( x ) f_{prompt}(x) fprompt​(x)的方法。
  • 快速回答工程:根据任务的不同,我们可能希望以不同的方式设计 Z \mathbf{Z} Z,可能还有映射功能。在第4节中,我们将讨论不同的方法。
  • 扩展范式:如上所述,上述方程仅代表了为进行各种提示而提出的各种基本框架中最简单的一个。在第5节中,我们讨论了如何扩展这一基本范式,以进一步提高结果或适用性。
  • 基于提示的训练策略:也有训练参数的方法,无论是提示、LM还是两者。在第6节中,我们总结了不同的策略,并详细说明了它们的相对优势。

3 提示模板工程

提示模板工程是创建提示函数 f p r o m p t ( x ) f_{prompt}(x) fprompt​(x)的过程,该函数可在下游任务上产生最有效的性能。在之前的许多工作中,这涉及到人类工程师或算法为模型预期执行的每个任务搜索最佳模板。如图1的“提示模板工程”部分所示,必须首先考虑提示形状,然后决定是采用手动还是自动方法来创建所需形状的提示,如下所述。

3.1 提示形状

如上所述,有两种主要的提示:完形填空提示,它填补了文本字符串的空白(例如,“我喜欢这部电影,它是一部[Z]电影”),前缀提示,它延续了字符串前缀(例如:“我爱这部电影。评论的感受是什么?[Z]”)。选择哪一个将取决于任务和用于解决任务的模型。一般来说,对于与生成有关的任务,或者使用标准自回归LM解决的任务,前缀提示往往更有利,因为它们与模型的从左到右的性质很好地吻合。对于使用掩码LMs解决的任务,完形填空提示非常适合,因为它们与预训练任务的形式非常匹配。全文重构模型更通用,可以与完形填空或前缀提示一起使用。最后,对于一些关于多个输入的任务,如文本对分类,提示模板必须包含两个输入[X1]和[X2]或更多的空间。

3.2 手动模板工程

也许创建提示最自然的方法是基于人类的内省手动创建直观的模板。例如,开创性的LAMA数据集提供了手动创建的完形填空模板,以探究LMs中的知识。Brown等人创建手工制作的前缀提示来处理各种任务,包括用于常识推理的问答、翻译和探究任务。Schick和Schütze以及Schick和Schwütse、Schick和Schütz在文本分类和条件文本生成任务的小样本学习设置中使用预定义的模板。

3.3 自动化模板学习

虽然手动制作模板的策略是直观的,确实可以在一定程度上准确地解决各种任务,但这种方法也存在几个问题:(1)创建和尝试这些提示是一门需要时间和经验的艺术,尤其是对于一些复杂的任务,如语义解析;以及(2)即使是经验丰富的提示设计者也可能无法手动发现最佳提示。
为了解决这些问题,已经提出了许多方法来自动化模板设计过程。特别地,自动诱导的提示可以进一步分为离散提示和连续提示,其中提示是实际的文本字符串,其中提示直接在底层LM的嵌入空间中描述。
另一个正交设计考虑因素是提示函数 f p r o m p t ( x ) f_{prompt}(x) fprompt​(x)是静态的,对每个输入使用基本相同的提示模板,还是动态的,为每个输入生成自定义模板。静态和动态策略都被用于不同种类的离散和连续提示,我们将在下面提到。

3.3.1 离散提示

致力于发现离散提示(又称硬提示),自动搜索在离散空间中描述的模板,通常对应于自然语言短语。我们在下面详细介绍了为此提出的几种方法。

  • D1:提示挖掘。Jiang等人的MINE方法是一种基于挖掘的方法,可以在给定一组训练输入 x x x和输出 y y y的情况下自动找到模板。该方法在大型文本语料库(例如维基百科)中搜索包含 x x x和 y y y的字符串,并找到输入和输出之间的中间词或依赖路径。频繁的中间词或依赖路径可以作为“[X]中间词[Z]”中的模板。
  • D2:提示性措辞。基于复述的方法采用现有的种子提示(例如,手动构建或挖掘),将其复述为一组其他候选提示,然后选择在目标任务上实现最高训练精度的提示。这种转述可以通过多种方式完成,包括使用将提示往返翻译成另一种语言,然后返回,使用同义词库中的短语替换,或者使用专门优化的神经提示重写器来提高使用提示的系统的准确性。值得注意的是,Haviv等人在输入 x x x输入到提示模板后执行转述,允许为每个单独的输入生成不同的转述。
  • D3:基于梯度的搜索。Wallace等人在实际标记上应用基于梯度的搜索来寻找短序列,该短序列可以触发基础的预训练LM来生成期望的目标预测。这个搜索是以迭代的方式完成的,在提示中逐步遍历标记。基于这种方法,Shin等人使用下游应用程序训练样本自动搜索模板词,并在提示场景中表现出强大的性能。
  • D4:提示生成。其他工作将提示的生成视为文本生成任务,并使用标准的自然语言生成模型来执行此任务。例如,Gao等人将seq2seq预训练的LM T5引入模板搜索过程。由于T5已经在填充缺失跨度的任务上进行了预训练,因此他们使用T5通过(1)指定在模板内插入模板词的位置和(2)为T5提供训练样本以解码模板词来生成模板词。Guo等使用强化学习来生成提示,以控制文本生成过程。Ben David等人提出了一种域自适应算法,该算法训练T5为每个输入生成唯一的域相关特征(DRF)(表征域信息的一组关键字)。然后,这些DRF可以与输入连接以形成模板,并被下游任务进一步使用。
  • D5:即时评分。Davison等人研究了知识库填充的任务,并使用LMs设计了输入模板(头-关系-尾三元组)。他们首先手工制作一组模板作为潜在的候选者,并填充输入和回答槽以形成填充的提示。然后,他们使用单向LM对这些填充的提示进行评分,选择LM概率最高的提示。这将为每个单独的输入生成自定义模板。

3.3.2 连续提示

因为提示构建的目的是找到一种允许LM有效执行任务的方法,而不是供人类使用,所以没有必要将提示限制在人类可解释的自然语言中。正因为如此,还有一些方法可以检查直接在模型的嵌入空间中执行提示的连续提示(也称为软提示)。具体而言,连续提示消除了两个约束:(1)放宽了模板词的嵌入是自然语言(如英语)词的嵌入的约束;(2)消除了模板由预训练的LM参数参数化的限制。相反,模板有自己的参数,可以根据来自下游任务的训练数据进行调整。下面我们重点介绍几种有代表性的方法。

  • C1:前缀调整。前缀调整是一种将连续任务特定向量序列预先添加到输入中,同时保持LM参数冻结的方法。从数学上讲,这包括在给定可训练前缀矩阵 M ϕ M_\phi Mϕ​和由 θ \theta θ参数化的固定预训练LM的情况下,对以下对数似然目标进行优化,
    m a x ϕ log ⁡ P ( y ∣ x ; θ ; ϕ ) = m a x ϕ ∑ y i log ⁡ P ( y i ∣ h < i ; θ ; ϕ ) . (2) \mathop{max}\limits_{\phi}\log P(y|x;\theta;\phi)=\mathop{max}\limits_{\phi}\mathop{\sum}\limits_{y_i}\log P(y_i|h_{<i};\theta;\phi).\tag{2} ϕmax​logP(y∣x;θ;ϕ)=ϕmax​yi​∑​logP(yi​∣h<i​;θ;ϕ).(2)
    在方程(2)中, h < i = [ h < i ( 1 ) ; … ; h < i ( n ) ] h_{<i}=[h_{<i}^{(1)};\dots;h_{<i}^{(n)}] h<i​=[h<i(1)​;…;h<i(n)​]是在时间 i i i处所有神经网络层的拼接。如果相应的时间步长在前缀内( h i h_i hi​是 M ϕ [ i ] M_\phi[i] Mϕ​[i]),则直接从 M ϕ M_\phi Mϕ​复制;否则,使用预先训练的LM来计算。
    在实验中,Li和Liang观察到,在低数据设置下,这种基于前缀的连续学习对不同的初始化比使用带有真实单词的离散提示更敏感。类似地,Lester等人在输入序列前准备特殊的词,以形成模板并直接调整这些词的嵌入。与Li和Liang的方法相比,这增加了更少的参数,因为它没有在每个网络层内引入额外的可调参数。Tsimpoukeli等人训练视觉编码器,该编码器将图像编码为嵌入序列,该嵌入序列可用于提示冻结的自回归LM生成适当的说明词。他们表明,所得到的模型可以对视觉语言任务(如视觉问答等)进行小样本学习。与上述两项工作不同,参考文献[135]中使用的前缀是样本相关的,即输入图像的表示,而不是任务嵌入。
  • C2:使用离散提示初始化调整。还有一些方法可以使用已经使用离散提示搜索方法创建或发现的提示来初始化对连续提示的搜索。例如,Zhong等人首先使用离散搜索方法(如AutoPrompt)定义模板,根据发现的提示初始化虚拟词,然后微调嵌入以提高任务准确性。这项工作发现,使用手动模板初始化可以为搜索过程提供更好的起点。Qin和Eisner提出为每个输入学习软模板的混合,其中使用训练样本联合学习每个模板的权重和参数。他们使用的初始模板集要么是手工制作的模板,要么是使用“提示挖掘”方法获得的模板。类似地,Hambardzumyan等人介绍了连续模板的使用,该模板的形状遵循手动提示模板。
  • C3:软硬提示混合调整。这些方法不是使用纯可学习的提示模板,而是在硬提示模板中插入一些可调嵌入。Liu等人提出了“P-Tuning”,即通过将可训练变量插入嵌入输入来学习连续提示。为了说明提示词之间的交互,它们将提示嵌入表示为BiLSTM的输出。P-tuning还引入了在模板中使用与任务相关的锚词(如关系提取中的“出资关系”)以进行进一步改进。这些锚点词在训练期间不会调整。Han等人提出了规则提示调优(PTR),该方法使用手工制作的子模板,使用逻辑规则组成完整的模板。为了增强生成的模板的表示能力,他们还插入了几个虚拟词,这些词的嵌入可以使用训练样本与预训练的LMs参数一起调整。PTR中的模板词同时包含实际词和虚拟词。实验结果证明了这种快速设计方法在关系分类任务中的有效性。

4 提示答案工程

与为提示方法设计适当输入的提示模板工程不同,提示答案工程旨在搜索答案空间 Z \mathbf{Z} Z和原始输出 Y \mathbf{Y} Y的映射,从而产生有效的预测模型。图1的“快速答案工程”部分说明了在执行快速答案工程时必须考虑的两个维度:决定答案形状和选择答案设计方法。

4.1 答案的形状

答案的形状是其粒度的特征。一些常见的选择包括以下内容:

  • 词:预先训练的LM词汇表中的词之一或词汇表的子集。
  • 跨度:短的多词跨度。这些通常与完形填空提示一起使用。
  • 句子:句子或文件。这些通常与前缀提示一起使用。

在实践中,如何选择可接受答案的形状取决于我们想要执行的任务。标记或文本跨度答案空间广泛用于分类任务(例如,情感分类;Yin等人)以及其他任务,如关系抽取或命名实体识别。较长的短语或句子答案通常用于语言生成任务和其他任务,如多项选择题回答(其中将多个短语的分数相互比较;Khashabi等人)。

4.2 答案空间设计方法

下一个要回答的问题是如何设计适当的答案空间KaTeX parse error: Undefined control sequence: \amthbf at position 1: \̲a̲m̲t̲h̲b̲f̲{Z},以及如果答案不用作最终输出,则如何映射到输出空间 Y \mathbf{Y} Y。

4.2.1 手动设计

在手动设计中,潜在答案 Z \mathbf{Z} Z的空间及其到 Y \mathbf{Y} Y的映射是由感兴趣的系统或基准设计人员手动制作的。可以采取许多策略。

  • 无约束空间。在许多情况下,答案空间 Z \mathbf{Z} Z是所有词、固定长度跨度或词元序列的空间。在这些情况下,最常见的是使用恒等映射将答案 z z z直接映射到最终输出 y y y。
  • 受限空间。然而,也存在可能输出的空间受到限制的情况。这通常用于具有有限标签空间的任务,例如文本分类或实体识别或多项选择题回答。举一些例子,Yin等人手动设计与相关主题(“健康”、“金融”、“政治”等)、情绪(“愤怒”、“喜悦”、“悲伤”、“恐惧”等)或输入文本的其他方面相关的单词列表进行分类。Cui等人手动设计列表,如“人”、“位置”等,用于命名实体识别(NER)任务。在这些情况下,有必要在答案 Z \mathbf{Z} Z和底层类 Y \mathbf{Y} Y之间进行映射。

关于多项选择题的回答,通常使用LM来计算多项选择中输出的概率,Zweig等人是一个早期的例子。

4.2.2 离散答案搜索

与手动创建的提示一样,手动创建的答案对于获得LM以实现理想的预测性能来说可能是次优的。正因为如此,在自动答案搜索方面有一些工作,尽管比搜索理想提示的工作要少。这些都适用于离散答案空间(本节)和连续答案空间(以下)。

  • 回答措辞。这些方法从初始答案空间 Z ′ \mathbf{Z}' Z′开始,然后使用转述来扩展这个答案空间,以扩大其覆盖范围。给定一对答案和输出 < z ′ , y > <z',y> <z′,y>,我们定义了一个函数,该函数生成一组转述的答案 p a r a ( z ′ ) para(z') para(z′)。最终输出的概率被定义为该转述集合 P ( y ∣ x ) = ∑ z ∈ p a r a ( z ′ ) P ( z ∣ x ) P(y|x)=\sum_{z\in para(z')}P(z|x) P(y∣x)=∑z∈para(z′)​P(z∣x)中所有答案的边际概率。这种转述可以使用任何方法进行,但Jiang等人特别使用反译方法,首先翻译成另一种语言,然后再反译以生成多个转述答案的列表。
  • 修剪,然后搜索。在这些方法中,首先,生成几个看似合理的答案的初始修剪后的答案空间 Z ′ \mathbf{Z}' Z′,然后算法在该修剪后的空间上进一步搜索以选择最终的答案集。请注意,在下面介绍的一些论文中,他们定义了从标签 y y y到单个答案标记 z z z的函数,该函数通常被称为动词化符。Schick和Schütze以及Schick等人发现在大型未标记数据集中频繁出现的包含至少两个字母字符的词元。在搜索步骤中,他们通过最大化标签相对于训练数据的可能性,迭代计算单词的适合性作为标签 y y y的代表性答案 z z z。Shin等人使用[Z]令牌的上下文化表示作为输入来学习逻辑分类器。在搜索步骤中,他们在第一步中使用学习的逻辑分类器选择获得最高概率得分的前 k k k个词元。这些选定的词元将形成答案。Gao等人首先通过根据训练样本确定的[Z]位置上的前 k k k个词汇的生成概率来选择前 k k k个单词,来构建修剪后的搜索空间 Z ′ \mathbf{Z}' Z′。然后,根据训练样本的零样本精度,只选择 Z ′ \mathbf{Z}' Z′内的一个子集,进一步缩减搜索空间。在搜索步骤中,他们使用固定模板对LM进行微调,并使用训练数据对每个答案进行映射,并根据开发集上的准确性选择最佳标签词作为答案。
  • 标签分解。在进行关系提取时,Chen等人自动将每个关系标签分解为其组成词,并将其用作答案。例如,对于per:city_of_death关系,分解后的标签词将为{人,城市,死亡}。答案跨度的概率将计算为每个词元的概率之和。

4.2.3 持续的答案搜索

很少有工作探索使用可以通过梯度下降优化的软回答词元的可能性。Hambardzumyan等人为每个类标签分配一个虚拟词元,并优化每个类的词元嵌入以及提示词元嵌入。由于答案词元是直接在嵌入空间中优化的,因此它们不利用LM学习的嵌入,而是从头开始学习每个标签的嵌入。

5 多提示学习

到目前为止,我们讨论的提示工程方法主要集中在为输入构建单个提示上。然而,大量研究表明,使用多提示可以进一步提高提示方法的效果,我们将这些方法称为多提示学习方法。在实践中,有几种方法可以将单一提示学习扩展到使用多个提示,这有多种动机。我们在图1和图2的“多提示学习”部分总结了具有代表性的方法。

5.1 提示集成

提示集成是在推理时对输入使用多个未回答的提示来进行预测的过程。一个例子如图2(a)所示。多个提示可以是离散提示,也可以是连续提示。这种提示组合可以(1)利用不同提示的互补优势,(2)降低提示工程的成本,因为选择一个性能最好的提示是有挑战性的,以及(3)稳定下游任务的性能。
提示集成与用于将多个系统组合在一起的集成方法有关,这些方法在机器学习中有着悠久的历史。目前的研究也借鉴了这些工作的思想,得出了提示集成的有效方法,如下所述。

  • 均匀平均。当使用多个提示时,组合预测最直观的方法是从不同提示中获取概率的平均值。具体地说,这表示 P ( z ∣ x ) : = 1 K ∑ i K P ( z ∣ f p r o m p t , i ( x ) ) P(z|x):=\frac{1}{K}\sum_i^K P(z|f_{prompt,i}(x)) P(z∣x):=K1​∑iK​P(z∣fprompt,i​(x)),其中 f p r o m p t , i ( ⋅ ) f_{prompt,i}(\cdot) fprompt,i​(⋅)是第 i i i个提示。Jiang等人首先通过选择在训练集中达到最高精度的 K K K个提示来过滤他们的提示,然后使用从前 K K K个提示中获得的平均对数概率来计算执行事实探测任务时[Z]位置处单个词元的概率。Schick和Schütze在使用集成模型对未标记的数据集进行注释时,也尝试了简单的平均值。在进行文本生成评估时,Yuan等人将该任务公式化为文本生成问题,并取使用不同提示获得的最终生成分数的平均值。
  • 加权平均。对来自多个提示的结果进行简单的统一平均很容易实现,但也可能是次优的,因为某些提示比其他提示更具性能。为了说明这一点,一些工作还探索使用加权平均值进行提示组合,其中每个提示都与权重相关联。权重通常是基于提示性能预先指定的,或者使用训练集进行优化。例如,Jiang等人通过最大化目标输出相对于训练数据的概率来学习每个提示的权重。Qin和Eisner使用相同的方法,只是每个提示的权重与软提示参数一起优化。此外,Qin和Eisner还引入了一种数据相关的加权策略,其中在对不同提示进行加权时也考虑了输入出现在该提示中的概率。Schick和Schütze以及Schick和Schwütz在训练前设置与训练集上的准确性成比例的每个提示的权重。
  • 多数投票。对于分类任务,多数投票也可以用于组合不同提示的结果。
  • 知识蒸馏。深度学习模型的集成通常可以提高性能,并且可以使用知识蒸馏将这种卓越的性能蒸馏为单个模型。为了结合这一想法,Schick和Schütze为每个手动创建的模板-答案对训练一个单独的模型,并使用它们的集合来注释未标记的数据集。然后对最终模型进行训练,以从带注释的数据集中蒸馏知识。Gao等人在他们自动生成的模板上使用了类似的集成方法。
  • 提示集成来生成文本。生成任务(即,答案是一串词元而不是单个词元的任务)的提示集成工作相对较少。在这种情况下,执行集成的一种简单方法是使用基于答案序列 P ( z t ∣ x , z < t ) : = 1 K ∑ i K P ( z t ∣ f p r o m p t , i ( x ) , z < t ) P(z_t|x,z_{<t}):=\frac{1}{K}\sum^K_i P(z_t|f_{prompt,i}(x),z_{<t}) P(zt​∣x,z<t​):=K1​∑iK​P(zt​∣fprompt,i​(x),z<t​)中下一个单词的集成概率生成输出的标准方法。相反,Schick和Schütze为每个提示 f p r o m p t , i ( x ) f_{prompt,i}(x) fprompt,i​(x)训练一个单独的模型,因此将这些微调的LM每个存储在存储器中是不可行的。相反,他们先使用每个模型进行生成解码,得到解码后的结果。然后,通过计算所有模型对同一结果的生成概率的平均值,来评分这个解码生成结果。

5.2 提示增强

提示增强,有时也称为演示学习,提供了一些额外的已回答提示,可用于演示LM应如何为输入 x x x实例化的实际提示提供答案。例如“中国的首都是[Z]”,提示前面可以有几个例子,例如“英国的首都是伦敦。日本的首都是东京。中国的首都为[Z]。”另一个执行两个数字相加的例子可以在图2(b)中找到。这些小样本演示利用了强大的语言模型学习重复模式的能力。
尽管提示增强的想法很简单,但有几个方面使其具有挑战性:(1)样本选择:我们如何选择最有效的样本?(2) 样本排序:我们如何正确排序所选的示例?

  • 样本选择。研究人员发现,在这种小样本场景中使用的例子的选择可能会导致非常不同的性能,从某些任务的接近最先进的准确性到接近随机的猜测。为了解决这个问题,Gao等人和Liu等人利用句子嵌入来对该嵌入空间中接近输入的示例进行采样。为了衡量预训练的LM根据指令执行新任务的泛化能力,Mishra等人同时提供正样本和负样本,其中负样本凸显了应该避免的内容。
  • 样本排序。Lu等人发现,提供给模型的回答提示的顺序在模型性能中起着重要作用,并提出了基于熵的方法来对不同的候选排列进行评分。Kumar和Talukdar搜索训练示例的良好排列作为增强提示,并在提示之间学习分隔符,以进一步提高性能。Yoo等人建议使用提示方法基于这些回答的提示生成元提示,而不是将多个回答的提示排列成有序列表。

提示增强与基于检索的方法密切相关,这些方法为模型提供更多的文本上下文以提高性能,这种方法在基于提示的学习中也被证明是有效的。然而,关键的区别在于,提示增强也利用了模板和答案,而更大的上下文学习则没有。

5.3 提示组合

对于那些可以基于更基本的子任务组合的可组合任务,我们也可以进行提示组合,使用多个子提示,每个子提示用于一个子任务,然后基于这些子提示定义一个组合提示。这个过程如图2(c)所示。例如,在旨在提取两个实体的关系的关系提取任务中,我们可以将任务分解为几个子任务,包括识别实体的特征和分类实体之间的关系。基于这种直觉,Han等人首先使用多个手动创建的子提示进行实体识别和关系分类,然后根据逻辑规则将它们组合成一个完整的提示进行关系提取。

5.4 提示分解

对于应该对一个样本执行多个预测的任务(例如,序列标记),直接定义关于整个输入文本 x x x的整体提示是具有挑战性的。解决这个问题的一个直观方法是将整体提示分解为不同的子提示,然后分别回答每个子提示。图2(d)用命名实体识别任务的一个例子说明了这一想法,该任务旨在识别输入句子中的所有命名实体。在这种情况下,输入将首先转换为一组文本跨度,然后可以提示模型预测每个跨度的实体类型(包括“非实体”)。由于跨度数量众多,同时预测所有跨度类型并不容易,因此可以分别为每个跨度创建和预测不同的提示。Cui等人已经探索了这种用于命名实体识别的快速分解。他们应用了我们在这里讨论的方法。

6 提示方法的训练策略

通过以上各节中的方法,现在可以清楚地了解如何获得适当的提示和相应的答案。现在,我们讨论与提示方法协同显式训练模型的方法,如图1的“训练策略”部分所示。

6.1 训练设置

在许多情况下,提示方法可以在没有对下游任务的LM进行任何明确训练的情况下使用,只需取一个经过训练的LM来预测文本 P ( x ) P(x) P(x)的概率,并按原样应用它来填充为指定任务而定义的完形填空或前缀提示。这通常称为零样本设置,因为感兴趣的任务没有训练数据。
然而,也有一些方法使用训练数据与提示方法一起训练模型。这些包括全数据学习,其中使用相当多的训练示例来训练模型,或者小样本学习,其中使用非常少量的示例来训练该模型。提示方法在后一种情况下特别有用,因为通常没有足够的训练示例来完全指定所需的行为,因此使用提示将模型推向正确的方向是特别有效的。
需要注意的一点是,对于第3节中描述的许多提示模板工程方法,尽管注释训练样本没有明确用于下游任务模型的训练,但它们通常用于构建或验证下游任务将使用的提示。正如Perez等人所指出的,对于下游任务来说,这可能不是真正的零样本学习。

6.2 参数更新方法

在基于提示的下游任务学习中,通常有两种类型的参数,即来自(1)预训练的LMs和(2)提示的参数。参数的哪一部分应该更新是一个重要的设计决策,这可能导致在不同场景中的适用性不同。我们总结了五种调整策略(如表4所示),基于(i)是否调整了底层LM的参数,(ii)是否存在额外的提示相关参数,以及(iii)如果存在额外的提示相关参数,是否调整了这些参数。

6.2.1 无提示微调

如引言所述,在提示方法普及之前,预训练和微调策略就已经在NLP中得到了广泛的应用。在这里,我们将没有提示的预训练和微调称为无提示微调,以与以下章节中介绍的基于提示的学习方法形成对比。在该策略中,给定任务的数据集,预训练LM的所有(或部分)参数将通过从下游训练样本中引入的梯度进行更新。以这种方式调整的预训练LM的典型例子包括BERT和RoBERTa。这是一种简单、强大且广泛使用的方法,但它可能在小数据集上过拟合或无法稳定学习。模型也容易发生灾难性遗忘,LM失去了在微调之前能够做的事情的能力。

  • 优点:简单,无需快速设计。调整所有LM参数可以使模型适应更大的训练数据集。
  • 缺点:LMs可能在较小的数据集上过拟合或无法稳定学习。

6.2.2 无调整提示

如第2节中最简单的提示形式所述,无调整提示直接生成答案,而无需仅基于提示更改预训练的LM的参数。如第5.2节所述,这些可以选择性地用回答的提示来增强输入,这种无调整提示和提示增强的组合也被称为上下文学习。无调整提示的典型示例包括LAMA和GPT-3。

  • 优点:效率高,无需参数更新过程。没有灾难性的遗忘,因为LM参数保持固定。适用于零样本设置。
  • 缺点:由于提示是提供任务规范的唯一方法,因此需要重型工程来实现高精度。特别是在上下文学习环境中,提供许多答案提示在测试时可能很慢,因此无法轻松使用大型训练数据集。

6.2.3 固定LM提示调整

在除了预训练LM的参数之外还引入了额外的提示相关参数的情况下,固定LM提示调整使用从下游训练样本获得的监督信号仅更新提示的参数,同时保持整个预训练LM不变。典型的例子是前缀调整和提示调整。

  • 优点:与无调整提示类似,它可以在LM中保留知识,适用于小样本场景。通常精度优于无调整提示。
  • 缺点:不适用于零样本场景。虽然在小样本场景中有效,但在大数据设置中表示能力有限。通过选择超参数或种子提示进行快速工程是必要的。提示通常不是人类可解释或可操作的。

6.2.4 固定提示LM调整

固定提示LM调整来调整LM的参数,如在标准预训练和微调范例中一样,但另外使用具有固定参数的提示来指定模型行为。这可能会带来改进,特别是在小样本场景中。
最自然的方法是提供一个离散的文本模板,用于每个训练和测试示例。典型的例子包括PET-TC、PET-Gen和LM-BFF。Logan IV等人最近观察到,可以通过结合提示回答工程和部分LM微调来减少提示工程。例如,他们定义了一个非常简单的模板,空提示,其中输入和掩码直接连接“ [ X ] [ Z ] [X][Z] [X][Z]”,而没有任何模板词,并发现这实现了具有竞争力的准确性。

  • 优点:模板或答案工程更完整地指定任务,允许更高效的学习,特别是在小样本场景中。
  • 缺点:仍然需要模板或答案工程,尽管可能没有无提示那么多。对一个下游任务进行微调的LM可能对另一个任务无效。

6.2.5 提示+LM调节

在这个设置中,有提示相关的参数,这些参数可以和预训练的LM的所有或一些参数一起微调。代表性的例子包括PADA和P-Tuning。值得注意的是,这种设置与标准的预训练和微调范式非常相似,但添加提示可以在模型训练开始时提供额外的引导。

  • 优点:这是最具表现力的方法,可能适用于高数据设置。
  • 缺点:需要训练和存储模型的所有参数。可能过度拟合到小数据集。

7 应用

在前几节中,我们从提示方法本身的机制的角度研究了提示方法。在本节中,我们从提示方法应用于哪些应用程序的角度来组织提示方法。我们在表7和表8中列出了这些应用程序,并在下面的部分中对其进行了总结。

7.1 知识探究

  • 事实探究。事实探究(又称事实检索)是最早应用提示方法的场景之一。探索这项任务的动机是量化预训练的LM的内部表征所承载的事实知识。在这项任务中,预训练的LM的参数通常是固定的,并且通过将原始输入转换为第2.2节中定义的完形填空提示来检索知识,完形填空可以手动制作或自动发现。相关数据集,包括LAMA和X-FACTR。由于答案是预定义的,事实检索只关注于找到有效的模板,并使用这些模板分析不同模型的结果。离散模板搜索和连续模板学习以及提示集成学习都在这一背景下进行了探索。
  • 语言探究。除了事实知识,大规模的预训练还允许LMs处理语言现象,如类比、否定、语义角色敏感性、语意相似性、不能理解和罕见词理解。上述知识也可以通过以自然语言句子的形式呈现语言探究任务来获得,这些任务将由LM完成。

7.2 结构预测

  • 语义分析。语义解析是在给定自然语言输入的情况下生成结构化意义表示的任务。Shin等人通过(1)将语义解析任务框定为转述任务和(2)通过仅允许根据语法有效的输出来约束解码过程,探索使用LMs的小样本语义解析任务。他们用第6.2.2节中描述的上下文学习设置进行实验,选择语义上接近给定测试示例的回答提示(由在给定另一个训练示例的情况下生成测试样本的条件生成概率决定)。结果证明了使用预训练的LMs对语义解析任务进行转述重新表述的有效性。

7.3 基于分类的任务

基于提示的学习在基于分类的任务中得到了广泛的探索,在这些任务中,可以相对容易地构建提示模板,例如文本分类和自然语言推理。提示基于分类的任务的关键是将其重新表述为适当的提示。例如,Yin等人使用诸如“本文档的主题是[Z]”之类的提示,然后将其输入到经过掩码预训练的LMs中进行填充。

  • 文本分类。对于文本分类任务,以前的大多数工作都使用了完形填空提示,提示模板工程和提示答案工程都进行了广泛的探索。大多数现有工作都探讨了在“固定提示LM调整”策略(定义见第6.2.4节)的小样本设置背景下,提示学习对文本分类的有效性。
  • 文本对分类。文本对分类任务旨在预测两个给定句子的关系(例如,相似性、隐含性)。典型的任务包括转述识别、自然语言推理、文本相似性预测等。与文本分类任务类似,对于文本对分类任务,通常使用完形填空提示。关于提示工程,研究人员主要关注小样本学习环境中的模板搜索,答案空间 Z \mathbf{Z} Z通常是从词汇中手动预选的。

7.4 信息抽取

与完形填空问题通常可以直观构建的分类任务不同,对于信息提取任务,构建提示通常需要更多的技巧。

  • 关系提取。关系提取是一项预测句子中两个实体之间关系的任务。Chen等人首先探讨了固定提示LM Tuning在关系提取中的应用,并讨论了阻碍提示方法从分类任务直接继承的两个主要挑战:(1)较大的标签空间(例如,关系提取中为80,而二元情感分类中为2)导致提示答案工程更加困难。(2) 在关系提取中,输入句子中的不同标记可能或多或少地重要(例如,实体提及更有可能参与关系),然而,这不能容易地反映在用于分类的提示模板中,因为原始提示模板对每个单词一视同仁。为了解决上述问题,Chen等人提出了一种自适应答案选择方法来解决问题(1)和问题的面向任务提示模板构建(2),其中他们使用特殊标记(例如[E])来突出模板中提到的实体。类似地,Han等人通过多种提示合成技术整合实体类型信息(如图2所示)。
  • 命名实体识别。NER是识别给定句子中的命名实体(例如,人名、位置)的任务。基于提示的学习应用于标记任务(例如NER)的困难在于,与分类不同,(1)要预测的每个单元是一个标记或跨度,而不是整个输入文本;(2)样本上下文中的标记标签之间存在潜在关系。总体而言,基于提示的学习在标记任务中的应用还没有得到充分的探索。Cui等人最近提出了一种使用BART的基于模板的NER模型,该模型列举了文本跨度,并考虑了手工制作的模板中每种类型的生成概率。例如,给定一个输入“Mike昨天去了纽约”,以确定“Mike”是什么类型的实体,他们使用模板“Mike是[Z]实体”,答案空间 Z \mathbf{Z} Z由“个人”或“组织”等值组成。

7.5 NLP中的推理

关于深度神经网络是否能够执行“推理”或仅基于大量训练数据记忆模式,仍存在争议。因此,已经有许多尝试通过定义跨越不同场景的基准任务来探究模型的推理能力。下面我们将详细介绍如何在这些任务中使用提示方法。

  • 常识推理。有许多基准数据集在NLP系统中测试常识推理。一些通常尝试的任务涉及解决Winograd模式,这需要模型在上下文中识别歧义代词的先行词,或者涉及在给定多项选择的情况下完成一个句子。对于前者,一个例子可能是“奖杯不适合放在棕色手提箱里,因为它太大了。”该模型的任务是推断“它”是指奖杯还是“手提箱”。通过将“它”替换为原句子中的潜在候选者,并计算不同选择的概率,通过选择实现最高概率的选择,预训练的LM可以表现得很好。对于后者,一个例子可以是“Eleanor主动提出给来访者端一些咖啡。然后她意识到自己没有干净的[Z]。”候选人的选择是“杯子”、“碗”和“勺子”。受过预训练的LM的任务是从三个候选人中选择最符合常识的一个。对于这类任务,我们还可以对每个候选任务的生成概率进行评分,并选择概率最高的任务。
  • 数学推理。数学推理是解决数学问题的能力,例如算术加法、函数求值。在预训练的LMs的背景下,研究人员发现,预训练的嵌入和LMs可以在数字较少时执行简单的运算,如加法和减法,但在数字较大时失败。Reynolds和McDonnell探索了更复杂的数学(例如, f ( x ) = x ∗ x f(x)=x*x f(x)=x∗x, f ( f ( 3 ) ) f(f(3)) f(f(3))是什么?)对问题进行推理,并通过对问题进行串行化推理来提高LM性能。

7.6 QA

问答(QA)旨在回答给定的输入问题,通常基于上下文文档。QA可以采用多种格式,如提取式QA(从包含答案的上下文文档中识别内容;例如,SQuAD)、多选式QA(其中模型必须从几个选项中进行选择;例如,RACE)和自由形式QA(其中,模型可以返回任意文本字符串作为响应;例如,叙述式QA)。通常,使用不同的建模框架来处理这些不同的格式。使用LM解决QA问题(可能使用提示方法)的一个好处是,可以在同一框架内解决不同格式的QA任务。例如,Khashabi等人通过微调基于seq2seq的预训练的LM(例如,T5)和上下文和问题的适当提示,将许多QA任务重新表述为文本生成问题。Jiang等人仔细研究了这种使用序列到序列预训练的LMs(T5、BART和GPT2)的基于提示的QA系统,并观察到这些预训练的LM在QA任务中的概率并不能很好地预测模型是否正确。

7.7 文本生成

文本生成是一系列涉及生成文本的任务,通常以其他信息为条件。提示方法可以通过使用前缀提示和自回归预训练的LM来容易地应用于这些任务。Radford等人展示了这种模型使用“翻译成法语,[X],[Z]”等提示执行文本摘要和机器翻译等生成任务的令人印象深刻的能力。Brown等人为文本生成执行上下文学习(第6.2.2节),用手动模板创建提示,并用多个回答的提示增加输入。Schick和Schütze探讨了固定提示LM调整(第6.2.4节),用于使用手工制作的模板进行小样本文本摘要。[71]研究在小样本设置中用于文本摘要和数据到文本生成的固定LM提示调整(第6.2.3节),其中可学习的前缀标记被预先添加到输入中,而预训练的LM中的参数被保持冻结。Dou等人探讨了文本摘要任务中的提示+LM调整策略(第6.2.5节),其中使用可学习的前缀提示,并由不同类型的引导信号初始化,然后可以将其与预先训练的LM的参数一起更新。

7.8 文本生成的自动评估

Yuan等人已经证明了提示学习可以用于生成文本的自动评估。具体而言,他们将生成文本的评估概念化为文本生成问题,使用预训练的序列到序列进行建模,然后使用前缀提示,使评估任务更接近预训练任务。他们通过实验发现,在使用预训练的LMs时,只需在翻译文本中添加短语“如”,就能显著提高德语-英语机器翻译评估的相关性。

7.9 元应用

提示技术的许多应用本身不是NLP任务,而是为任何应用训练强模型的有用元素。

  • 领域自适应。领域自适应是将模型从一个领域(例如新闻文本)调整到另一个领域的做法(例如社交媒体文本)。Ben David等人使用自生成的DRF来增加原始文本输入,并使用seq2seq预训练LM将序列标记作为序列到序列的问题。
  • 消除偏见。Schick等人发现,LMs可以基于有偏或去偏指令执行自诊断和自去偏。例如,为了自我诊断生成的文本是否包含暴力信息,我们可以使用以下模板“以下文本包含暴力。[X][Z]”。然后我们用输入文本填充[X],并查看[Z]处的生成概率,如果“是”的概率大于“否”,则我们将假设给定的文本包含暴力,反之亦然。为了在生成文本时执行去偏,我们首先计算给定原始输入的下一个单词 P ( x t ∣ x < t ; θ ) P(x_t|x_{<t};\theta) P(xt​∣x<t​;θ)的概率。然后,我们通过将自诊断文本输入附加到如上所述的原始输入来计算下一个单词 P ( x t ∣ [ x < t ; x d i a g n o s i s ] ; θ ) P(x_t|[x_{<t};x_{diagnosis}];\theta) P(xt​∣[x<t​;xdiagnosis​];θ)的概率。两个预测下一个词元的概率分布可以组合起来,以抑制不需要的属性。
  • 数据集构建。Schick和Schütze提出,在给定某些指令的情况下,使用预训练的LM来生成数据集。例如,假设我们有一个未标记的数据集,其中每个样本都是一个句子。如果我们想构建一个包含语义相似句子对的数据集,那么我们可以为每个输入句子使用以下模板:“写出两个意思相同的句子。[X][Z]”,并尝试生成一个与输入句子意思相同的语句。

7.10 多模态学习

Tsimpoukeli等人将提示学习的应用从基于文本的NLP转移到多模态设置(视觉和语言)。通常,它们采用固定LM提示调整策略和提示增强技术。它们具体地将每个图像表示为连续嵌入的序列,并且用该前缀提示其参数被冻结的预训练LM来生成诸如图像字幕之类的文本。实证结果表明,该系统具有小样本学习能力:在一些演示(回答提示)的帮助下,系统可以快速学习新对象和新颖视觉类别的单词。

8 提示相关的话题

提示学习的本质是什么?它与其他学习方法有何联系?在本节中,我们将提示学习与其他类似的学习方法联系起来。

  • 集成学习。集成学习是一种旨在利用多个系统的互补性来提高任务性能的技术。通常,集成中使用的不同系统源于架构、训练策略、数据排序和/或随机初始化的不同选择。在提示集成(第5.1节)中,提示模板的选择成为生成多个要集成的结果的另一种方式。这具有明显的优点,即这不一定需要对模型进行多次训练。例如,当使用离散提示时,可以在推理阶段简单地更改这些提示。
  • 小样本学习。小样本学习的目的是在数据稀缺的场景中,用很少的训练样本来学习机器学习系统。有多种方法可以实现小样本学习,包括模型不可知元学习(快速适应新任务的学习特征)、嵌入学习(将每个样本嵌入相似样本靠近的低维空间)、基于记忆的学习(通过来自记忆的内容的加权平均值表示每个样本),依此类推。提示增强可以被视为实现小样本学习的另一种方式(也称为基于启动的小样本学习)。与以前的方法相比,提示增强直接在当前处理的样本中预先准备几个标记的样本,以从预训练的LM中获取知识,即使没有任何参数调整。
  • 大上下文学习。更大的上下文学习旨在通过使用额外的上下文信息来增强输入,例如从训练集或外部数据源中检索的上下文信息,来提高系统的性能。提示增强可以被视为将相关的标记样本添加到输入中,但一个较小的区别是在较大的上下文学习中,并且引入的上下文不一定是标记数据。
  • 查询重新表述。查询重新表述通常用于信息检索和问答任务,其目的是通过用相关查询词扩展输入查询或生成转述来引出更多相关文本(文档或答案)。基于提示的学习和查询重新表述之间有几个共同点,例如(1)两者都旨在通过提出正确的问题来更好地利用一些现有的知识库;(2)知识库通常是一个黑匣子,用户无法使用,因此研究人员必须学会如何以最佳方式进行探究仅仅基于问题。
    也有区别:传统查询重新表述问题中的知识库通常是搜索引擎或QA系统。相比之下,对于基于提示的学习,我们通常将这个知识库定义为LM,并需要找到合适的查询来从中得出合适的答案。提示学习中的输入重新表述改变了任务的形式。例如,原始文本分类任务已被转换为完形填空问题,因此带来了关于如何(1)制定适当的任务公式和(2)相应地改变建模框架的额外复杂性。这些步骤在传统的查询公式中是不需要的。尽管存在这些差异,但查询重构研究中的一些方法仍然可以用于提示学习,例如将输入查询分解为多个子查询,类似于提示分解。
  • 基于QA的任务重组。基于QA的任务重构旨在将不同的NLP任务概念化为问答问题。参考文献[61,83]是早期的工作,试图将多个NLP任务统一到一个QA框架中。后来,这一想法在信息提取和文本分类中得到了进一步的探索。这些方法与这里介绍的提示方法非常相似,因为它们使用文本问题来指定要执行的任务。然而,提示方法的关键点之一是如何更好地使用预训练的LMs中的知识,而这些知识在之前倡导QA构建的工作中没有得到广泛的涵盖。除了基于QA的任务重新制定之外,还有一些工作将源任务重新制定为其他任务。例如,Opitz的argRanker方法将议论文关系分类概念化为两个由手动定义的短语连接的句子的排序问题。与PTR或AdaPrompt等工作不同,argRanker的新公式没有使用预训练的LM的整个架构(例如,BERT模型的单词预测层)。
  • 受控生成。受控生成旨在将输入文本之外的各种类型的指导纳入生成模型。具体而言,引导信号可以是样式标记、长度规范、域标签或用于控制生成的文本的任何各种其他信息。它也可以是关键词、关系三元组,甚至是突出显示的短语或句子来规划生成文本的内容。在某种程度上,这里描述的许多提示方法都是一种可控生成,其中提示通常用于指定任务本身。因此,相对容易找到这两种类型之间的共性:(1)两者都向输入文本添加了额外的信息,以更好地生成,并且这些额外的信号(通常)是可学习的参数。(2) 如果“受控生成”配备了基于seq2seq的预训练LM(例如,BART),则可以将其视为具有输入相关提示和提示+LM微调策略的提示学习(第6.2.5节),例如,GSum,其中可以调整提示和预训练LM的参数。
    此外,受控生成和基于提示的文本生成之间的一些明显差异如下:(1)在受控生成工作中,通常对生成的样式或内容进行控制,而底层任务保持不变。他们不一定需要经过预训练的LM。相反,使用提示生成文本的主要动机是指定任务本身,并更好地利用预先训练的LM。(2) 此外,目前关于文本生成中的提示学习的大多数工作都共享数据集或任务级提示。只有极少数的工作探索了依赖输入的。然而,这是一种常见的设置,在受控文本生成中是有效的,这可能为未来的提示学习工作提供有价值的方向。
  • 监督注意力。当从诸如长文本序列、图像或知识库之类的对象中提取有用信息时,知道关注重要信息是关键步骤。监督注意力旨在基于完全数据驱动的注意力可能过度拟合某些工件的事实,对模型的注意力提供明确的监督。在这方面,提示学习和监督注意力都有共同的想法,都旨在提取具有一些线索的显著信息,这些线索需要单独提供。为了解决这个问题,有监督的attention方法尝试使用额外的损失函数在手动标注的语料上学习预测正确的注意力。关于提示学习的研究也可以借鉴这篇文献的思想。
  • 数据增强。数据增强是一种旨在通过修改现有数据来增加可用于训练的数据量的技术。正如最近[114]所观察到的,添加提示在分类任务中可以获得与添加100个样本相当的准确性提高,这表明对下游任务使用提示类似于隐含地进行数据增强。

9 挑战

尽管基于提示的学习在不同的任务和场景中显示出了巨大的潜力,但仍存在一些挑战,我们将在下面详细介绍其中的一些挑战。

9.1 预训练LM的选择

有很多预训练的LMs可供选择(见附录),如何选择它们来更好地利用基于提示的学习是一个有趣而困难的问题。到目前为止,很少甚至没有系统地比较基于提示学习为不同的预训练的LMs带来的好处。

9.2 提示的设计

  • 分类和生成之外的任务。大多数现有的关于基于提示的学习的工作都围绕着文本分类或基于生成的任务展开。对信息提取和文本分析任务的应用讨论较少,主要是因为提示的设计不那么简单。我们预计,未来将提示方法应用于这些任务将需要重新制定这些任务,以便使用基于分类或文本生成的方法来解决这些问题,或者执行有效的提示答案工程,以适当的文本格式表达结构化输出。
  • 使用结构化信息提示。在许多NLP任务中,输入充满了各种各样的结构,如树、图、表或关系结构。如何在模板或答案工程中最好地表达这些结构是一个重大挑战。现有的工作通过制作带有额外标记的提示来对词汇信息进行编码,例如实体标记。Aghajanyan等人提出了基于超文本标记语言的结构化提示,用于更细粒度的web文本生成。然而,超越这一点,研究更复杂的各种结构在很大程度上是未经探索的,也是一个潜在的有趣研究领域。
  • 模板和答案的纠缠。模型的性能将取决于所使用的模板和所考虑的答案。如何同时搜索或学习模板和答案的最佳组合仍然是一个具有挑战性的问题。目前的工作通常在选择模板之前选择答案,但Hambardzumyan等人已经证明了同时学习两者的初步潜力。

9.3 提示回答工程

  • 许多类分类任务。当类太多时,如何选择合适的答案空间成为组合优化的难题。
  • 长答案分类任务。当使用多词元答案时,尽管已经提出了一些多词元解码方法,但如何使用LM对多词元进行最佳解码仍然未知。
  • 生成任务的多个答案。对于文本生成任务,限定答案可以在语义上等效,但在语法上不同。到目前为止,几乎所有的工作都使用提示学习来生成仅依赖于单个答案的文本,只有少数例外。如何更好地引导多参考文献的学习过程仍然是一个很大程度上悬而未决的研究问题。

9.4 调整策略的选择

如第6节所述,有多种方法可用于调整提示、LM或两者的参数。然而,考虑到这一研究领域的初级阶段,我们仍然缺乏对这些方法之间的权衡的系统了解。该领域可以受益于系统的探索,例如在关于这些不同策略之间的权衡的预训练和微调范式中进行的探索。

9.5 多提示学习

  • 提示集成。在提示集成方法中,随着我们考虑更多的提示,空间和时间的复杂性会增加。如何从不同的提示中提取知识仍然没有得到充分的探索。Schick和Schütze使用集成模型对大型数据集进行注释,以从多个提示中提取知识。
    此外,如何选择适合集成的提示也在探索之中。对于文本生成任务,目前还没有进行提示集成学习的研究,这可能是因为文本生成中的集成学习本身相对复杂。为了解决这个问题,最近提出的一些神经集成方法,如Refactor,可以被认为是文本生成任务中的一种提示集成方法。
  • 提示合成和分解。提示合成和分解都旨在通过引入多个子提示来分解复杂任务输入的难度。在实践中,如何在两者之间做出良好的选择是至关重要的一步。根据经验,对于那些词元或跨度预测任务(例如,NER),可以考虑提示分解,而对于那些跨度关系预测任务(例如实体共指),提示合成将是更好的选择。未来,分解与合成的思想可以在更多的场景中探索。
  • 提示增强。现有的提示增强方法受到输入长度的限制,即向输入提供过多的演示是不可行的。因此,如何选择信息丰富的演示,并按适当的顺序排列是一个有趣但具有挑战性的问题。
  • 提示共享。上述所有注意事项都涉及提示在单个任务、域或语言中的应用。我们也可以考虑提示共享,将提示学习应用于多个任务、领域或语言。可能出现的一些关键问题包括如何为不同的任务设计单独的提示,以及如何调节它们之间的交互。到目前为止,这一领域尚未得到探索。图3展示了针对多个任务的简单多提示学习策略,其中提示模板是部分共享的。

9.6 提示的理论与实证分析

尽管它们在许多场景中都取得了成功,但对基于提示学习的理论分析和保证却很少。Wei等人表明,软提示调整可以放松下游恢复所需的非退化假设(每个词元的生成概率都是线性无关的),使得提取任务特定信息更加容易。Saunshi等人验证了文本分类任务可以重新表述为句子填充任务,从而使语言建模成为一项有意义的预训练任务。Scao和Rush的经验表明,在分类任务中,提示的效果通常值得100个样本的数据量。

9.7 提示的可迁移性

了解提示在多大程度上是特定于模型的,并提高提示的可迁移性也是重要的主题。参考文献表明,在调整的小样本学习场景下选择的提示(其中有一个更大的验证集来选择提示)在相似大小的模型中很好地泛化,而在真正的小样本学习场景(其中只有几个训练样本)下选择的提醒在类似大小的模型之间没有前一个设置那样有效地泛化。当模型大小在两种情况下大不相同时,可迁移性较差。

9.8 不同范式的结合

值得注意的是,提示范式的大部分成功都建立在为预训练和微调范式(如BERT)开发的预训练LM之上。然而,对后者有效的预训练方法是否与前者一样适用,或者我们是否可以完全重新思考我们的预训练方式,以进一步提高基于提示的学习的准确性或适用性?这是一个重要的研究问题,文献中没有广泛涉及。

9.9 提示方法的校准

校准是指模型做出良好概率预测的能力。当使用预训练的LM(例如,BART)的生成概率来预测答案时,我们需要小心,因为概率分布通常没有得到很好的校准。Jiang等人观察到,预训练的LM(例如,BART、T5和GPT-2)在QA任务中的概率得到了很好的校准。Zhao等人指出了三个陷阱(大多数标签偏差、近因偏差和常见标记偏差),这三个陷阱导致预训练LM在提供回答提示时偏向某些答案。例如,如果最终回答的提示有一个积极标签,那么这将使模型倾向于预测积极单词。为了克服这些缺陷,Zhao等人首先使用上下文无关的输入(例如,提示将是“输入:子部分表演。情感:消极输入:美丽的电影。情感:积极输入:不适用。情感:”)来获得初始概率分布 P 0 P_0 P0​,然后他们使用真实的输入(例如,提示为“输入:表演。情绪:负面。输入:美丽的电影。情绪:正面。输入:惊人。情绪:”)来获得概率分布 P 1 P_1 P1​。最后,这两个分布可以用来获得校准的生成概率分布。然而,这种方法有两个缺点:(1)它带来了寻找合适的上下文无关输入的开销(例如,是使用“N/A”还是“None”);(2)底层预训练LM的概率分布仍然没有校准。
即使我们有一个校准过的概率分布,在假设一个输入只有一个正确答案时也需要小心。这是因为同一个对象的所有表面形式会争夺有限的概率质量。例如,如果我们认为正确答案是““Whirlpool bath”,那么它的生成概率通常会很低,因为“Bathtub”一词的含义相同,它将占据很大的概率。为了解决这个问题,我们可以(i)执行提示答案工程,使用转述方法构建一个综合的正确答案集(第4.2.2节),或者(ii)基于单词在上下文中的先验可能性来校准单词的概率。

10 结论

在这篇文章中,我们总结和分析了统计自然语言处理技术发展中的几种范式,并认为基于提示的学习是一种很有前途的新范式,可能代表着我们看待NLP的方式的另一个重大变化。首先,我们希望这项综述将帮助研究人员更有效、更全面地理解基于提示学习的范式,并抓住其核心挑战,从而在该领域取得更具科学意义的进展。此外,回顾第1节中对NLP研究的四个范式的总结,我们希望强调它们之间的共性和差异,使对这些范式中任何一个的研究更加全面,并可能为激励下一个范式转变的工作提供催化剂。

Pre-train, Prompt, and Predict A Systematic Survey of Prompting Methods in Natural Language Process相关推荐

  1. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Process

    摘要 这篇文章是对最近比较火的"prompt"的一个总结,一篇非常好的综述,做NLP方向建议都要读一读:) 本文将这种方法称之为"prompt-based learnin ...

  2. Re33:读论文 Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Languag

    诸神缄默不语-个人CSDN博文目录 论文名称:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in N ...

  3. prompt综述论文阅读:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural La

    prompt综述论文阅读:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Lan ...

  4. 文献阅读 ——— Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP

    文章名称 Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Pr ...

  5. 【论文笔记】Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in NLP

    摘要 Unlike traditional supervised learning, which trains a model to take in an input x and predict an ...

  6. Efficient Methods for Natural Language Processing: A Survey自然语言处理有效方法综述

    Efficient Methods for Natural Language Processing: A Survey 关于自然语言处理有效方法的一个综述,近来关于自然语言处理已经取得了非常显著的结果 ...

  7. [论文解读] Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey

    Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey 文章目录 Adversaria ...

  8. 【论文下饭】A Systematic Survey on Deep Generative Models for Graph Generation

    内容有省略,详细见原文.水平有限,有误请指出. A Systematic Survey on Deep Generative Models for Graph Generation 文章目录 1 介绍 ...

  9. 【NLP】Pre-train,Prompt,and Predict

    目录 一. NLP的两大巨变 二. Prompting的正式描述 2.1 NLP中基于监督的学习 2.2 Prompting的基础 2.3 Prompting设计的几个方面 三.预训练语言模型 3.1 ...

最新文章

  1. PHP性能调优---php-fpm - 启动参数及重要配置详解
  2. (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper
  3. __cdecl __stdcall区别-转
  4. 技术驱动还是产品驱动
  5. 求生之路 服务器优化参数,《求生之路2》服务器及网络参数优化指南
  6. OpenCV-Python实战(10)——详解 OpenCV 轮廓检测
  7. audio 小程序 放大_小程序之争:支付宝、百度“放大招”,春节欲打突围战
  8. asp.net(C#)时间相减 得到天数、小时、分钟、秒差
  9. html5中event获取data和class
  10. linux下安装与部署redis
  11. 汇编:call和jmp
  12. 杰里之混响音效调试【篇】
  13. docker阿里云镜像加速
  14. 极大极小搜索算法 minimax search
  15. sel在c语言,iOS 你所不知道的SEL
  16. 《计算机网络 自顶向下方法》读书笔记(三)
  17. 能否用计算机证明数学定理大全,那些教材中未给出证明的定理,到底能否使用?...
  18. 赋能 打造应对不确定性的敏捷团队 pdf_《创业书影音》本期推荐《赋能》
  19. IDEA系列:最新IntelliJ IDEA下载地址(社区版和专业版)
  20. 【不忘初心】Win10_LTSC2021_19044.1381_X64_可更新[纯净精简版][2.52G](2021.11.20)

热门文章

  1. 金融培训直播的优势有哪些?
  2. 光亮剂与增亮剂_新型增光增亮剂(配方)
  3. exports和module.exports的区别
  4. Javaweb项目:基于JavaWeb的图书管理系统(有源码)
  5. DB2重要概念(一)
  6. 原来使Maya Arnold也能渲染出高质量作品!超赞小技巧
  7. 室友用一盘王者荣耀就学会了多线程
  8. 【ESP32-C3 系列芯片 技术规格书学习笔记 (二、原理图)】
  9. 类似instagram图片分享社区数据库设计
  10. 如何在Google Earth Pro下载高清影像图