通俗易懂地理解Prompt-一读就懂的地理入门书

“Prompt:NLP 新范式”

最近类似heading的文章和新闻层出不穷,prompt显然已经成为了现代NLP领域的新宠方法。随着组里越来越多的小伙伴也开始做一些prompt相关的research,我决定写一篇关于prompt的介绍,让还没有“真香”的小伙伴们尝尝鲜。

文章有些部分是从我的personal notes里面copy过来的,夹带了点私货,若有不严谨的地方敬请见谅。

若你想每天学一点新理论,可以关注一下本账号,以方便读到之后的文章。

Cheers~

Overview

Definition:

Prompt是给input加的一段文字或一组向量,让模型根据input和外加的prompt做masked language modeling (MLM)。

For example,

{

我们想对影评”No reason to watch.”做sentiment classification,如果是常规的pretrain-finetune做法,pretrain的model和下游任务的model有不一样的objective,并需要增加一组新的参数。比如,在本例子中,要把pretrain的model应用在下游任务sentiment analysis上,常规的pretrain-finetune范式要加一个sentiment classification的objective,并加一个映射到2维的linear layer并做softmax来做sentiment二分类。

然而,在使用prompt时,我们依旧保持pretrain时的objective和architecture不变,只是在原句子后面加一个prompt “It was”,那原句子就变成了”No reason to watch. It was ____”, 这样模型通过对这个填空处词汇的预测来试图将pretrain的知识迁移到当前这个任务上来。注意,这时候原模型预测的vocabulary set变成了一个label word set; 比如在这个sentiment analysis的下游任务,我们的label word set就可以是{great,terrible},将great当成positive的分类,terrible当成negative的分类,以此把在pretrain中学到的语义信息利用过来,用在下游任务的sentiment classification上。

}

这种prompt的形式可以基于pretrain的model来做few-shot learning,尤其是当你的task只有很少的training sample时,你可以很快地把从pretrain model中学到的知识迁移到你的target down stream task上。

通常来说,prompt有两种形式:discrete prompt和soft prompt。

Discrete prompt

Discrete prompt分为两种,

一种是上面举例中的human-designed prompt,也就是人类手工设计prompt来将pretrain的知识和down stream task的知识联系起来。这种情况下我们不知道PTM学到的知识和我们人类的认知是否高度吻合,而这种prompt也极有可能并非最佳。

于是,

另一种是找一组trigger tokens来当作prompt。这种方法假设所有的知识通过pretrain已经被encode在encoder里了,我们只要用适当的trigger来把它prompt出来。一个示例如下:

通俗易懂地理解Prompt-一读就懂的地理入门书
Auto-prompt示例

可以看到,尽管trigger tokens和人类设计的prompt相比没有那么make sense,但它们可能才是对应pretrain models最优的prompts。

Soft/continuous prompts

既然都已经自动生成token-level的prompt了,那我们再大胆一点,直接用continuous的vectors来代替由token representation组成的token-level prompt,然后不finetune model,而是训练这些continuous的vectors,以寻找一组最优的vectors来代替显性的discrete prompt。

注意,soft prompts使用时freeze住model的参数,而只训练soft prompt vectors,这种范式在使用一些大的pretrain models,比如GPT-3,难以finetune整个model时,非常好用。

然而,只做prompt tuning(freeze住model,只训练prompt)和model tuning(model跟着prompt一起finetune)的performance有差异。

如下图所示(论文The Power of Scale for Parameter-Efficient Prompt Tuning),只有在model的参数大于10 billion时,prompt tuning的表现才会赶上model tuning。

通俗易懂地理解Prompt-一读就懂的地理入门书
GPT-3 (blue) vs full model fine-tuning (orange) vs soft-prompt tuning (green).

本文简洁,通俗地介绍了prompt的两种形式(离散和连续),以及两种训练的策略(只训练prompt和让model跟着一起finetune),希望你在心中对prompt的概念,分支,以及各自特点有了初步的理解,这也是本文的宗旨。

少年,你的功力又增强了!:-D

如果你觉得本文对你有所启发,欢迎左下角点赞,你们的分享与支持是我不断输出的动力(full-time Ph.D.,搬砖不易!)。我会不定期update一些新的思考与前沿技术,我update的内容一定也是对我自己的research有所启发的。若你想跟我一起进步,可以关注一下本账号,以方便读到之后的文章。

Peace

推荐阅读:

你真的理解transformer了吗(一)- review and rethink

为什么训练的时候warm up这么重要?一文理解warm up原理

硅谷谷主:Seq2seq, autoregressive, autoencoding的区别,三百字讲清楚

硅谷谷主:一文搞懂Language Modeling三大评估标准

硅谷谷主:一文掌握Byte Pair Encoding(BPE) — NLP最重要的编码方式之一

硅谷谷主:一文理解强化学习中policy-gradient 和Q-learning的区别

硅谷谷主:所有你想知道的-关于python import

硅谷谷主:彻底搞懂Python中生成器,迭代器,和可迭代对象(一):迭代器和可迭代对象

作者:硅谷谷主

参考:

https://thegradient.pub/prompting/Lester, Brian, Rami Al-Rfou, and Noah Constant. “The power of scale for parameter-efficient prompt tuning.”

免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:通俗易懂地理解Prompt-一读就懂的地理入门书 https://www.bxbdf.com/a/142574.shtml

上一篇 2023-07-30 00:00:27
下一篇 2023-07-30 00:13:52

猜你喜欢

联系我们

在线咨询: QQ交谈

邮件:362039258#qq.com(把#换成@)

工作时间:周一至周五,10:30-16:30,节假日休息。