深入浅出Prompt Learning要旨及常用方法

AI应用信息9个月前更新 XIAOT
301 0
近年来 NLP 学术领域发展真是突飞猛进,刚火完对比学习(contrastive learning),又有更火的提示学习 prompt learning。众所周知,数据标注数据很大程度上决定了 AI 算法上限,并且成本非常高,无论是对比学习还是提示学习都着重解决少样本学习而提出,甚至在没有标注数据的情况下,也能让模型表现比较好的效果。本文主要介绍 prompt learning 思想和目前常用的方法。

NLP的训练范式有哪些

目前学术界一般将 NLP 任务的发展分为四个阶段即 NLP 四范式:
1. 第一范式:基于传统机器学习模型的范式,如 tf-idf 特征 + 朴素贝叶斯等机器算法;
2. 第二范式:基于深度学习模型的范式,如 word2vec 特征 + LSTM深度学习算法,相比于第一范式,模型准确有所提高,特征工程的工作也有所减少;
3. 第三范式:基于预训练模型 + finetuning 的范式,如 BERT + finetuning 的 NLP 任务,相比于第二范式,模型准确度显著提高,但是模型也随之变得更大,但小数据集就可训练出好模型;
4. 第四范式:基于预训练模型 + Prompt + 预测的范式,如 BERT + Prompt 的范式相比于第三范式,模型训练所需的训练数据显著减少。
深入浅出Prompt Learning要旨及常用方法
在整个 NLP 领域,你会发现整个发展是朝着精度更高、少监督,甚至无监督的方向发展的,而 Prompt Learning 是目前学术界向这个方向进军最新也是最火的研究成果
为什么需要提示学习
为什么呢?要提出一个好的方式那必然是用来解决另一种方式存在的缺陷或不足,那我们就先从它的上一个范式来说起,就是预训练模型 PLM + finetuning 范式常用的是 BERT+ finetuning:
这种范式是想要预训练模型更好的应用在下游任务,需要利用下游数据对模型参数微调;首先,模型在预训练的时候,采用的训练形式:自回归、自编码,这与下游任务形式存在极大的 gap,不能完全发挥预训练模型本身的能力
必然导致:较多的数据来适应新的任务形式——>少样本学习能力差、容易过拟合
深入浅出Prompt Learning要旨及常用方法
▲ 上下游任务形式存在gap
其次,现在的预训练模型参数量越来越大,为了一个特定的任务去 finetuning 一个模型,然后部署于线上业务,也会造成部署资源的极大浪费。
▲ 模型专用性特定任务微调导致部署成本过高

提示学习是什么

首先我们应该有的共识是:预训练模型中存在大量知识;预训练模型本身具有少样本学习能力。
GPT-3 提出的 In-Context Learning,也有效证明了在 Zero-shot、Few-shot 场景下,模型不需要任何参数,就能达到不错的效果,特别是近期很火的 GPT3.5 系列中的 ChatGPT
Prompt Learning 的本质:
将所有下游任务统一成预训练任务;以特定的模板,将下游任务的数据转成自然语言形式,充分挖掘预训练模型本身的能力。
本质上就是设计一个比较契合上游预训练任务的模板,通过模板的设计就是挖掘出上游预训练模型的潜力,让上游的预训练模型在尽量不需要标注数据的情况下比较好的完成下游的任务,关键包括 3 个步骤:
  1. 设计预训练语言模型的任务
  2. 设计输入模板样式(Prompt Engineering)
  3. 设计 label 样式及模型的输出映射到 label 的方式(Answer Engineering)
Prompt Learning 的形式:
以电影评论情感分类任务为例,模型需根据输入句子做二分类:
原始输入:特效非常酷炫,我很喜欢。
Prompt 输入:提示模板 1:特效非常酷炫,我很喜欢。这是一部 [MASK] 电影;提示模板 2:特效非常酷炫,我很喜欢。这部电影很 [MASK]
提示模板的作用就在于:将训练数据转成自然语言的形式,并在合适的位置 MASK,以激发预训练模型的能力。
深入浅出Prompt Learning要旨及常用方法
▲ 提示学习模板框架
类别映射 / Verbalizer:选择合适的预测词,并将这些词对应到不同的类别。
深入浅出Prompt Learning要旨及常用方法
▲ 类别映射
通过构建提示学习样本,只需要少量数据的 Prompt Tuning,就可以实现很好的效果,具有较强的零样本/少样本学习能力。
    © 版权声明

    相关文章