0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

揭秘Prompt的前世今生

自然语言处理爱好者 来源:RUC AI Box 作者:闵映乾 2021-09-01 10:28 次阅读

作者|闵映乾机构|中国人民大学信息学院硕士方向 | 自然语言处理 来自 | RUC AI Box

导读:本文目标是对近期火爆异常的Prompt相关研究作一些追溯和展望,内容主要参考论文《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》,并掺杂了笔者的一些个人见解,欢迎大家积极讨论~

论文的arxiv链接如下:

https://arxiv.org/abs/2107.13586

一、Prompt的产生和兴起

近几年来,有关预训练语言模型(PLM)的研究比比皆是,自然语言处理(NLP)也借着这股春风获得了长足发展。尤其是在2017-2019年间,研究者们的重心逐渐从传统task-specific的有监督模式转移到预训练上。基于预训练语言模型的研究思路通常是“pre-train, fine-tune”,即将PLM应用到下游任务上,在预训练阶段和微调阶段根据下游任务设计训练对象并对PLM本体进行调整。

随着PLM体量的不断增大,对其进行fine-tune的硬件要求、数据需求和实际代价也在不断上涨。除此之外,丰富多样的下游任务也使得预训练和微调阶段的设计变得繁琐复杂,因此研究者们希望探索出更小巧轻量、更普适高效的方法,Prompt就是一个沿着此方向的尝试。

融入了Prompt的新模式大致可以归纳成”pre-train, prompt, and predict“,在该模式中,下游任务被重新调整成类似预训练任务的形式。例如,通常的预训练任务有Masked Language Model, 在文本情感分类任务中,对于 “I love this movie.” 这句输入,可以在后面加上prompt “The movie is ___” 这样的形式,然后让PLM用表示情感的答案填空如 “great”、“fantastic” 等等,最后再将该答案转化成情感分类的标签,这样以来,通过选取合适的prompt,我们可以控制模型预测输出,从而一个完全无监督训练的PLM可以被用来解决各种各样的下游任务。

因此,合适的prompt对于模型的效果至关重要。大量研究表明,prompt的微小差别,可能会造成效果的巨大差异。研究者们就如何设计prompt做出了各种各样的努力——自然语言背景知识的融合、自动生成prompt的搜索、不再拘泥于语言形式的prompt探索等等,笔者将会在第三节进行进一步讨论。

二、什么是Prompt

Prompt刚刚出现的时候,还没有被叫做Prompt,是研究者们为了下游任务设计出来的一种输入形式或模板,它能够帮助PLM“回忆”起自己在预训练时“学习”到的东西,因此后来慢慢地被叫做Prompt了。

对于输入的文本,有函数,将转化成prompt的形式,即:

该函数通常会进行两步操作:

使用一个模板,模板通常为一段自然语言,并且包含有两个空位置:用于填输入的位置和用于生成答案文本的位置。

把输入填到的位置。

还用前文提到的例子。在文本情感分类的任务中,假设输入是

“ I love this movie.”

使用的模板是

“ [X] Overall, it was a [Z] movie.”

那么得到的就应该是 “I love this movie. Overall it was a [Z] movie.”

在实际的研究中,prompts应该有空位置来填充答案,这个位置一般在句中或者句末。如果在句中,一般称这种prompt为cloze prompt;如果在句末,一般称这种prompt为prefix prompt。和的位置以及数量都可能对结果造成影响,因此可以根据需要灵活调整。

另外,上面的例子中prompts都是有意义的自然语言,但实际上其形式并不一定要拘泥于自然语言。现有相关研究使用虚拟单词甚至直接使用向量作为prompt,笔者将会在第三节讲到。

下一步会进行答案搜索,顾名思义就是LM寻找填在处可以使得分数最高的文本 。最后是答案映射。有时LM填充的文本并非任务需要的最终形式,因此要将此文本映射到最终的输出。例如,在文本情感分类任务中,“excellent”, “great”, “wonderful” 等词都对应一个种类 “++”,这时需要将词语映射到标签再输出。

