ACL‘22杰出论文:Prompt范式有bug!


652254dfc08cff3d5f788a12ba1a0d09.png

文 | python

GPT-3等超大模型的兴起,也带来了 in-context learning (语境学习)的新范式。在语境学习中,模型并不使用梯度下降,根据监督样本调整参数;而是将监督样本的输入输出接起来作为prompt(提示词),引导模型根据测试集的输入生成预测结果。该方法的表现可以大幅超越零监督学习,并为少样本监督学习提供了新的思路。

之前监督学习中的研究经验告诉我们,训练集随机打乱通常对模型表现不会有明显影响。然而,这个结论在 in-context learning 下并不适用。作者发现,prompt中示例的顺序,对 in-context learning 的表现有很大影响,可以让模型表现在state-of-the-art到随机之间波动。这一规律,并不随着模型大小与样本量的多寡而变化。并且,较好的prompt样本的顺序,并没有规律可循。

那我们就无法选出最好的prompt顺序了么?作者表示,一方面,我们可以利用验证集来对prompt的顺序做挑选。然而,这违背了 in-context learning  的少样本学习的初衷。另一方面,作者发现大多数使模型失效的prompt顺序,会让模型预测的标签分布与真实分布有较大偏差。因此,作者根据少量样本,基于预训练语言模型,生成无标签数据。以自动生成的无标注数据作为验证集,以标签分布的熵值作为验证指标,挑选最优prompt顺序。作者提出的方法在11个文本分类上,取得了13%的相对提升。

本文为ACL 2022 outstanding paper, 作者主要来自UCL。

论文题目
Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity

论文链接
https://aclanthology.org/2022.acl-long.556

背景

大规模预训练语言模型的无监督预测:给定训练好的模型,输入测试数据的输入(x),直接通过语言模型预测输出(P(y|x))。如下图所示,其中mannual部分引入少量人工设计。蓝色是需要预测的标签部分。

248b5a3c8d5b768046db02707cf5d068.jpeg

in-context learning,类似于上述的无监督预测,但在输入测试样例前输入少量标注数据。同样不需要参数调整,直接预测。相当于在无监督预测的基础上,引入前缀,如下图所示。

bece48e740deabd3577bef81c0536147.png

而本文主要探究的,就是in-context learning中,引入的前缀里,标注数据的顺序(即上图的concatenation部分)对模型表现的影响。

prompt顺序很重要

下图展示了在SST-2(左)和subj(右)任务上,不同规模的GPT-2、GPT-3模型(横坐标,0.1B~175B)在不同的的prompt顺序下的表现。作者随机选取了4个监督样本,全排列的话,一共有4!=24种配列方式。每列绘制出了该模型在该任务下,24种prompt顺序的表现均值和error bar。可以看到,在SST-2中,2.7B的模型表现准确率可以在50%~85%的区间内波动。50%只是随机瞎蒙的准确率,85%已经接近监督学习下的最好成绩了。因此,prompt顺序十分重要。

2f3e9187f5c0e2b54be364b1bf50d218.png

更大模型难以完全避免模型表现随prompt顺序变化的波动。 SST-2任务(上图左)中,貌似随着模型增大,波动变小了很多。但在subj任务中(上图右),即使是175B的GPT-3模型,表现依然会随着prompt的顺序有很大的波动。

更多的展示样本也无法缓解模型表现随prompt顺序变化的波动。 下图展示了4种规模的GPT-2模型,在1~32个展示样本时的波动范围。可以看到,随着展示样本量的增加,模型表现普遍有所提升,但波动范围并没有明显缩小。

4c521b354882f8d0a674c42f018029fc.png

优质的展示样本的顺序,也没有什么明显的规律。 如果优质展示样本的顺序存在一定规律,那应该具有一定的可迁移性,即在不同模型下,性能都比较好。然而,这一规律并不存在。不同模型下优质的展示样本之间具有很大差异。下图显示的是不同展示样本顺序在不同模型的表现之间的斯皮尔曼秩相关系数。左图针对展示样本顺序(4!=24个),右图针对展示样本标签顺序(由于2正2负,一共有6种)。可以看出,不管是样本顺序,还是标签顺序,都不具备跨模型迁移能力。因此,优质的展示样本的顺序,也没有什么明显的规律。

4120499401bfa55ca9acbfd30df9f9f2.png

