编者按:自GPT-3以来,大言语模型进入了新的练习范式,即“预练习模型+Promp learning”。在这一新的范式下,大言语模型呈现出惊人的zero-shot和few-shot能力,运用较少的练习数据来适应新的使命办法。最近火爆出圈的ChatGPT是运用这一办法。

简略了解Prompt learning,其中心就是以特定的模板,将下流使命的数据转成天然言语办法,充沛发掘预练习模型本身的能力,以适应不同的下流使命。

本期IDP Inspiration,咱们将和大家一同深化走进Prompt learning技能,了解其开展发展。

以下是译文,Enjoy!

作者 | Tianyu Gao, Princeton University

编译 | 岳扬

从BERT(Devlin et al., 2019)[1]开端,在下流运用上用task-specific heads对预练习言语模型(LMs)进行微调现已成为NLP的规范做法。然而,具有175B参数的GPT-3模型(Brown et al., 2020)[2]为下流运用带来了运用LMs的新办法:GPT-3运用天然言语提示词(prompt)和使命演示(task demonstrations)作为上下文(context),只运用少数的比如就能很好地处理各种使命,并且不需求更新底层模型中的参数。GPT-3的模型规划很大是其成功的一个重要因素,而 提示词(prompts) 和 演示(demonstrations)也给咱们供给了关于怎么更好地运用言语模型的新见解。

所以什么是提示词 (prompt)?

它是刺进到输入示例中的一段文字,能够将原始使命(original task)表述为言语模型问题 (language modeling problem)。例如,假如咱们要对下面这条电影谈论“不值得看(No reason to watch)”进行分类,咱们能够将prompt“It was”刺进到句子中,得到“No reason to watch. It was ____”。很天然的,言语模型发生“terrible(可怕)”的概率比“great(伟大)”的概率高。本文会介绍大型言语模型中prompt的最新发展。

在GPT-3发布后,呈现了许多与prompt有关的论文,其中许多论文都讨论了根据提示词的学习(prompt-based learning)用于中等规划的预练习模型,如BERT(BERT-base有110M参数,比最大的GPT-3小1000倍)。

在这篇博文中,我将概述最近的prompt-based办法和我的看法。

Why Prompts?

Prompt Learning: ChatGPT也在用的NLP新范式

以情感分类使命为例,对预练习、规范的微调和根据提示的微调进行了阐明(from Gao et al., 2021)

在传统的“预练习和微调(fine-tuning)”形式中,预练习阶段和下流使命之间存在巨大差距。

首先是方针不同。关于下流使命,通常需求引进新的参数,例如关于一个BERT大型模型和一个二元分类使命,需求额外的1,024 x 2个参数。

另一方面,经过运用prompt,下流使命有或许选用与预练习方针相同的格式(如上图所示),而不需求引进新的参数。关于分类使命,只需求规划一个模板(例如“It was”)和预期的文本(也称为标签词,例如图中的正面标签为“great”,负面标签为“terrible”)。缩小两个阶段之间的差距能够使在特定使命上布置预练习模型变得更加简略,特别是在只需少数新使命练习事例的状况下,有用地微调预练习模型和新使命的特定参数是很困难的。Scao和Rush(2021)[3]的研讨标明,一个prompt或许抵得上100个惯例数据点,这标明prompt能够带来采样功率的巨大提高。

在对prompt的研讨中,有两种不同的范式,它们有着不同的观念。受PET论文(Schick and Schtze,2021a,b)[4]的启发,根据prompt的微调(要害点是依然需求进一步优化参数)被以为是对小型言语模型(这里说的小型是指数百万而不是数十亿的参数,如BERT或RoBERTa)完成更好的小样本学习的途径;关于超大型模型,如175B参数的 GPT-3和11B参数的 T5(Raffel et al., 2020)[5],微调它们是困难的(这仅仅我的猜测,我从来没有机会这样做),并且本钱很高,因而以人们期望经过不同的prompt(无论是离散提示/discrete prompt)仍是软提示/soft)来固定它们的参数并将它们运用于不同的使命。