三、Prompt的设计

Prompt大致可以从下面三个角度进行设计:

Prompt的形状

手工设计模板

自动学习模板

Prompt的形状

Prompt的形状主要指的是和的位置和数量。上文提到过cloze prompt和prefix prompt的区别,在实际应用过程中选择哪一种主要取决于任务的形式和模型的类别。cloze prompts和Masked Language Model的训练方式非常类似,因此对于使用MLM的任务来说cloze prompts更加合适;对于生成任务来说,或者使用自回归LM解决的任务,prefix prompts就会更加合适;Full text reconstruction models较为通用,因此两种prompt均适用。另外,对于文本对的分类,prompt模板通常要给输入预留两个空,和。

手工设计模板

Prompt最开始就是从手工设计模板开始的。手工设计一般基于人类的自然语言知识,力求得到语义流畅且高效的模板。例如,Petroni等人在著名的LAMA数据集中为知识探针任务手工设计了cloze templates;Brown等人为问答、翻译和探针等任务设计了prefix templates。手工设计模板的好处是较为直观,但缺点是需要很多实验、经验以及语言专业知识,代价较大。

自动学习模板

为了解决手工设计模板的缺点,许多研究开始探究如何自动学习到合适的模板。自动学习的模板又可以分为离散(Discrete Prompts)和连续(Continuous Prompts)两大类。离散的主要包括 Prompt Mining, Prompt Paraphrasing, Gradient-based Search, Prompt Generation 和 Prompt Scoring;连续的则主要包括Prefix Tuning, Tuning Initialized with Discrete Prompts 和 Hard-Soft Prompt Hybrid Tuning。

离散Prompts

自动生成离散Prompts指的是自动生成由自然语言的词组成的Prompt,因此其搜索空间是离散的。目前大致可以分成下面几个方法:

Prompt Mining. 该方法需要一个大的文本库支持,例如Wikipedia。给定输入和输出,要找到和之间的中间词或者依赖路径,然后选取出现频繁的中间词或依赖路径作为模板,即“[X] middle words [Z]”。

Prompt Paraphrasing. Paraphrasing-based方法是基于释义的,主要采用现有的种子prompts(例如手动构造),并将其转述成一组其他候选prompts,然后选择一个在目标任务上达到最好效果的。一般的做法有:将提示符翻译成另一种语言,然后再翻译回来;使用同义或近义短语来替换等。

Gradient-based Search. 梯度下降搜索的方法是在单词候选集里选择词并组合成prompt,利用梯度下降的方式不断尝试组合,从而达到让PLM生成需要的词的目的。

Prompt Generation. 既然Prompt也是一段文本,那是否可以用文本生成的方式来生成Prompt呢?该类方法就是将标准的自然语言生成的模型用于生成prompts了。例如,Gao等人将T5引入了模板搜索的过程,让T5生成模板词;Ben-David 等人提出了一种域自适应算法,训练T5为每个输入生成一种唯一的域相关特征,然后把输入和特征连接起来组成模板再用到下游任务中。

Prompt Scoring. Davison等人在研究知识图谱补全任务的时候为三元组输入(头实体,关系,尾实体)设计了一种模板。首先人工制造一组模板候选,然后把相应的[X]和[Z]都填上成为prompts,并使用一个双向LM给这些prompts打分,最后选取其中的高分prompt。

连续Prompts

既然构造Prompt的初衷是能够找到一个合适的方法,让PLM更“听话”地得出我们想要的结果,那就不必把prompt的形式拘泥于人类可以理解的自然语言了,只要机器可以理解就好了。因此,还有一些方法探索连续型prompts——直接作用到模型的embedding空间。连续型prompts去掉了两个约束条件:

模板中词语的embedding可以是整个自然语言的embedding,不再只是有限的一些embedding。

模板的参数不再直接取PLM的参数,而是有自己独立的参数,可以通过下游任务的训练数据进行调整。