但展示样本顺序和模型表现之间的关联就是纯随机的了么?并不是。作者发现,那些使模型表现很差的展示样本顺序,往往会让模型的预测出现很大偏差 ,比如二分类中,把所有样本都预测成其中某一个类别。如下图左所示,准确率51.6%和准确率85.2%的展示顺序,预测结果分布具有明显差异。

不过,简单地对预测结果的判定阈值做校准,虽然可以部分提升模型表现,但依然无法彻底解决模型表现随展示样本顺序之间的随机性问题 。如下图右所示,通过对表现较差的展示顺序的预测结果分布调整,平均准确率有所提升,但标准差反而更大了。

43191857910b5fdc382eef3b645eb1e2.png

优化筛选Prompt顺序

那我们就拿prompt的顺序没有办法了么?作者表示,一方面,我们可以利用验证集对prompt顺序做挑选。然而,这违背了 in-context learning 的少样本学习的初衷。另一方面,我们可以基于“大多数使模型失效的prompt的顺序,会让模型预测的标签分布与真实分布有较大偏差”这一观察,根据少量样本,生成无标签数据。以自动生成的无标注数据作为验证集,以标签分布的熵值作为验证指标,挑选最优prompt顺序。

第一步是生成用来验证的无标注数据集 。作者简单地以每个prompt的顺序作为前缀,输入到预训练语言模型中,让模型解码出一系列的同分布数据。如下图所示。之所以使用预训练模型生成伪数据集,而非使用真实数据作为验证集,主要是出于少样本学习的考虑。

2e65e2acd3b509d656f084bde6537ad9.png

生成验证用数据集后,下一步就是确定评价指标来评估prompt的展示顺序的优劣 。作者考虑到生成的数据的标签并不准确,所以不使用通常有监督训练的验证集应用方式,而是设计了一种基于熵的无监督评价指标。主要基于大多数使模型失效的prompt的顺序,会让模型预测的标签分布相对较为极端,从而熵值较低的直觉。

作者设计了两种筛选指标,一种指标为全局熵指标(GlobalE)。即给定某种展示样本的顺序后,在生成数据上做预测,统计频率,作为每个类别的预测概率。而预测概率的熵值越大,认为该展示样本质量越高。

另一种指标为局部熵指标(LocalE)。该方法,利用对数据条目的预测概率,计算平均熵值。这一熵值越高,认为该展示样本质量越高。

实验结果

实验结果如下图所示。具体的实验细节在此不再赘述。下表中的Oracle是最优的展示样本顺序下的模型表现。

1e6c1a6fba563fdc8096fcd08c906715.png

相对于不挑选prompt展示顺序的方法而言,使用GlobalE和LocalE的方法平均取得了13%与9.6%的提升。这表明,基于熵和无标注数据生成的选取方法是有效的。

在不同的prompt模板下,本文方法是鲁棒的。 换用4种不同的线性化输入样本的模板(下图左),模型表现的提升是稳定且一致的(下图右)。

10d50cc6c7c7226efe33035b0d809dc2.png

结语

说实话,最开始看到小轶大人给我这个素材时我是不太愿意写的。主要是看到素材说明里“发现不同的顺序会导致结果不同”,“提出了一种生成更有效prompt的方法,在11个任务上相对提升13%”,感觉只是一篇※上雕花的工作。毕竟输入样本的顺序理论上并没有价值,这篇论文的提升可能只是发现了目前还不完善的一个方法(in context learning)的一个巧合点(展示顺序),并且产生了没有意义的提升。

不过读完后,感觉这篇论文还是有很多可取之处的,不愧是一篇outstanding paper。一方面,作者通过非常完善的实验,揭露出这种随顺序变化的不稳定性普遍存在于多种任务,不随模型规模与标注样本规模而变动。并且,波动范围极大,且不存在规律性。当然,如果只是做到这,这一只算是一份negative report,只是一篇还可以的短文。作者又从变化中寻找不变,发现了不同prompt顺序导致的预测结果标签分布上的规律,据此提出了基于熵的prompt筛选方法,并验证了效果。这就使得这篇工作变得有意思了起来。

这篇文章虽然发现现象并给出解决方案,但却缺乏这一现象背后的语言学理论/直觉上的分析。感觉作为一篇ACL(而非ICLR/IJCAI)的论文而言,是略有些不足的。究竟这些好的顺序,在语言学上有没有共性?这些好的顺序是如何产生的?是否会和预训练语料中的一些语言分布产生关联?为什么有些验证集数据对prompt样本顺序敏感?哪些数据敏感,哪些数据不敏感?敏感与不敏感的数据是否具有某种语言学特点?