离散提示词Discrete prompts

运用prompt进行预练习模型的研讨最早能够追溯到GPT-1/2(Radford et al., 2018, 2019)[6]。这些研讨标明,经过规划适当的prompt,言语模型(LMs)能够在情感分类和阅览了解使命中完成和零样本学习相同的表现。

随后,Petroni等人(2019)[7];Davison等人(2019)[8];Jiang等人(2020)[9];Talmor等人(2020)[10]探究了怎么运用prompt从LMs中发掘现实和常识性常识(factual and commonsense knowledge)。

在GPT-3选用prompt和固定参数之后,根据prompt的办法被引进到较小的LMs中(Schick和Schtze,2021a,b[11];咱们的作业LM-BFF,Gao等人,2021[12])。

这些办法与GPT-3的不同之处在于,它们选用了双向掩码(bidirectional masked)LMs,而不是单向(unidirectional)LMs,并对完好的模型进行微调。最近的几篇论文也沿用了这一思路,调整了使命方针(Tam等人,2021[13])或以共同的办法拟定使命,如问题答复(Zhong等人,2021[14])或文本蕴涵(Wang等人,2021[15])。

在一切这些模型中,prompt都是天然言语,由离散的词汇符号组成。综合研讨不同变体的结果,Logan等人(2021)[16]标明,当选用根据prompt的微调办法(而不是冻住一切参数)时,模型能够获得比规范微调更好的功能(但好的提示依然会发生明显的差异)。而只调整部分模型参数——例如,选用最近提出的bias tuning method(Ben-Zaken等人,2021)在few-shot setting中与full model fine-tuning适当。

大多数作业都需求人工规划的prompt,提示工程是不简略的,由于一个小的扰动就会极大地影响模型的功能,而创建一个完美的prompt需求了解LMs的内部作业原理和不断试错。

除了人工规划的prompt,人们还能够自动生成或优化prompt。Guo等人在2021年展现了一种soft Q-learning办法,在生成prompt时作用很好。

AutoPrompt(Shin et al., 2020)[17]提议采纳根据梯度的查找(该主意来自Wallace et al., 2019[18],旨在查找一个通用的对抗性触发器,使模型发生特定的猜测),为特定使命找出最佳prompt。AutoPrompt的设置是不同的,由于它固定了模型:它假定一切的东西都被编码在预练习的模型中,咱们需求的仅仅”prompt”出来;另一个原因是,AutoPrompt的方针也是LAMA(LAnguage Model Analysis)(Petroni et al., 2019[19]),这是一种常识勘探使命,它被要求不触及模型参数。

下面是一个用于情感分类的AutoPrompt的比如:

Prompt Learning: ChatGPT也在用的NLP新范式

An illustration of AutoPrompt (Shin et al., 2020)

查找到的templates大大改善了LAMA的功能;它们在运用完好数据集的情感分类和天然言语推理使命中也取得了十分惊人的准确性(不过依然低于微调范本)。检查查找到的discrete(但不再是天然言语)prompt,能够找到对一些“trigger tokens“的解释,但许多仅仅特殊状况。

现在还不清楚,AutoPrompt 是否真的能协助LMs回忆起里面的 ”knowledge“,或许它仅仅优化的另一种办法,在预练习模型中从“彩票”中挑选出“中奖彩票”(关于彩票假说,见Frankle和Carbin,2019[20])。

软提示/接连提示Soft prompts

咱们真的需求在prompt中运用离散单词吗?

已然AutoPrompt现已做了根据梯度的提示查找,为什么不从discrete tokens转向接连的“soft prompts”?例如,Zhong等人(2021)[21]和Qin、Eisner(2021)[22]提出将 soft prompts用于常识勘探使命(LAMA等),并取得了比discrete prompts更大的提高。这个主意非常简略:仅仅在输入序列中放入一些随机向量(不与词汇中的特定词嵌入相联系),并对其进行调整,而预练习模型的其他部分则固定不变。

