当前位置:   article > 正文

NLP四范式:范式一:非神经网络时代的完全监督学习(特征工程);范式二:基于神经网络的完全监督学习(架构工程);范式三:预训练,精调范式(目标工程);范式四:预训练,提示,预测范式(Prompt工程)_nlp四大范式

nlp四大范式

在这里插入图片描述
自然语言处理(Natural Language Processing,NLP)是计算机科学,人工智能,语言学关于计算机和人类自然语言之间的相互作用的领域,是计算机科学领域与人工智能领域中的一个重要方向。

自然语言处理历史悠久,早在1949年的时候,美国人威弗就提出了机器翻译设计方案,可以视为自然语言处理领域的开端,此后自然语言处理在不断的发展,在上世纪该领域的方法主要是基于规则的方法和基于统计学的方法,这类方法效率较低,耗费人力,且无法处理大规模的数据集,因此自然语言处理领域一直不温不火。

2008年以来,随着深度学习在语音识别和图像处理领域取得成功,研究者们开始使用深度学习方法处理自然语言处理问题,从最初的词向量,到2013年的word2vec,再到2018年的bert,最后到如今的prompt,自然语言处理技术在最近的十年里面快速发展。

CMU的刘鹏飞博士总结了自然语言处理技术发展过程中的四种范式,每种范式代表了一种类型的自然语言处理方法,本文结合一些简单的示例,总结一下NLP中的四个范式。

一、第一范式:非神经网络时代的完全监督学习(特征工程)

第一范式指的是引入神经网络之前NLP领域的处理方法,提取出自然语言语料库中的一些特征,利用特定的规则或数学、统计学的模型来对特征进行匹配和利用,进而完成特定的NLP任务。常见的方法比如以下方法来进行序列分类、序列标注等任务:

  • 贝叶斯
  • veterbi算法
  • 隐马尔可夫模型

在这里插入图片描述

二、第二范式:基于神经网络的完全监督学习(架构工程)

第二范式指的是 神经网络引进之后,预训练模型出现之前 NLP领域的研究方法。

这类方法不用手动设置特征和规则,节省了大量的人力资源,但仍然需要人工设计合适的神经网路架构来对数据集进行训练。常见的方法比如CNN、RNN、机器翻译中的Seq2Seq模型等等。
在这里插入图片描述

三、第三范式:预训练,精调范式(目标工程)

第三范式指的是先在大的无监督数据集上进行预训练,学习到一些通用的语法和语义特征,然后利用预训练好的模型在下游任务的特定数据集上进行fine-tuning,使模型更适应下游任务。

GPT、Bert、XLNet等模型都属于第三范式,其特点是不需要大量的有监督下游任务数据,模型主要在大型无监督数据上训练,只需要少量下游任务数据来微调少量网络层即可。
在这里插入图片描述

四、第四范式:预训练,提示,预测范式(Prompt工程)

第四范式指的是 将下游任务的建模方式重新定义通过合适的prompt(提示符、提示词)来实现直接在预训练模型上解决下游任务,这种模式需要极少量(甚至不需要)下游任务数据,使得小样本、零样本学习成为可能。

前文提到第三范式的fine-tuning过程是调整预训练模型,使其更加匹配下游任务,那么第四范式就正好相反,prompt过程则是调整下游任务,使其更加匹配预训练模型。也就是第三范式是预训练模型迁就下游任务,而第四范式是下游任务迁就预训练模型。

那么如何改造下游任务能更好的迁就预训练模型呢?以Bert为例,Bert有两个预训练任务,Masked LM完型填空任务和Next Sentence Prediction下个句子预测任务,对于这两种不同的与训练任务,prompt的类型也可以分为两类:

  • 完形填空prompt
    • 完型填空prompt:比如情感分类任务,输入是【这个玩具不错】,可以将prompt改成:这个玩具不错,太【Z】,Z的输出是“棒”。
    • 分类匹配选择相关的任务往往使用完形填空prompt(自编码)
  • 前缀提示prompt
    • 前缀提示prompt:比如机器翻译任务,输入是【好好学习】,可以将prompt改成:好好学习,翻译成英语:【Z】,Z的输出是"good good english"。
    • 生成相关的任务往往使用前缀提示prompt(自回归)。

1、二分类任务prompt示例

假设有一个情感分类任务,输入句子X,输出其情感标签Y{正向,负向}。

比如对于"这个餐厅的服务真不错。"这个句子进行情感分类,

  • 首先构造prompt:_____满意,这个餐厅的服务真不错,将输入句子变化为这样的prompt,
  • 然后将标签Y映射为{很,不}(很满意代表正向,不满意代表负向)。

由于正常的Bert的MLM预训练任务是预测整个词表,而上文的prompt预测的只有两个单词{很,不},因此需要调整词表,然后使用交叉熵损失函数进行模型。

因此,整个第四范式的处理过程为:

  • 先将输入构造成prompt,
  • 然后构造对应prompt的标签,
  • 然后对输入句子映射、对下游任务原标签映射,
  • 使用映射后的prompt输入和新标签精调模型。

2、匹配任务prompt示例

在这里插入图片描述
比如判断"我去了北京"和"我去了上海"这两句话之间的联系,可以使用完型填空的方式构造prompt:

  • 我去了北京?_____,我去了上海。

将两个输入句子映射为prompt,然后将标签从{匹配,不匹配}映射为{是的,不是},借助MLM模型进行训练。

3、第四范式研究领域主要有三个问题

第四范式研究领域主要有三个问题:

  • 针对输入端:如何构造prompt,更好的对下游任务建模,使其能够 激发预训练模型的潜能
  • 针对输出端:如何 将原标签映射为prompt对应的新标签
  • 针对模型:如何对预训练模型进行精调;

3.1 构造prompt

首先,对于prompt,主要指的是"将原输入附加一段补充描述语句,通过这段补充描述语句实现任务转换和对任务求解,这段描述语句与原始输入一起形成一段语义合理的语句作为 prompt 的输入"。

也就是说,对于输入的文本x,可以通过两步生成prompt:

  • 第一步:使用一个模板(自然语言片段),模板包含两个空位置,用于填输入 x 和生成答案文本z
  • 第二步将输入填入到x的位置上



参考资料:
近代自然语言处理技术发展的“第四范式”
NLP的四个范式
从4篇最新论文详解NLP新范式——Continuous Prompt

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号