0%

第四范式

四种范式:

  1. 非神经网络时代的完全监督学习
  2. 基于神经网络的完全监督学习
  3. 预训练、精调范式
  4. 预训练、提示、预测范式

演变的规律

规律一:每个范式都会涉及繁琐的,需要人工参与(提供先验)的特征工程
P1:特征工程
要进行特征模板定义环节
P2:结构工程
神经网络虽然解放手动配置模板特征的人力,但是需要人工去设计合适的网络结构。因此,需要人工去探究最适配下游任务的结构偏置(structral bias)。比如使用RNN还是CNN。
P3:目标函数挖掘
通过引入额外的目标函数到预训练语言模型上,以便让其更适配下游任务。有时也需要网络结构的探索,但不是主旋律,主要有以下两个原因。(1)预训练本身很费时,过度的结构偏置的探索开销过大(2)精调过程中,预训练模型本身的知识让大家“忘记”RNN和CNN的差异。
P4:Prompt挖掘
只是通过对合适prompt的利用将下游任务建模的方式重新定义。

规律2:新范式带来的收益可以让我们暂时“忽略”那些额外需要的人力代价
P1->P2: 虽然我们常常吐槽神经网络调参如炼丹,可是也在享受着不用手工配置模板,就能够得到还不错甚至更好结果的福利。与其说“炼丹“,我觉得神经网络的训练更像是“陶艺”,而传统的特征工程更像是“炼丹”,因为它对原材料(特征)的选择以及加入丹炉的顺序(特征组合)的要求几乎非常苛刻。
P2->P3: 虽然探究“哪一种损失函数引入到预训练语言模型中更适配下游任务”比较无聊,但比起排列组合各种网络结构,却不一定能获得好性能而言,前者似乎还行。
P3->P4: 虽然prompt的定义很繁琐,但是如果有个方法可以帮你回答“BERT效果都那么好了 ,我还研究个啥“这个问题,那它也挺有吸引力。并且,Prompt Learning激活了很多新的研究场景,比如小样本学习,这显然可以成为那些GPU资源受限研究者的福音。当然,我理解Prompt Learning最重要的一个作用在于给我们prompt(提示)了NLP发展可能的核心动力是什么。

Prompt Learning到底是什么

比如,假如我要判断“我喜欢这个电影” 这句话的情感(“正面” 或者 “负面”),原有的任务形式是把他看成一个分类问题

输入:我喜欢这个电影

输出:“正面” 或者 “负面”

而如果用Prompt Learning去解决的话,任务可以变成“完形填空”,

输入:我喜欢这个电影,整体上来看,这是一个 __ 的电影

输出:“有趣的” 或者 “无聊的”

Fine-tuning中:是预训练语言模型“迁就“各种下游任务。具体体现就是上面提到的通过引入各种辅助任务loss,将其添加到预训练模型中,然后继续pre-training,以便让其更加适配下游任务。总之,这个过程中,预训练语言模型做出了更多的牺牲。
Prompting中,是各种下游任务“迁就“预训练语言模型。具体体现也是上面介绍的,我们需要对不同任务进行重构,使得它达到适配预训练语言模型的效果。总之,这个过程中,是下游任务做出了更多的牺牲。

NLP的发展史本质上是下游任务和预训练语言模型关系的变迁史,性能大幅提高大概率是因为:

  1. 使用了预训练语言模型
  2. 使用了更强的预训练语言模型
  3. 更好地使用了预训练语言模型
    Prompting 本身不是目的,它是一种实现让下游任务和预训练语言模型更加接近的途径,如果我们有其它更好的方式,那就可以引领下一个范式。

Knowledgeable Prompt-tuning:

Incorporating Knowledge into Prompt Verbalizer for Text Classification

文本分类任务:通过构建标签词表,将分类问题转化为一个预测和标签相关词的问题。

帮助PLM回忆起自己在预训练时学习到的东西。使用一个模板,模板通常有两个空位置,用于填输入x的位置,和用于生成答案文本z的位置。答案搜索,然后答案映射。