除此之外,这篇文章还有一些问题可以继续深究。比如,这种不稳定性只在GPT系列的自回归语言模型中出现么?对于T5、BART一类的语言模型,是否依然存在这种问题?主实验测试集只采用256个样本是否会过少,从而增加不稳定性?如果使用大规模的测试集会观察到什么变化么?前面在SST-2上做的实验,放到所有11个任务上,结果是一致的么?作者提到,基于熵的方法对句对匹配任务的提升相对较低。那对于GPT-3试过的那些非分类任务,比如完形填空之类的,本文发现的规律是否还存在?不探究这些问题,也不会影响到这篇论文的完整性。但这些问题的答案,的确很令人好奇。

最后,还想吐槽一下这篇论文的写作格式。比如camera ready限制的是9页,这篇文章只放了8页,但表1字号很小,令人看着困难。以及像图6里配的字也太小了,看着费劲。后面附录的排版也逼死强迫症。当然,这些有点吹毛求疵了,但对一篇outstanding paper吹毛求疵一点大概也无可厚非吧~同学们如果对于一些写作格式上的建议感兴趣,可以参见本人之前的文章:吐血整理:论文写作中注意这些细节,能显著提升成稿质量,或其后续在github上整理的版本:
https://github.com/MLNLP-World/Paper-Writing-Tips

1c1b96812196eede38d064b7bfbd9249.png萌屋作者:python

北大毕业的NLP博士。日常写点论文,码点知乎,刷点leetcode。主要关注问答、对话、信息抽取、预训练、智能法律等方向。力扣国服第一python选手(经常掉下来)。知乎 ID 是 Erutan Lai, leetcode/力扣 ID 是 pku_erutan,欢迎没事常来逛逛。

作品推荐

  1. 恕我直言,你的实验结论可能严重依赖随机数种子!

  2. AllenAI 发布万能问答系统 MACAW!各类题型样样精通,性能大幅超越 GPT-3!

  3. AllenAI 发布万能问答系统 MACAW!各类题型样样精通,性能大幅超越 GPT-3!

  4. 恕我直言,你的模型可能并没看懂 prompt 在说啥

eb4d923a8bb4a1ed14b81daf7a49eb03.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)

1. 题目 编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1)…

美团外卖持续交付的前世今生

0. 前言 美团外卖自2013年创建以来,业务一直在高速发展,目前日订单量已突破3000万单,已成为美团点评最重要的业务之一。美团外卖所承载的业务,从早期单一的美食业务发展成为了外卖平台业务。目前除餐饮业务外,闪购、跑…

百万悬赏!寻找“模型越大,效果越差”的奇葩任务!

文 | 天于刀刀犹记 2018 年底谷歌开源 BERT 后,一大批基于 Attention 机制 Transformer 结构的大模型横空出世。XLNet、MPNet、ERNIE,NLP 任务彻底迈入大规模语料训练 fintune 的时代。之前一段时间爆火的 prompt 概念也离不开大模型中最基本的预训练 M…

程序员面试金典 - 面试题 02.08. 环路检测(快慢指针)

1. 题目 给定一个有环链表,实现一个算法返回环路的开头节点。 有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。 示例 1: 输入:head [3,2,0,-4], pos 1 输出&#xff1…

Batch size 没必要设为2的次方!?

文 | 付瑶最近刷到一个话题很有趣,搬来和大家一起讨论下:“batch-size 一定要大小为2的幂吗?不这样设置会有啥差别吗?”发帖人认为大家都进入一个误区。坚持选择batch-size的大小为2的幂次数是因为曾经被告知从计算的角度是对训练效率有益的。但是这个“…

ICDAR 2019论文:自然场景文字定位技术详解

自然场景文字定位是文字识别中非常重要的一部分。与通用的物体检测相比,文字定位更具挑战性,文字在长宽比、尺度和方向上有更大范围的变化。针对这些问题,本文介绍一种融合文字片段及金字塔网络的场景文字定位方法。该方法将特征金字塔机制应…

程序员面试金典 - 面试题 10.01. 合并排序的数组

1. 题目 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 初始化 A 和 B 的元素数量分别为 m 和 n。 示例: 输入: A [1,2,3,0,0,0], m 3 B [2,5,6], n 3输出: [1,2,2,3,5,6]来源&…

