Hugging Face牵头,42位作者发文,1939个prompt,大幅提升Zero-Shot性能
Hugging Face牵头,42位作者发文,1939个prompt,大幅提升Zero-Shot性能
文 | JayJay
前几天,JayJay刷到一篇NB的paper《Multitask Prompted Training Enables Zero-Shot Task Generalization》,共有42位作者参与,实属巨制:
这篇论文由Hugging Face牵头,如果用一连串数字来概括这篇论文,我们就会发现“大力真的可以创造奇迹”:
- 一共收集了 171个 多任务数据集,总共创建了 1939个 prompt,平均每个数据集有 11.3个 prompt;
- 共有来自 8个 国家、 24家 机构的 36位 人员贡献prompt;
- 基于包含prompt的数据集进行多任务学习(模型为11B的T5),Zero-Shot性能大幅超越大16倍的GPT-3模型;
- 与Google的同期工作Instruction Tuning(FLAN模型)[1]相比,Zero-Shot性能在各数据集上几乎均有提升或可比,而模型参数 减少10倍 (Google的FLAN模型为137B);
我们可以发现:如此“耗资巨大”的工程,将 prompt+多任务学习紧密结合起来,也许是提升Zero-Shot性能的“完美配方”。
此外,很多读者也许会发现,这篇论文不就是Instruction Tuning方法吗?
事实上,本篇论文与Google的Instruction Tuning思想相同,都是将 对融合prompt的数据集进行多任务学习,在下游未见任务进行Zero-Shot性能测试。不过,仍有很多细节和性能不相同,接下来就让我们一起一探究竟吧~
1 Instruction Tuning回顾
当前,NLP发展正进入第四范式[2]——prompting时代:预训练语言模型加持下的Prompt Learning。
CMU博士后研究员刘鹏飞在综述论文[3]中定义了Prompt的两种主要形式:
- 填充文本字符串空白的完形填空(Cloze)prompt;
- 用于延续字符串前缀的前缀 (Prefix) prompt;
而Google的Instruction Tuning中的Prompt形式更像是一种更明显的指令/指示(可以归为第三种Prompt形式):
JayJay认为: Instruction Tuning仍属于prompting的范畴,其核心要点是:
- 构建了大量的多任务数据集;
- 为每个数据构建了“指令式”的prompt;
- 采用多任务学习机制进行训练;
- 更加关注下游任务的Zero-Shot性能;
需要注意的是:Instruction Tuning采用多任务学习机制,整个LM模型参数是需要tuned的。
本篇论文继承了Instruction Tuning思想,下面重点介绍本篇论文的数据集选择和Prompt设计。
2 多任务数据集选择
如上图所示,本篇论文在构造多任务数据集(共171个)时,将黄色部分的任务数据作为训练集,而绿色部分的任务数据作为Zero-Shot测试集。其中,BIG-Bench是一个新的基准评测,创建了多样化的困难任务集合来评测大型语言模型的能力。
数据构建的基本原则就是:Zero-Shot测试集中的数据未在训练集中出现。
3 Prompt设计
这里,JayJay以QQP任务为例(如上图所示),来介绍本篇论文的Prompt设计,共由两部分模板组成:
- input template: {Question1}{Question2}Pick one:These questions are duplicates or not duplicates.
- output template: {Choices[label]} 当label=0时,输出为Not duplicates
Hugging Face开发了1个交互式程序用于编写Prompt。为了使模型更加鲁棒,鼓励用户以自己的风格开发创建更加多样化的prompt。共有来自8个国家、24家机构的36位人员参与了prompt贡献。
Prompt开发地址为:https://github.com/bigscience-workshop/promptsource ,感兴趣的小伙伴可以尝试下:
例如,NLI数据集一个的prompt可以通过模板语言jinja构建:
本篇论文最终共收集了1939个prompt,所有构建的prompt集合P3(Public Pool of Prompts)也进行了开源(见论文附录G)。
4 实验结果
论文是基于T5+LM模型(基于T5进一步做LM训练)进行训练的,模型参数为11B。经过多任务prompt训练的模型为:
- T0:基于构建的171个多任务数据集进行训练;
- T0+:除T0数据集外,新增GPT3的验证集;
- T0++:除T0数据集外,新增GPT3和SuperGLUE的验证集;
上图给出了T0与GPT-3的Zero-shot性能对比,T0模型在11个数据上中有8个超越了GPT-3。而T0模型比GPT-3比小16倍,GPT-3预训练过程也可看作是基于prompt进行多任务学习的。
不过实验也发现:增加更多训练集数据会不会一致性提升Zero-Shot性能(如上图所示)。
此外,实验也表明:增加更多的Prompt数量,会提升Zero-Shot泛化性能。
5 T0 vs FLAN
上文提到过,本文的T0模型与Google的FLAN模型均属于Instruction Tuning思想,但仍有一些细节区别:
此外:
- T0++模型几乎在所有任务上超越或比肩FLAN模型,T0模型比FLAN模型小10倍。然而相同量级(8B)的FLAN模型,在多任务学习之后的Zero-Shot性能会下降。
- FLAN模型发现prompt个数增加反而会降低性能,而T0模型不会。这说明本篇论文构建的prompt更加多样化,从而使模型更加鲁棒、泛化能力更强。
6 总结与思考
这篇论文构建的prompt数目多达1939个,虽然有程序界面进行设计,但仍然逃脱不了需要人工参与。
prompting时代或许更应该关注prompt的高效设计,比如:如何自动挖掘模板。而prompt-tuning怎样更好地融入多任务学习中,也值得进一步探讨。
此外,本文采用T5这种条件生成模型对所有不同任务进行了统一建模,JayJay更觉得:当前NLP发展正进入一个 “大一统时代”:
- 框架统一: 不同NLP任务可采用统一的模型框架建模,如Seq2Seq框架基本上可以建模所有NLP任务。
- 数据统一: 不同NLP任务的数据可以融合prompt构建统一的数据形式,如指令式的prompt。
- 训练统一: 训练方式可采取统一的多任务学习机制。
参考资料
[1]Finetuned Language Models Are Zero-Shot Learners: https://arxiv.org/pdf/2109.01652.pdf
[3]Finetuned Language Models Are Zero-Shot Learners: https://arxiv.org/pdf/2107.13586.pdf
饥渴诱罪 http://www.cityruyi.com/lm-4/lm-1/11685.html- 标签:虎子娇娃
- 编辑:王智
- 相关文章
-
Hugging Face牵头,42位作者发文,1939个prompt,大幅提升Zero-Shot性能
Hugging Face牵头,42位作者发文,1939个prompt,大幅提升Zero-Shot性能 文 | JayJay 前几天,JayJay刷到一篇NB的paper《Multi…
-
Meta 推出《头号玩家》中触觉手套原型,伸向元宇宙的“触手”出现了
Meta 推出《头号玩家》中触觉手套原型,伸向元宇宙的“触手”出现了 从收购Oculus VR至今,Facebook已经走过7年。这一路…
- 联发科天玑9000消息汇总;MIUI负责人加Up主微信征集槽点疑作秀
- 国美通报员工“摸鱼”遭众人吐槽;因虚假营销小红书严打炫富笔记
- 理想汽车售卖纸巾盒被网友吐槽“拼缝”;荣耀将发两款折叠屏手机
- 哈弗H9全能型上市;坦克300赛博版真车亮相;英伟达发布全新驱动
- “欧莱雅涉嫌虚假宣传”李佳琦认栽;岚图MPV“梦想家”正式发布