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

本文系统性地探讨了自然语言处理(NLP)领域的Prompt Learning,从NLP范式的演变历史到Prompt Learning的步骤,包括Pre-train、Prompt、Predict。文章详细阐述了Prompt Learning的数学化定义、不同类型和方法,如Cloze Prompt、Prefix Prompt,以及Prompt Engineering、Answer Engineering等。此外,还介绍了Prompt Learning在文本分类、问答、自然语言推理等任务的应用,展示了其在解决少量或无标注数据问题上的潜力。
摘要由CSDN通过智能技术生成

文章名称

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

文章动机

首先,这篇文章的编写的动机是为了总结NLP的第四范式Prompt Learning。说实话,在本人读完之后感觉这个范式确实挺厉害的。

文章框架

本篇文章的书写框架是,首先着重讲述了NLP研究领域所使用的范式的发展史,首先是从特征工程架构工程目标工程再到现在的新时代提示工程

并且在这个过程中重点讲述了这些工程的具体方法,以及过度的目的还有优缺点。

紧接着,文中回归重点。讲述有关于Prompt Learning的具体步骤。首先我们先看这个Prompt方法的处理范式——Pre-train、prompt、predict。因此,文中
  1. 首先讲的就是PLM,
  2. 然后是谈到Prompt engineering,
  3. 接着是Answer engineering,
  4. 然后是Muti-Prompt Engineering——就是对于原来的单个prompt的方法进行拓展形成一种能力更加强大的prompt方法,
  5. 最后是讲到如何对进行训练Tuning。
以上就是本文中对于Prompt方法的总结用法,然后后面就是Prompt方法具体对Text classification以及QA、NLI这些不同的任务上面的应用。

NLP范式的发展流程

首先需要讲的就是在AI的发展初期,都是ML模型作为主导,这个时候的NLP范式就是所谓的第一范式——“特征工程”。
  1. 这种范式的处理重点在于使用一些传统的ML模型,然后使用一些具备先验知识的领域专家来进行人工提取我们解决相应NLP任务所需要的特征。
  2. 同时,这种方法最具代表性的一点——他是监督式学习的一种,因而这种方法需要大量的已标注的数据,这就要求我们在使用这种范式来处理NLP任务的时候,我们首先要耗费大量的人力物力来去标注数据,然后还要让领域专家来标注特征,从而我们可以实现降维操作。
  3. 由于这种方法需要大量的已标注数据,同时对于特征的提取方式是人工来进行的,而并不是机器自动处理的,所以这种范式的处理效率并不是很高。
  4. 这种范式由于需要人工去提取数据特征,因此专注于特征提取方面的任务,因此成为“特征工程”。
接着,AI领域的发展随着neural network的发展,从而使得NLP领域迎来了它的第二范式——“架构工程”。
  1. 这种方法首先需要先提出来的是,这种第二范式还是一种基于全监督方式的NLP范式。就是仍然是需要大量的标注数据来学习模型的参数。
  2. 但是,相比于第一代范式中的人工提取数据特征,这种方法进行了改进,这种方式使用“神经网络”来自动提取数据特征,明显效果相比于第一范式高效的多。
  3. 这种范式还是没有解决需要基于大量的已标注数据进行训练的方式。但是这种范式的工作重心在于通过设计高效的神经网路框架从而实现通过神经网络来提取数据中的有用特征。因此称这种范式为“架构工程”阶段。
然后,随着大规模预训练模型以及迁移学习的应用外加Fine-tuning对于特定下游任务的模型具化的兴起,NLP领域迎来了它的第三范式——“目标工程”。
  1. 这种工程首先是解决了在监督学习时代中需要大量的标注数据进行模型的训练这个重大的缺陷。这种方法在训练PLM的参数的时候需要使用的就是大量的各个领域的无标记数据就可以。
  2. 然后将上面经过在大量的无监督的数据中习得的参数,再通过在指定任务上的一些已标注数据进行Fine-tuning,就可以得到针对于特定任务的模型。
  3. 但是有一点,这种方法需要在针对于不同的task的时候都需要进行FIne-tuning,那么如果遇到这种任务场景下的datasets中的data数量十分少,那么就没办法的进行高效的Fine-tuning了,更不用说在Zero-shot问题上进行处理。
  4. 同时,这种方法的训练需要有两个阶段“Pre-train”+“Fine-tuning”然后才能形成针对于specific task的模型,如果换一个任务就没办法进行处理。就需要依据具体问题再Fine-tuning不同的模型。
基于这种情况,NLP第四范式——“提示工程”,诞生了。
  1. 首先,这种模型呢,同样还是使用的是PLM。但是,相较于上面的“目标工程”不同的就是,这里我们通过提供一个prompt,从而可以对于不同的task进行改造,从而使得这些task都可以迁移到同一个PLM进行问题的处理。
  2. 比方说,如果是一个文本生成类任务,我们可以在给文本分类类型的input data套上一个prompt,从而就会产生一个answer slot,然后我们通过文本生成从而填充这个slot,最终,这个slot中对应的答案就是可能我们input data所述的类别。
  3. 甚至于我们的PML可以在不经过Fine-tuning的情况下都可以在经过改造prompt的task上面进行高效的处理,如果有Fine-tuning的话可能效果会更好。
  4. 这种范式的诞生,也是作为可以解决few-shot和zero-shot问题的一种解决方法。

Prompt数学化定义

NLP领域中的全监督方式

全监督方式的学习模式,这种全监督方式的学习模式的输入数据是文本,然后输出的数据可能是标签、文本或者是其他的输出形式。然后,通常的训练方式是使用带有一对输入和输出的数据集,然后使用在输入数据的条件下预测输出数据,这种条件概率的方式来建立目标函数,从而通过求loss最终得到这种全监督方式中的参数θ。

Prompt基础

首先呢,对于prompt的这种方法诞生的初衷也就是为了解决supervise-learnig方式中对于已标注数据的需要,但是这种需求在一些任务上是没有办法得到满足的。因此,诞生了这种Prompt-Learning的方式。
这种prompt的方式的具体实现流程是:
  1. 首先我们也是有一定的前提条件的,就是需要提前具备PLM中的参数θ;
  2. 然后,我们需要根据具体的任务给出不同的prompt模板,这个模板中具备了两个slot,一个是用来接收输入数据input data的slot,还有一个是针对于这个prompt中对input data提问的问题,我们需要填充的答案slot,
  3. 然后,我们根据这个prompt模板将input data填充到这个prompt中,此时,原来的输入input x就变成了 x , x^, x,
  4. 然后,我们此时还需要一个用作备选answer slot中answer的集合 Z Z Z。然后从Z中依次选择一个元素 z z z代入到 x , x^, x,中的answer slot中;
  5. 然后,这时之前的PLM就派上用场了,我们通过求不同的x,对应的P( x , x^, x,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值