LeCun论文被指「洗稿」? LSTM之父发文怒怼:抄我的还标原创

编 | 好困 Joey David源 | 新智元LSTM之父、暴脾气大爷Jrgen Schmidhuber又开炮了?这回怼的是LeCun,说最近的新论文是炒了自己20多年前的冷饭,只不过换了种说法而已。图灵奖得主Yann Lecun,作为AI界的三巨头之一,他发表…

ESLint 在中大型团队的应用实践

引言 代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到,并或多或少会思考过这一问题。随着前端应用的大型化和复杂化,越来越多的前端工程师和团队开始重视 JavaScript 代码规范。得益于前端开源社区的繁盛&#xff…

程序员面试金典 - 面试题 02.05. 链表求和

1. 题目 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入:(7 -> 1 -> 6) (5 -> 9 ->…

互联网人到最后拼的是体力

文 | 卫夕源 | 卫夕指北互联网人到最后拼的是体力,这么说可能有点绝对。但如果我们将时间线拉长,体力代表的精力绝对是一个人能在互联网领域保持长期竞争力的最重要的因素。至少也是最重要的之一。1.很多互联网人退出了职场竞争,看起来是心力…

谷歌、斯坦福联合发文:我们为什么一定要用大模型?

文 | Harris语言模型已经深刻变革了自然语言处理领域的研究和实践。近年来,大模型在多个领域都取得了重要的突破。它们无需在下游任务上微调,通过合适的指令或者提示就可以取得优异的性能,甚至有时让人为之惊叹。例如,GPT-3 [1] 可…

程序员面试金典 - 面试题 02.04. 分割链表

1. 题目 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。 示例: 输入…

深度学习在搜索业务中的探索与实践

本文根据美团高级技术专家翟艺涛在2018 QCon全球软件开发大会上的演讲内容整理而成,内容有修改。 引言 2018年12月31日,美团酒店单日入住间夜突破200万,再次创下行业的新纪录,而酒店搜索在其中起到了非常重要的作用。本文会首先介…

京东金融,你到底是坏,还是码农裁多了??

7.12更新:部分基金赎回的钱已经到账小金库了,今日从小金库提现时又提示银行卡已删除,不过这次可以点击重新绑定,重新绑定时会报错“绑定的卡与原卡一致”,流程没法走完。但这时候再退回去却发现“银行卡已删除”的提示没有了。于是…

程序员面试金典 - 面试题 17.14. 最小K个数(快排划分O(n))

1. 题目 设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例&#xff1a; 输入&#xff1a; arr [1,3,5,7,2,4,6,8], k 4 输出&#xff1a; [1,2,3,4]提示&#xff1a; 0 < len(arr) < 100000 0 < k < min(100000, len(arr))来…

LruCache在美团DSP系统中的应用演进

背景 DSP系统是互联网广告需求方平台&#xff0c;用于承接媒体流量&#xff0c;投放广告。业务特点是并发度高&#xff0c;平均响应低&#xff08;百毫秒&#xff09;。 为了能够有效提高DSP系统的性能&#xff0c;美团平台引入了一种带有清退机制的缓存结构LruCache(Least Rec…

程序员面试金典 - 面试题 17.16. 理发师(动态规划DP)

1. 题目 一个有名的理发师会收到源源不断的预约请求&#xff0c;每个预约都可以选择接或不接。在每次预约服务之间要有休息时间&#xff0c;因此她不能接受相邻的预约。给定一个预约请求序列&#xff0c;替理发师找到最优的预约集合&#xff08;总预约时间最长&#xff09;&am…

关于NLP自监督学习,面试时被问崩溃了!

不要错过文末福利❤扫盲自监督无监督&#xff08;有不少同学还答不上来自监督和无监督真正的区别&#xff0c;我不是针对谁。&#xff09;无监督学习&#xff1a;无监督学习不依赖任何标签值&#xff0c;通过对数据内在特征的挖掘&#xff0c;找到样本间的关系&#xff0c;比如…

智能支付稳定性测试实战

本文根据美团高级测试开发工程师勋伟在美团第43期技术沙龙“美团金融千万级交易系统质量保障之路”的演讲整理而成。主要介绍了美团智能支付业务在稳定性方向遇到的挑战&#xff0c;并重点介绍QA在稳定性测试中的一些方法与实践。 背景 美团支付承载了美团全部的交易流量&#…