目前的连续prompts方法大致可以分为下面几种:

Prefix Tuning. Prefix Tuning最开始由Li等人提出,是一种在输入前添加一串连续的向量的方法,该方法保持PLM的参数不动,仅训练合适的前缀(prefix)。它的形式化定义是,在给定一个可训练的前缀矩阵和一个固定的参数化为的PLM的对数似然目标上进行优化。

141c316e-fd9a-11eb-9bcf-12bb97331649.png

其中

146d48ba-fd9a-11eb-9bcf-12bb97331649.png

指的是所有神经网络层在第i个时间步的连接。如果对应的时间步在前缀中,则它可以直接从前缀矩阵中复制过来;否则需要使用PLM进行计算。

类似地,Lester等人在输入序列前面加上特殊的token来组成一个模板,然后直接调整这些token的embedding。 和上面的Prefix Tuning的方法相比,他们的方法相对来说参数较少,因为没有在每一层网络中引入额外的参数。

Tuing Initialized with Discrete Prompts. 这类方法中连续prompts是用已有的prompts初始化的,已有的prompts可以是手工设计的,也可以是之前搜索发现的离散prompts。Zhong 等人先用一个离散prompt搜索方法定义了一个模板,然后基于该模板初始化虚拟的token,最后微调这些token的embedding以提高准确率。

Hard-Soft Prompt Hybrid Tuning. 这类方法可以说是手工设计和自动学习的结合,它通常不单纯使用可学习的prompt模板,而是在手工设计的模板中插入一些可学习的embedding。Liu等人提出了“P-Tuning”方法,通过在input embedding中插入可训练的变量来学习连续的prompts。

并且,该方法使用BiLSTM的输出来表示prompt embeddings,以便让prompt tokens之间有一定的交互。P-tuning还引入了任务相关的anchor tokens(例如关系提取中的“capital”)来进一步提高效果,这些anchor tokens不参与后续的调优。

Han等人提出了Prompt Tunning with Rules(PTR)方法,使用手工指定的子模板按照逻辑规则组装成完整的模板。为了增强生成的模板的表示能力,该方法还插入了几个虚拟token,这些虚拟token的embeddings可以和PLM的参数一起被调整,PTR的模板token既有实际token也有虚拟token 。实验结果证明了该方法在关系分类任务中的有效性。

四、Prompt的挑战与展望

尽管Prompt相关研究搞得如火如荼,但目前仍存在许多问题,值得研究者们去探索。

Prompt的设计问题。目前使用Prompt的工作大多集中育分类任务和生成任务,其它任务则较少,因为如何有效地将预训练任务和prompt联系起来还是一个值得探讨的问题。另外,模板和答案的联系也函待解决。模型的表现同时依赖于使用的模板和答案的转化,如何同时搜索或者学习出两者联合的最好效果仍然很具挑战性。

Prompt的理论分析和可解释性。尽管Prompt方法在很多情况下都取得了成功,但是目前prompt-based learning的理论分析和保证还很少,使得人们很难了解Prompt为什么能达到好的效果,又为什么在自然语言中意义相近的Prompt有时效果却相差很大。

Prompt在PLM debias方面的应用。由于PLM在预训练过程中见过了大量的人类世界的自然语言,所以很自然地受到了影响。拿一个简单的例子来说,可能不太恰当,比如说训练语料中有很多的“The capital of China is ”Beijing.“,导致模型认为下次看到”capital“ 的时候都会预测出”Beijing“,而不是着重看到底是哪个国家的首都。

在应用的过程中,Prompt还暴露了PLM学习到的很多其它bias,比如种族歧视、恐怖主义、性别对立等等。已有相关研究关注是否可以利用Prompt来对这些bias进行修正,但还处在比较初级的阶段,这也会是一个值得研究的方向。

五、引用

