Prompt Learning

近年来在NLP取得成功的方法模型往往在CV领域也能大放异彩,借鉴于NLP,所以本文想大致谈谈自己对Prompt不成熟的理解,以及尝试探讨在CV领域应用的可能性。不同于之前总结的Visual Prompt Tuning,在这里我想总结一下Prompt在纯NLP的一些方法,算是对于之前基础的补充。

LM发展历程

近些年来,LM的重心逐渐从传统task-specific的有监督模式转移到预训练上。基于预训练语言模型的研究思路通常是“pre-train, fine-tune”,先通过大型的生语料库预训练大型语言模型,然后再进行Fine Tuning来使大型语言模型适配下游子任务

但是随着PLM的规模增大,fine-tune的硬件要求、数据需求也在上涨,加之下游任务的丰富多样,学者们希望探索出更小巧轻量、普适高效的方法,Prompt就是一个沿着此方向的尝试。

融入了Prompt的新模式大致可以归纳成“pre-train, prompt, and predict”,该模式一定程度上重构下游任务适配大型语言模型,以完成下游任务。

从参数上来看:

传统的 Model Tuning 的范式:对于不同的子任务,都需要将整个预训练语言模型进行精调,每个任务都有自己的一整套参数。

Prompt Tuning:对于不同的任务,仅需要插入不同的prompt 参数,每个任务都单独训练Prompt 参数,不训练预训练语言模型,这样子可以大大缩短训练时间,也极大的提升了模型的使用率。

Prompt Learning基本流程

Prompt Engineering的核心思想,主要就是将已有的下游NLP任务重构成token级的预测任务,在不改变原有的pre-trained LM的前提下(也就是说不进行fine tuning)直接将LM应用的过程,也就是在用下游任务适配LM。融入了 Prompt 的模式大致可以归纳成 “Pre-train, Prompt, and Predict”,在该模式中 下游任务被重新调整成类似预训练任务的形式。

根据不同的下游任务,我们需要设计不同的Template形式,如图所示:

对于 prompt template,有两种方法来生成,分别为人工设计模板和自动生成模板。

人工设计模板: 如上面举的例子一样,人工设计模板是最直观的方法。抽象来看,设文本为 X, 插槽(slot)为Z,人工设计的模板为[X] template words [Z]。但是人工设计模板有很大的缺陷,尽管这样非常直觉,易于理解,而且无需额外的计算代价,但是:1) 人工设计模板是很花费时间且需要先验知识;2) 人工设计也会有失败的情况在内。为了解决上面的问题,就提出了通过训练的方式自动生成模板。

自动生成模板: 自动生成模板有两种类型。

1) discrete prompts (离散提示),这类型 prompts 就是让模型在一组离散模板的空间中选择一个最优的模板

2) continuous prompts (连续提示),这类型 prompts 就是让语言模型自动训练一个 prompts 出来

这里着重介绍第二种,连续prompt:

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

1)模版中词语的 Embedding 可以是整个自然语言的 Embedding,不再只是有限的一些 Embedding;

2)模版的参数不再直接取 PLM 的参数,而是有自己独立的参数,可以通过下游任务的训练数据进行调整。因此,连续Prompts是需要训练,甚至是微调的一组参数。

对于continuous prompts方法大致可以分为下面几种:

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进行修正,但还处在比较初级的阶段,这也会是一个值得研究的方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值