从4篇最新论文详解NLP新范式——Continuous Prompt
©PaperWeekly 原创 · 作者 | 张一帆
学校 | 中科院自动化所博士生
研究方向 | 计算机视觉
近几年,NLP 技术发展迅猛,特别是 BERT 的出现,开启了 NLP 领域新一轮的发展。从 BERT 开始,对预训练模型进行 finetune 已经成为了整个领域的常规范式。但是从 GPT-3 开始,一种新的范式开始引起大家的关注并越来越流行:prompting。
首先我们根据综述文章 Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing [1] 对 prompt 的来源和大致思想做个介绍。
NLP 中的四种范式。
从 2017-2019 年开始,NLP 模型发生了翻天覆地的变化,这种全监督范式发挥的作用越来越小。具体而言,研究重点开始转向预训练、微调范式。在这一范式下,一个具有固定架构的模型通过预训练作为语言模型(LM),用来预测观测到的文本数据的概率。由于训练 LM 所需的原始文本数据需要足够丰富,因此,这些 LM 都是在比较大的数据集上训练完成。
之后,通过引入额外的参数,并使用特定任务的目标函数对模型进行微调,将预训练 LM 适应于不同的下游任务。在这种范式下,研究重点转向了目标工程,设计在预训练和微调阶段使用的训练目标(损失函数)。
当前我们正处于第二次巨变中,「预训练、微调」过程被称为「预训练、prompt 和预测」的过程所取代。在这种范式中,不是通过目标工程使预训练的语言模型(LM)适应下游任务,而是重新形式化(Reformulate)下游任务,使其看起来更像是在文本 prompt 的帮助下在原始 LM 训练期间解决的任务。
通过这种方式,选择适当的 prompt,该方法可以操纵模型的行为,以便预训练的 LM 本身可以用于预测所需的输出,有时甚至无需任何额外的特定任务训练。这种方法的优点是给定一组合适的 prompt,以完全无监督的方式训练的单个 LM 就能够用于解决大量任务。然而该方法也存在一个问题——这种方法引入了 prompt 挖掘工程的必要性,即需要找出最合适的 prompt 来让 LM 解决面临的任务。
WARP: Word-level Adversarial ReProgramming
Prefix-Tuning: Optimizing Continuous Prompts for Generation
The Power of Scale for Parameter-Efficient Prompt Tuning
Multimodal Few-Shot Learning with Frozen Language Models
第一篇文章首次提出了 continuous prompt 的方法(从 adversarial programming 中得到的 insight),本文的输入需要可学习的 embedding,输出需要任务特定的输出层,也可以看作可学习的 prompt,第二篇文章中使用类似于 continuous prompt 类似的 prefix 加到 transformer 的每一层。
论文标题:
WARP: Word-level Adversarial ReProgramming
收录会议:
ACL 2021
论文链接:
https://arxiv.org/abs/2101.00121
代码链接:
https://github.com/YerevaNN/warp
本文最大的贡献在于,不同于 Discrete Prompt 需要手工寻找或者学习离散的 token 作为 prompt,本文直接优化 embedding 作为 prompt,这给了我们的模型更多的自由度,并最终在下游任务中有更好的表现。
Experiments
实验过程中所有的 prompt tokens 都被初始化为 [MASK] 的 embedding。
Prefix-Tuning
论文标题:
Prefix-Tuning: Optimizing Continuous Prompts for Generation
论文链接:
https://arxiv.org/abs/2101.00190
代码链接:
https://github.com/XiangLi1999/PrefixTuning
将 prompt 用于 NLG 任务上,比如对一个数据表生成描述的任务上,任务的输入是一个数据表(比如 【名称:星巴克|类型:咖啡店】),输出是一段描述(星巴克出售咖啡)。
接下来进入 prefix 的方法介绍,首先 highlevel 的说一下 intuition,然后仔细说说方法。
Intuition:本文的 intuition 在于:相信有一个合适的上下文可以在不改变参数的情况下引导 LM。例如,如果我们想让 LM 生成一个单词(例如,Obama),我们可以将其常见的搭配作为上下文(例如,Barack)的前缀,LM 将为所需的单词分配更高的概率。这是对于一个单词的引导,那么是否存在一个 context 可以引导整个句子的生成呢?这是本文要回答的关键问题。
论文标题:
The Power of Scale for Parameter-Efficient Prompt Tuning
收录会议:
EMNLP 2021
论文链接:
https://arxiv.org/abs/2104.08691
本文有一个非常有意思的地方,如下图所示。prompt-tuning 作为 prompt-design 和 model tuning 之间一个折中的方法,随着模型大小的增大,一度赶上了 model tuning 的性能。使用很少的参数做 tuning 性能大大超出手工设计的 prompt。
Design Decisions. 三种方法进行 prompt 初始化:(i) 随机,效果一般不好。(ii) 在词表中找几个,让 prompt 的参数接近真实 embedding。(iii) 根据 task 来决定,比如情感分析,我们可以将 prompt 初始化为“negative, positive, happy”等。
这里比较有意思的实验是关于 zero-shot learning 的,本文有个观点:因为我们限制了模型参数不被调整,prompt-tuning 阻止模型对数据集进行过拟合,毕竟几个 prompt 并不是 over-parameterized 的,所以 prompt-tuning 也许对domain shift 更加鲁棒。
prefix 或 prompt 已在文本领域“势不可挡”,那能不能将其应用到多模态领域呢?
主要包括两个部分:
预训练自回归语言模型:使用了 7billion 参数 transformer 模型,在公开数据集 C4 上进行训练。
视觉编码器:以 NF-ResNet-50 为 backbone,目标是将输入的原生图像转化为连续的序列,以便与文本一起送入语言模型中。
训练过程稍微有点特殊,训练时统一使用 Conceptual Captions 作为训练集,Conceptual Captions 的输入是一张图片,输出是关于此图片的描述,所以在训练时语言模型是在做生成任务。训练时还固定了 LM 的所有参数,仅优化视觉编码器的参数。这是因为 few-shot 场景下数据较少,若不固定 LM 的话,反而会破坏 LM 原有的信息,甚至使模型产生灾难性遗忘。
总的来说 本文将文本中的 Prefix 应用到了图片、文本多模态领域,将图片作为 prefix,与文本一起送入语言模型中,利用 Image Caption 数据集训练了一个生成式语言模型。在 VQA、OKVQA、miniImageNet 等多个数据集验证了迁移学习的效果,在 few-shot 场景下验证了 prefix 对模型的提升。
Conclusion
参考文献
[1] https://arxiv.org/abs/2107.13586
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