还有一些人是将soft prompts布置在常识勘探使命之外。Li和Liang(2021)[23]将这一主意扩展到了生成式使命(generation tasks),并标明它的功能提高与进行微调适当,可是只调整了0.1%的参数。Han等人(2021)[24]将soft prompts与manual templates结合起来,在联系抽取(联系抽取)方面取得了极佳的功能。

至今停止,我所看到的关于soft prompts最全面的研讨来自于Lester等人(2021)[25]:他们在T5上运用了soft prompts,并标明经过调整prompt(只占总参数的一小部分),T5能够在NLU(天然言语了解)使命中取得与微调整个模型相同的功能。我很喜欢这篇论文,由于它进行了充沛的ablation study(消融实验),并展现了soft prompts的几个要害的经验选择,包含从词嵌入初始化,满足数量的soft prompt tokens,以及一个aligned pre-training objective。除了参数功率,Lester等人(2021)[25]还证明了soft prompts供给了比全模型微调更好的可传递性。

让咱们回顾一下soft prompts:它的作用非常好,当你不能(勘探使命)或不愿(模型太大,或你希望有一个适用于一切使命的通用模型)接触模型的参数时,它特别有用。

调整soft prompts与根据prompt的微调有很大不同,后者答应人们优化完好的模型,更重要的是,比规范的微调更适合处理小样本事例。

与人工规划的不同,AutoPrompt在某些状况下不能很好地作业,据我所知,没有任何soft prompts论文以为一切状况下它都能取得极好的功能(尽管Liu等人(2021)[26]经过从discrete manual prompts开端,对整个模型进行微调,极端状况下也呈现了令人满意的结果)。

别的,正如Lester等人(2021)[25]所证明的,在运用超越100亿个参数的预练习模型之前,soft prompts从未在SuperGLUE上完成与全微调相同的功能。我以为未来值得研讨的是怎么进一步推动soft prompts在极端状况和较小的言语模型中更有用地作业。

Prompt Learning: ChatGPT也在用的NLP新范式

GPT-3 (blue) vs full model fine-tuning (orange) vs soft-prompt tuning (green). Credit to Lester et al. (2021).

上下文学习In-context learning:新型的元学习

在本文的最初,我把GPT-3的成功归功于两个模型规划:prompts 和demonstrations(或 in-context learning),但在这一节之前我还没有谈到in-context learning。由于GPT-3的参数没有在下流使命中进行微调,它必须以另一种办法——经过context(上下文) ”学习”新使命。

Prompt Learning: ChatGPT也在用的NLP新范式

GPT-3 “learns” about new tasks through demonstrations in the context (Brown et al., 2020).

如上图所示,GPT-3仅仅将一些随机练习样本与实际查询(本例中为 ”cheese⇒“)串联起来,由于预练习的模型现已学会了从上下文中捕捉patterns,并且Transformer的自注意力机制答应在这些实例中逐一进token比较,因而上下文中的学习作用出奇地好。GPT-3论文称其为”元学习meta-learning”,以为在阅览很多无监督的文本后,言语模型能够“练习出多样的技能和patterns识别能力“。

作者假定在预练习期间有时会有重复的子使命嵌入到一个序列中,类似于上下文学习(in-context learning)的范式。后续的作业进一步完善了运用demonstrations的办法。Gao et al., 2021[12]; Liu et al. (2021)[27] 说,与其随机抽取一些比如,不如采纳在与查询类似的语境中demonstrations,能够大幅提高功能;Lu et al. (2021) 标明,demonstrations的顺序也很重要,并提出了一种确认”最佳”顺序的办法。

尽管in-context learning只需在无法调整模型时才是必要的,并且当练习实例的数量增加时很难进行泛化(由于模型的输入长度是有限的),但研讨怎么更好地运用demonstrations(即怎么进一吸取LMs学到的”meta-knowledge”)以及哪些预练习方针和数据能够提高in-context能力,或许会进一步协助咱们了解预练习LMs的内部运行原理。

校准言语模型 Calibrating language models

