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

编者按:自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?

以情感分类任务为例,对预训练、标准的微调和基于提示的微调进行了说明(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 Schütze,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和Schütze,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的例子:

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在极端情况和较小的语言模型中更有效地工作。

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(上下文) ”学习”新任务。

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和Schütze(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")。

参考资料

https://arxiv.org/abs/2105.11447

https://arxiv.org/abs/2005.14165

https://arxiv.org/abs/2103.08493

https://arxiv.org/abs/2001.07676

https://arxiv.org/abs/1910.10683

https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

https://arxiv.org/abs/1909.01066

https://arxiv.org/abs/1909.00505

https://arxiv.org/abs/1911.12543

https://arxiv.org/abs/1912.13283

https://arxiv.org/abs/2001.07676

https://arxiv.org/abs/2012.15723

https://arxiv.org/abs/2103.11955

https://arxiv.org/abs/2104.04670

https://arxiv.org/abs/2104.14690

https://arxiv.org/pdf/1909.04164.pdf

https://arxiv.org/abs/2010.15980

https://arxiv.org/abs/1908.07125

https://arxiv.org/abs/1909.01066

https://arxiv.org/abs/1803.03635

https://arxiv.org/abs/2104.05240

https://arxiv.org/abs/2104.06599

https://arxiv.org/abs/2101.00190

https://arxiv.org/abs/2105.11259

https://arxiv.org/abs/2104.08691

https://arxiv.org/abs/2103.10385

https://arxiv.org/abs/2101.06804

https://arxiv.org/abs/2104.08786

https://arxiv.org/abs/2102.09690

https://arxiv.org/abs/2104.08315

https://arxiv.org/abs/2002.06305

https://arxiv.org/abs/2006.05987

https://arxiv.org/abs/2009.07118

https://arxiv.org/abs/2105.11447

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15202.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《花雕学AI》新版必应 Bing 登场:轻松注册,一站式搜索、聊天与绘画应有尽有

引言: 你是否曾经在网上搜索信息时感到困惑或沮丧?你是否曾经想要在网上创造一些有趣或有用的内容,却不知道从何开始?你是否曾经想要用文字描述一个图像,却无法找到合适的图片?如果你的答案是肯定的&#x…

如何利用ChatPDF快速阅读英文论文,帮你写作业

英语渣狂喜~确实惊艳到我了! 大家好,我是老表 使用平台:https://www.chatpdf.com/ 1、上传PDF 访问官网:https://www.chatpdf.com/,界面很美,点击直接上传 PDF, 需要注意免费版本PDF…

GPT4All: 一个基于大规模数据训练的聊天机器人模型

微信改版,求求大家星标下公众号, 不然后面推送大家可能会看不到 大家好,我是老表,今天给大家分享的是一个开源项目:GPT4All 随着人工智能技术的不断发展,聊天机器人已经成为了一个备受关注的研究领域。在这…

ChatGPT提问的万能公式,强烈建议收藏!泰裤辣!

在实际使用GPT的时候,并不是GPT不够强大,而是我们需要很多时间去调教AI,以便输出我们期望的答案,为了让输出无限的靠近你的期望,就需要下面这个万能的框架,如果大家记不住这个框架或者没有形成习惯&#xf…

老黄因ChatGPT大赚311亿/ 中国移动公布实名NFT交易专利/C919首航航班确定...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大噶好~今天是兔年首个要上班的周一。 不知各位打工人从假期中缓过来了嘛?(虽然可能已经上了两天班) 日报君在此祝大家新的一年里工作顺利,并在此奉上今日份科技趣闻(为您精…

吴恩达给ChatGPT泼冷水/ 罗永浩谈欠薪/ 谷歌元老离职... 今日更多新鲜事在此

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大噶吼~今天是2月17日星期五。 又到一周工作日的尾巴了,各位想好周末怎么欢度了嘛? 在出去嗨皮/回家睡觉之前,不妨来和日报君看一看科技趣闻——讲真,挺有趣的。 OpenAI计划纠正ChatGPT…

银行数字化转型导师坚鹏:ChatGPT解密与银行应用案例

ChatGPT解密与银行应用案例 ——开启人类AI新纪元 打造数字化转型新利器 课程背景: 很多企业和员工存在以下问题: 不清楚ChatGPT对我们有什么影响? 不知道ChatGPT的发展现状及作用? 不知道ChatGPT的银行业应用案例&#…

关于大模型实践的一些总结

随着ChatGPT的迅速出圈,加速了大模型时代的变革。对于以Transformer、MOE结构为代表的大模型来说,传统的单机单卡训练模式肯定不能满足上千(万)亿级参数的模型训练,这时候我们就需要解决内存墙和通信墙等一系列问题&am…

OpenAI 遭遇离职潮:员工对 ChatGPT 进展缓慢失望,痛批 CEO 不务正业

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年6月份全网热门报告合集 普通人如何利用ChatGPT变现赚钱? 无需翻墙,无需注册,ChatGPT4直接使用 ChatGPT提词手册,学完工…

近期AI成为热点话题, ChatGPT, GPT4, new bing, Bard,AI 绘画, AI 编程工具引发大量讨论。请结合自身学习经历,一起来聊聊你对 AI 技术以及其今后发展的看

1,你人生中第一次接触到“人工智能”的概念和产品是什么?什么让你觉得“人类做的东西的确有智能”? 天猫精灵/小度智能语音音箱。科技越来越发达,一些年龄大的老人并不能够跟上时代的步伐。平时爸妈要上班,我和弟弟要上…

​从底层技术分析如何调教你的ChatGPT?

相信很多人都已经在使用类ChatGPT的工具进行工作或者娱乐了,这里说的类ChatGPT的是指和ChatGPT相同或者相似功能的产品,包括国外的开源平替模型、百度的文心一言等,但是你真的会使用这些工具和应用吗?你使用的方法是正确的吗&…

从ChatGPT的成功看中美创新模式的差异

我在大约三个月前撰写了文章《三分钟读懂新一代人工智能——ChatGPT》,当时ChatGPT的用户刚刚突破一百万,相对来说还较为小众,在资本市场还没有引起关注和追捧。三个月后,这个产品开始进入大众视野,按照瑞银的统计,月活跃用户数已经突破了一亿。如果有投资者在三个月前开…

奥特曼系列ol2020服务器,奥特曼系列ol2020

奥特曼系列ol2020比较好玩的一个系列,游戏玩法里面还原了真实的奥特曼场景带给你回忆感,奥特曼系列ol2020游戏众多人物角色可以选择,跟随着剧情进行体验,奥特曼系列ol2020喜欢的可以下载。 奥特曼系列ol2020游戏特色 1、每一个奥特…

基于Pyramid Vision Transformer(PVT-v2)实现奥特曼识别

前言 大家好,我是阿光。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPy…

奥特曼打小怪兽python代码简单版_奥特曼打小怪兽

from random import randint # 导入randint函数 class Monster(object): def __init__(self, name, energy): self.name name self.energy energy if self.energy > 100: print(self.name "满血战斗") else: print(self.name "目前有" str(self.en…

奥特曼html代码,和平精英捏脸代码奥特曼

和平精英自从更新的新的捏脸玩法之外,玩家们就发明出来了各种各样的脸型,除了明星、小丑之外,还有大家喜爱的奥特曼!最近万几门被奥特曼的信息疯狂洗脑,还去重新看了一遍奥特曼,回忆自己的童年,…

《李宏毅深度学习笔记》开源了!AI界最热视频老师!新增ChatGPT内容

Datawhale开源 开源项目:LeeDL-Tutorial,作者:杨毅远 导读 大家都对于李宏毅老师已经很熟悉了,他用幽默风趣的语言带领大家入门深度学习,旨在向学习者介绍深度学习的基本概念、方法和实践技巧。更可贵的是&#xff0c…

博士的尽头是教职?传奇大神何恺明被曝回归学界

梦晨 Alex 发自 凹非寺量子位 | 公众号 QbitAI AI大牛何恺明有了最新动向,而且是回归学术界。 MIT CSAIL实验室发布公告,3月13日下周一,何恺明将到MIT做学术演讲。 此事引起AI圈广泛关注。在相关知乎问题下,MIT博士Charles指出&am…

武职302303笔记-day01

这里写自定义目录标题 开发永和小票开发步骤1、对页面进行需求分析 使用CSS的方式 Order.html问题:html代码和css样式代码交织 idea开发后端程序使用chatGPT给我们打工QRCreate.java 开发永和小票 开发步骤 1、对页面进行需求分析 页面是很多文字组成,…

AI大牛周明发布MChat:生成可控,参数规模可负担,顺便官宣了新融资

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 大模型赛道又有融资新动态: 语言大模型玩家澜舟科技,刚刚完成了Pre-A轮融资。 本轮融资由北京中关村科学城公司领投,斯道资本和创新工场跟投。这是澜舟科技1年内收获的第2轮融资,2轮累计总…