之前我学习Prompt范式的源起PET后就鸽了很久,相信卷友们已经把Prompt的论文都追完了,把我远远地落在了后面。周末我不甘被卷,奋起直追,连刷三篇paper,希望能赶上大家学习的步伐。

Prefix-tuning- Optimizing continuous prompts for generation
P-tuning-GPT Understands, Too
Prompt-tuning-The Power of Scale for Parameter-Efficient Prompt Tunin

自动化Prompt

Prompt范式的第一个阶段,就是在输入上加Prompt文本,再对输出进行映射。但这种方式怎么想都不是很优雅,无法避免人工的介入。即使有方法可以批量挖掘,但也有些复杂(有这个功夫能标不少高质量语料),而且模型毕竟是黑盒,对离散文本输入的鲁棒性很差:

怎么办呢?离散的不行,那就连续的呗

用固定的token代替prompt,拼接上文本输入,当成特殊的embedding输入,这样在训练时也可以对prompt进行优化,就减小了prompt挖掘、选择的成本。

如何加入Prompt

前面的想法非常单纯,但实际操作起来还是需要些技巧的。

Prefix-tuning

Prefix-tuning是做生成任务,它根据不同的模型结构定义了不同的Prompt拼接方式,在GPT类的自回归模型上采用[PREFIX, x, y],在T5类的encoder-decoder模型上采用[PREFIX, x, PREFIX', y]

值得注意的还有三个改动:

  1. 把预训练大模型freeze住,因为大模型参数量大,精调起来效率低,毕竟prompt的出现就是要解决大模型少样本的适配

  2. 作者发现直接优化Prompt参数不太稳定,加了个更大的MLP,训练完只保存MLP变换后的参数就行了

  3. 实验证实只加到embedding上的效果不太好,因此作者在每层都加了prompt的参数,改动较大

P-tuning

P-tuning是稍晚些的工作,主要针对NLU任务。对于BERT类双向语言模型采用模版(P1, x, P2, [MASK], P3),对于单向语言模型采用(P1, x, P2, [MASK])

同时加了两个改动:

  1. 考虑到预训练模型本身的embedding就比较离散了(随机初始化+梯度传回来小,最后只是小范围优化),同时prompt本身也是互相关联的,所以作者先用LSTM对prompt进行编码

  2. 在输入上加入了anchor,比如对于RTE任务,加上一个问号变成[PRE][prompt tokens][HYP]?[prompt tokens][MASK]后效果会更好

P-tuning的效果很好,之前的Prompt模型都是主打小样本效果,而P-tuning终于在整个数据集上超越了精调的效果:

虽然P-tuning效果好,但实验对比也有些问题,它没有freeze大模型,而是一起精调的,相当于引入了额外的输入特征,而平时我们在输入加个词法句法信息也会有提升,所以不能完全肯定这个效果是prompt带来的。同时随着模型尺寸增大,精调也会更难。

Prompt-tuning

Prompt-tuning就更加有信服力一些,纯凭Prompt撬动了大模型。

Prompt-tuning给每个任务定义了自己的Prompt,拼接到数据上作为输入,同时freeze预训练模型进行训练,在没有加额外层的情况下,可以看到随着模型体积增大效果越来越好,最终追上了精调的效果:

同时,Prompt-tuning还提出了Prompt-ensembling,也就是在一个batch里同时训练同一个任务的不同prompt,这样相当于训练了不同「模型」,比模型集成的成本小多了。

其他Trick

除了怎么加Prompt之外,Prompt向量的初始化和长度也有所讲究。

Prompt初始化

Prefix-tuning采用了任务相关的文字进行初始化,而Prompt-tuning发现在NLU任务上用label文本初始化效果更好。不过随着模型尺寸的提升,这种gap也会最终消失。

Prompt长度

从Prompt-tuning的实验可以看到,长度在10-20时的表现已经不错了,同时这个gap也会随着模型尺寸的提升而减小。

总结

要说上次看PET时我对Prompt范式还是将信将疑,看完这几篇之后就比较认可了。尤其是Prompt-tuning的一系列实验,确实证明了增加少量可调节参数可以很好地运用大模型,并且模型能力越强,所需要的prompt人工调参就越少。

这种参数化Prompt的方法除了避免「人工」智能外,还有一方面就是省去了Y的映射。因为在精调的过程中,模型的输出就被拿捏死了,而且Prompt-tuning还用label初始化Prompt,更加让模型知道要输出啥。

Finally,终于追上了前沿,大家的鬼点子可真多啊。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

END -

NLP文本分类大杀器:PET范式

2021-09-15

有关胶囊网络你所应知道的一切

2021-09-13

NLP面试复盘 | 阿里/腾讯/头条/paypal/快手

2021-09-11

NLP文本分类 落地实战五大利器!

2021-09-10

Prompt范式,真香相关推荐

  1. Spring 响应式编程,真香!!!

    一.前言 响应式编程是啥? 为啥要有响应式编程? 响应式流的核心机制是什么? Spring 响应式编程能解决我们平时开发的什么痛点? Spring 响应式编程有哪些应用场景? Spring 响应式编程 ...

  2. AI免费生成3D卡通头像,真香~

    Midjourney 5.1 已经发布,官方搞活动免费送25张图,我用Mid Journey生成了我和孩子们的3D卡通头像,大家看像吗? 整个过程非常简单,只需1分钟: 首先,上传了自己照片 然后输入 ...

  3. 封禁华为的美国,现在不得不在5G标准制定上“恢复合作”,网友:5G真香

    十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 华为被列"实体清单"还未满一年,外媒今日却曝出消息: 美国商务部拟允许美国公司与华为合作. 这波操作的目的是什么? 根据 ...

  4. 爬一爬 iPhone 11为何嘴上说真丑,销量却真香?

    9月11号早晨,在Steve Jobs剧院举行的2019苹果秋季新品发布会之后,蹲守在发布会前的果粉们开始了自乔布斯去世之后一年一度的对苹果的群嘲.从5S的土豪金,到6的大屏幕.粗线条,iPhone7 ...

  5. 百度“已死”,百度“真香”

    骂百度已然成为互联网的政治正确了. 10w+阅读量刷屏的一篇<搜索引擎百度已死>,和后续到达的作战大队<百度搜索引擎死了吗?><谁杀死了百度搜索?><百度双手 ...

  6. Ipad写代码真香,包邮送一个!

    牛年牛气祝福又来了~ 你的幸运值刷新了吗? 小礼物 iPad 一台 追剧学习两不误,真香! 赠送规则 本次联合抽奖活动,由几位大佬共同赞助.大家使用下面的二维码抽奖,中奖后,联系小编兑换.详细规则如下 ...

  7. c纳秒级计时器_C++11 计时器!真香

    C++11 计时器!真香 一.前言 在我们写程序过程中,有时候需要测试我们的程序语句执行时间的耗时,当前也是有很多的库提供我们去使用,一直没有良好的跨平台的库可以提供出来:而且一般这种代码也是由我们程 ...

  8. 程序员真香!IT 业 2020 年平均工资最高

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 5月19日,国家统计局发布2020年平均工资数据,随后,相关话题便冲上微博热搜. 程序员真香! 据国家统计局发布的数据显示,20 ...

  9. 漫步者煲耳机软件_它是苹果AirPods的“真香替身”——漫步者lolliPods开箱体验...

    ​年轻人非常喜欢新事物,这不,最近流行起蓝牙无线耳机的风,这次,笔者就为大家测评一下老牌国货--漫步者lolliPods 漫步者成立于90年代,这多年一直专注于音频技术的发开和进步,在国内外都有很多的 ...

最新文章

  1. 汉字转16进制java_java实现汉字转unicode与汉字转16进制实例
  2. 倒频谱原理与python实现
  3. 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...
  4. 爱因斯坦诞辰140周年:带你走近一个真实的爱神
  5. Linux 命令(81)—— chmod 命令
  6. java resultSet获取总行数
  7. 计算机操作系统课后习题答案(第四版 汤小丹等著)
  8. Windows 10 21H2 版本微软拼音全拼和双拼的快速切换
  9. 小米 网络位置服务器,小米科普:一文看懂路由器上的 Mesh 组网是什么
  10. 深入理解图优化与g2o:g2o篇
  11. 一文读懂HTTP, HTTPS, SSL和TLS
  12. 数据分析 -- Pandas①
  13. 1 什么是末端柔顺控制?
  14. 为云服务器(VPS)增加一个站点支持
  15. Java枚举类与注解
  16. ONVIF协议 简介
  17. 中国手机行业发展现状及趋势,行业市场集中度上升「图」
  18. 法兰克机器人外部自动_FANUC机器人外部轴设置,小白勿点!
  19. IOS学习之关于导航那些事
  20. 英语小短信,值得学习

热门文章

  1. 不同类型特征变量之间相关性分析
  2. C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL
  3. 运行gedit报No protocol specified
  4. bootstrap-datepicker实现日期input readonly 标签中选择时间功能
  5. LintCode 生成括号
  6. 你不知道的JavaScript--大白话讲解Promise
  7. java中几种常见字符集与乱码介绍
  8. 解决c#,wpf程序带环境安装包体积太大问题
  9. (转)修改的T4代码生成器(续)
  10. Intel开发工具之VTune