Prompting对错常有用的,但它也或许会引进来自预练习语料的成见。例如,在零样本情感分类设置中,假如输入为“N/A”,GPT-3或许会过错地将其以为是“正面”而不是“负面”,而实际上这两个标签应该被分配持平的概率(Zhao等人,2021)[29]。

别的,同一个物体的不同词语描绘(如“computer”和“PC”)或许会互相竞争概率分配,导致使命标签散布不理想(Holtzman等人,2021)[30]。为了处理这些问题,Zhao等人(2021)[29]和Holtzman等人(2021)[30]提出了校准(Calibrating)的处理方案,即经过为有偏差的token添加补偿来纠正偏差,使其变得无偏差。

什么是正确的小样本设置(few-shot setting)?

关于小样本设置(few-shot setting)本身有许多讨论:在小数据集上进行微调会呈现不稳定的状况(Dodge et al., 2020[31]; Zhang et al., 2021[32]),不同的数据切割或许会对功能发生很大的影响。

曾经的作业中采纳了各种设置,但为了考虑到few-shot的巨大差异,需求对小样本数据的数据切割进行屡次采样和运用不同seeds进行屡次试验,以进行严厉的小样本评估(这就是咱们曾经作业中的做法)。

可是有一个常常被忽视的问题是,在只需几张照片的状况下,咱们不能假定一个大的development set。为了处理这个问题,Schick和Schtze(2021)[33]没有选用development set,而是选用固定的超参数(在这样一个充溢改变的环境中,这类似于“在黑暗中射击”,或许会发生不直观的结果),而在咱们的作业中,咱们对一个与练习集相同巨细的小样本development set进行采样,所以咱们能够在坚持小样本的同时调整超参数。

Perez等人(2021年)[34]以为,先前的作业高估了LMs的小样本功能,由于他们或多或少地采纳了许多已有的比如来进行超参数调整、模型开发或prompt规划,他们发起 “true few-shot learning” 设置。这与咱们的观念是共同的,即你只能假定小样本的dev事例。

然而,在现实国际中,咱们很难完成 ”真实的小样本学习“,由于你需求满足多的比如来验证你的模型至少在一个或两个使命上是有用的。只需规划的模型能够很好地泛化到其他的小样本使命,它就是一个好的小样本模型。在咱们的作业中,咱们用SST-2和SNLI进行实验,标明咱们的办法能够很好地推广到其他13种NLU使命。(关于这一部分技能创新感兴趣的小伙伴,能够重视ACL’21 paper, “Making Pre-trained Language Models Better Few-shot Learners”)。

参考资料

arxiv.org/abs/2105.11…

arxiv.org/abs/2005.14…

arxiv.org/abs/2103.08…

arxiv.org/abs/2001.07…

arxiv.org/abs/1910.10…

cdn.openai.com/research-co…

arxiv.org/abs/1909.01…

arxiv.org/abs/1909.00…

arxiv.org/abs/1911.12…

arxiv.org/abs/1912.13…

arxiv.org/abs/2001.07…

arxiv.org/abs/2012.15…

arxiv.org/abs/2103.11…

arxiv.org/abs/2104.04…

arxiv.org/abs/2104.14…

arxiv.org/pdf/1909.04…

arxiv.org/abs/2010.15…

arxiv.org/abs/1908.07…

arxiv.org/abs/1909.01…

arxiv.org/abs/1803.03…

arxiv.org/abs/2104.05…

arxiv.org/abs/2104.06…

arxiv.org/abs/2101.00…

arxiv.org/abs/2105.11…

arxiv.org/abs/2104.08…

arxiv.org/abs/2103.10…

arxiv.org/abs/2101.06…

arxiv.org/abs/2104.08…

arxiv.org/abs/2102.09…

arxiv.org/abs/2104.08…

arxiv.org/abs/2002.06…

arxiv.org/abs/2006.05…

arxiv.org/abs/2009.07…

arxiv.org/abs/2105.11…

本文经原作者授权,由Baihai IDP编译。如需转载译文,请联系获取授权。(原文链接:thegradient.pub/prompting/)

本文正在参加技能视角深化 ChatGPT 征文活动