[1] Liu P, Yuan W, Fu J, et al. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing[J]。 arXiv preprint arXiv:2107.13586, 2021.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PLM
    PLM
    +关注

    关注

    2

    文章

    85

    浏览量

    20722
  • nlp
    nlp
    +关注

    关注

    1

    文章

    463

    浏览量

    21821
  • prompt
    +关注

    关注

    0

    文章

    12

    浏览量

    2635

原文标题:NLP新宠——浅谈Prompt的前世今生

文章出处:【微信号:NLP_lover,微信公众号:自然语言处理爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何从训练集中生成候选prompt 三种生成候选prompt的方式

    这个“gradient”怎么得到的了呢,这是个啥玩意,怎么还有梯度?注意,注意。人家是带引号的!比喻成梯度。这玩意有什么用呢。 文章指出给定一批error samples(当前prompt无法
    的头像 发表于 01-12 11:29 360次阅读
    如何从训练集中生成候选<b class='flag-5'>prompt</b> 三种生成候选<b class='flag-5'>prompt</b>的方式

    二极管的前世今生

    二极管的前世今生
    的头像 发表于 12-14 18:35 580次阅读
    二极管的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    情感语音识别的前世今生

    的支持。本文将探讨情感语音识别的前世今生,包括其发展历程、应用场景、面临的挑战以及未来发展趋势。 二、情感语音识别的发展历程 起步阶段:早期的情感语音识别技术主要依赖于声谱分析、特征提取等传统信号处理方法,但这
    的头像 发表于 11-12 17:33 338次阅读

    基石数据:TOC理论物理学浅析—MES的前世今生(十一)

    MES的前世今生前面的文章大体介绍了TOC下的低结存,计划统一性原则,列队生产,日结日清,品质问题碎片化等,有很多朋友问是否基石公司不再做数字化,而做流程梳理,非也!其实所有不同的制造业生产方式都有
    的头像 发表于 11-09 10:39 206次阅读
    基石数据:TOC理论物理学浅析—MES的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>(十一)

    带你探索吹风筒的前世今生【其利天下高速风筒方案开发】 

    电吹风作为如今生活中不可或缺的小家电之一,这个看似简单的设备,已经走过了漫长的发展历程,从它的前世今生,经历了许多变革和创新,本文将带您穿越时间,探索其前世
    的头像 发表于 11-02 16:15 914次阅读
    带你探索吹风筒的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>【其利天下高速风筒方案开发】 

    鸿蒙操作系统的前世今生

    01、 鸿蒙操作系统发展沿革 鸿蒙这个名字意为“万物起源”,同时也寓意国产操作系统的开端。鸿蒙操作系统迭代至今,已经有好几个版本,笔者将它的迭代顺序整理成时间轴,帮助大家梳理鸿蒙操作系统的发展沿革。如图1所示。 2012年,华为总裁任正非表示:“华为做终端操作系统是出于战略的考虑。”鸿蒙操作系统的概念首次出现在大众的视野。 2016年5月,鸿蒙正式在华为公司的软件部内部立项并开始投入研发,吹响了研发鸿蒙操作系统的号角。 2019年8月9号,华为正式发布了HarmonyOS 1.0,该系统率先部署在智慧屏上。2019年8月10日,(原)荣耀正式发布荣耀智慧屏、荣耀智慧屏Pro,搭载鸿蒙操作系统。华为消费者业务CEO余承东在发布会上宣布鸿蒙将进行开源。 2020年9月10日,华为发布HarmonyOS 2.0。相较于HarmonyOS 1.0,此版本主要在3个方面做出重大提升:分布式的软总线、分布式的数据管理及分布式的安全,这三点将HarmonyOS的分布式能力提升到了另一个层次, 此版本可用于大屏、手表和车机。 2020年12月,华为发布面向开发者提供了手机版本HarmonyOS 2.0的Beta版本,开发者可以访问华为开发者联盟官网 ,申请获取 HarmonyOS 2.0 手机开发者 Beta 版升级 。 2021年6月2号,华为发布可以覆盖手机等移动终端的HarmonyOS 2.0。 当时发布的系统不仅限于开发者申请升级,凡是符合条件的机型都可以尝鲜鸿蒙。可以升级该系统的设备共包含了26部华为手机、14部Honor(荣耀)手机、3部华为手表和3台平板计算机,还包括当时尚未发布的Honor V40、Huawei nova 8和Huawei nova 8 Pro三款机型。如图2所示。 ■ 图2HarmonyOS 2.0部分适配机型 至此,正式面向市场的覆盖手机等移动终端的鸿蒙操作系统就正式诞生了! 02、HarmonyOS 2.0和OpenHarmony 2.0的关系 在介绍HarmonyOS 2.0和OpenHarmony 2.0的关系之前,首先要介绍一个功不可没的组织——开放原子开源基金会。 该基金会成立于2020年6月15日,是由工信部牵头在民政部注册的非盈利性民间组织机构,也是国内首个开源软件基金会,如图3所示。 华为于2020年9月10号将HarmonyOS 2.0源码捐赠给开放原子开源基金会孵化,得到OpenHarmonyOS 1.0并开放下载。 2020年12月22号,OpenHarmony全场景分布式终端操作系统(以下简称OpenHarmony)项目群正式成立,该项目群是由中国科学院软件所、华为终端公司、京东集团等7家单位组成,共同规划OpenHarmony的持续发展。 2021年6月2日发布会上,开放原子开源基金会将孵化的OpenHarmony 2.0 全量开源发布。 ■ 图3OpenHarmony操作系统的发展沿革 至此,HarmonyOS和OpenHarmonyOS 的关系便一目了然。 如图4所示,HarmonyOS实际上分为3个部分,OpenHarmonyOS、包括HMS在内的闭源应用与服务,以及其他开放源代码。 其中OpenHarmonyOS 是鸿蒙操作系统中开源的部分,类似于安卓系统中的AOSP项目,该项目目前由开放原子开源基金会负责社区化的开源运营,而HarmonyOS是基于OpenHarmonyOS 的商用发行版。 ■ 图4 鸿蒙操作系统示意图 03、鸿蒙操作系统的前景 鸿蒙操作系统是一款“面向未来”的操作系统,它创造性地提出了“一次开发,多端部署”的分布式理念,具有以下几个显著优势: 分布式软总线:提供了统一的分布式通信能力,能够快速发现并连接设备,高效地传输任务和数据。 分布式数据管理:应用跨设备运行时数据无缝衔接,让跨设备数据处理如同本地一样便捷。 分布式任务调度:能够选择最合适的设备运行分布式任务,并实现多设备间的能力互助。 分布式设备虚拟化:匹配并选择能力最佳的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。 一次开发,多端部署:使用统一的IDE进行多设备的应用开发,通过模块化耦合对应不同设备间的弹性部署。 统一OS,弹性部署:为各种硬件开发提供全栈的软件解决方案,并保持了上层接口和分布式能力的统一。 借助以上优势, 鸿蒙操作系统可实现不同终端设备之间的极速连接、硬件互助和资源共享,为不同的群体带来升级体验: 对消费者而言, 鸿蒙操作系统能够将生活场景中的各类终端进行能力整合,可以实现不同终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验。 对应用开发者而言, 鸿蒙操作系统采用了多种分布式技术,使应用程序的开发实现与不同终端设备的形态差异无关。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。 对设备开发者而言, 鸿蒙操作系统采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。 因为以上这些不可替代的优势,鸿蒙操作系统正在逐步壮大,已经成为众多企业和群众关注的热点,希望鸿蒙操作系统在未来可以给大家带来更多的惊喜!
    发表于 10-08 19:55

    LPC800的前世今生揭秘

    1 前言 在此之前,NXP已经推出了基于Cortex-M0内核的LPC1100(2009年),代号“吸血鱼”(亚马逊河中的一种小鱼,据称能进入在河中洗澡的人体内),意为小而极具攻击性。 LPC800的开发代号“哪吒”,意为小而勇敢。为什么要在LPC1100推出3年之后,又推出LPC800系列?“哪吒”的背后,有什么鲜为人知的故事? 2 LPC800哪吒的诞生 “哪吒”项目的策划始于2009年初,LPC1100刚刚发布不久,LPC团队就提出了一个大胆的想法:能否让32位MCU跟8位单片机一样简单易用?很快,
    的头像 发表于 09-07 08:50 415次阅读

    prompt在AI中的翻译是什么意思?

    prompt在AI中的翻译是什么意思? Prompt在AI中是指给出指示或提示,用于引导AI系统执行下一步任务或采取下一步行动。在AI中经常用到prompt技术,因为它可以使AI系统更灵活、更高
    的头像 发表于 08-22 15:59 2045次阅读

    点亮乡村孩子科学梦 走进vivo实验室探访手机生产“前世今生

    和8位乡村教师,帮助乡村儿童打开视野,赋能乡村美育。作为“vivo童画未来夏令营”项目中一个重要环节,在7月27日下午,孩子们来到了vivo全球总部,实地探访vivo手机实验室,了解手机生产的“前世今生”,激发创造力和想象力,感受科技创新带来的无限可能。 变身
    的头像 发表于 07-28 11:20 317次阅读

    电流传感的前世今生

    感应电流的任务现有的电流传感方法及其优势和挑战:•分流电阻•电流感应变压器•采用霍尔•AMR提出的新方法-综合“GaNSense”优化感知的影响以及下一步的发展方向
    发表于 06-16 12:04

    CATIA软件的前世今生

    CATIA软件时达索公司的产品,源于60年代的航天行业,源于理论计算流体力学和应力分析以及对成型零件进行数控加工等关键需求的出现,由此,电脑和图形终端应运而生。
    的头像 发表于 06-08 17:09 978次阅读
    CATIA软件的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    Chiplet架构的前世今生

       今天,最先进的大算力芯片研发,正展现出一种拼搭积木式的“角逐”。谁的“拆解”和“拼搭”方案技高一筹,谁就更有机会在市场上赢得一席之地。随着chiplet概念的不断发酵,chiplet架构和异构计算也逐渐从头部大厂偶尔为之的惊鸿一现,演变为高性能芯片的新常态。 与此同时,一场席卷全球的AIGC竞赛,加剧了高性能芯片的需求。面对昂贵且一票难求的高性能赛道,新入局者不得不寻求更经济和更快速的方式,从而反哺了chiplet生态。 接口:C
    的头像 发表于 05-26 11:52 1446次阅读
    Chiplet架构的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    【技术分享】蓝牙技术的前世今生

    蓝牙是一种支持设备短距离通信的低功耗、低成本无线电技术。它利用短程无线链路取代专用电缆,便于人们在室内或户外流动操作。那么这种技术为什么叫蓝牙?又历经了怎样的发展?本文将带你了解蓝牙技术的前世今生
    的头像 发表于 05-12 10:20 585次阅读
    【技术分享】蓝牙技术的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    一文看尽SLAM创新点的前世今生

    很多同学都觉得Slam方向难以入门,也难以学深。但其实相对来讲,不像其他很多方向,很多的东西大家都已经做了,并且做的很不错,要想发论文或者找创意突破比较吃力。slam方向还有很多深层次的多领域结合应用的内容还比较少,并且slam更深的内容还有很多东西需要做。
    的头像 发表于 05-09 14:25 681次阅读
    一文看尽SLAM创新点的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    蓝牙技术的前世今生

    蓝牙是一种支持设备短距离通信的低功耗、低成本无线电技术。它利用短程无线链路取代专用电缆,便于人们在室内或户外流动操作。那么这种技术为什么叫蓝牙?又历经了怎样的发展?本文将带你了解蓝牙技术的前世今生
    的头像 发表于 05-09 09:46 1721次阅读
    蓝牙技术的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>