当前位置: 首页 > 科技观察

恕我直言,你的模型可能不明白提示在说什么

时间:2023-03-22 14:41:18 科技观察

随着GPT-3等超大型模型的兴起,in-context学习的形式也开始流行起来。在in-contextlearning中,模型不根据下游任务调整参数,而是将下游任务的输入输出连接起来,作为提示,引导模型根据测试集的输入生成预测结果。该方法的性能可以大大超过零监督学习,为大型模型的高效使用提供了新的思路。然而,在上下文学习中,模型真的学习了下游任务吗?作为prompt的训练样本,模型是如何工作的?这篇论文的作者发现,in-contextlearning学习的不是输入和标注之间的关联,而是通过显示数据形式来激活预训练模型的能力。此外,还有两个额外的结论:(1)在元学习的环境下,这种情境学习的特征更为明显;(2)因为标签不重要,可以作为未标注领域的in-contextlearningdata。上下文零样本学习。论文标题:重新思考示范的作用:是什么让情境学习发挥作用?论文链接:https://arxiv.org/abs/2202.12837项目地址:https://github.com/Alrope123/rethinking-demonstrations背景预训练模型的大规模无监督预测:对于预训练语言模型,输入测试数据的输入(x),通过语言模型直接预测输出(P(y|x))。如下所示。其中minimal是最简单的方式,manual是加入人工设计的部分。蓝色是标签中需要预测的部分。在本文中,作者默认使用Minimal方法来处理测试数据。In-contextlearning类似于上述的无监督预测,只是在进入测试样本之前输入少量标记数据。也不需要调参,直接训练。相当于在无监督预测的基础上引入了以下前缀:而本文主要探讨模型在in-contextlearning中从添加的前缀中学到了什么。实验设置本文主要探索了6种不同的预训练模型。其中,MetaICL使用了大量的下游任务,以in-contextlearning的形式进行元学习:对于每个模型,作者使用了两种应用方式,即direct和channel:作者共探索了26个数据集,包括16个分类任务和10个多项选择任务。在实验细节方面,作者为每个实例展示了16个带标签的例子。每组设置(26个数据集、6个预训练模型、2组使用)使用5个随机数种子运行5次。在airseq13B和GPT-3这两个大模型上,作者为了算力只做了6个数据集和3个随机数种子。由于实验数量众多,作者一般只报告各种平均值。本文的第一个结论是模型不学习标签:在上下文学习中,模型不学习输入和标签之间的对应关系。可以通过将随机标签分配给上下文中的训练样本来构建随机标记的设置。从下图可以看出,无论是分类任务(上)还是多项选择任务(下),模型在随机标签设置(红色)下的表现与正确标签(黄色)相当),并且它明显优于没有对上下文样本(蓝色)进行零样本设置的情况。当改变随机标签的上下文样本的比例和改变上下文样本的数量时,这种趋势保持不变。即使选择人为设计的上下文显示形式(提示),结论也不会改变。下图的调整是改变随机标签的上下文样本比例。下图左边是ChannelMetaICL,右边是DirectGPT-J,K键是显示样本数。下图中的+T表示人为设计的in-context显示形式。本文以模型学习任务的形式得出的第二个结论是:在in-contextlearning中,模型已经学习(激活)了输入数据,预测标签的分布,以及这个数据+标签的语言表达。下图中,绿松石条是用随机采样的句子(来自外部语料库)替换输入句子的设置。可以看出,模型性能明显下降。因此,在上下文学习中,展示样本和测试样本的语料分布的一致性是比较核心的。猜测模型可能学习了显示样本的语言风格。在下图中,绿松石色的列用于将样本中的标签替换为随机词。可以看出,模型性能明显下降。因此,在上下文学习中,更重要的是展示样本中标签内容与测试样本标签内容的一致性。猜测模型很可能已经从显示样本中学习了标签词的分布。在下图中,仅使用标签(深紫色)和不使用标签(深绿色)来探索显示模式差异对模型性能的影响。可以看到,模型相比上面两张图中的OOD设置,有进一步的下降。这可以表明,除了领域内的输入和标签表达外,上下文学习中的模型也会学习到这个输入和输出的语言模式。总结与讨论模型学习了吗?作者认为,传统意义上的学习是指模型建模输入样本与输出样本之间的关系(P(y|x)或P(x,y)∝P(x|y))。从这个意义上说,情境学习并没有学习。但是,该模型可以通过在示例中显示输入、输出和输入+输出语言表达风格来提高性能。从某种程度上说,这种利用前缀输入来激活大型模型语言的表达建模能力的方法也是一种学习。因此,这也说明大模型的零监督能力远超预期。毕竟,学习表达方式、语言风格和标注形式不需要标注数据的参与。大型模型可能具有这种(分类)能力。当然,反过来也说明了in-contextlearning的局限性在于它不能真正对输入和输出之间的关系进行建模,所以一定不能通过无监督的预训练任务来对某些输入和输出之间的关系进行建模。对于下游任务,上下文学习很可能会失败。不过,目前大多数传统NLP任务似乎都不会满足上述“失败”的设定。一点额外的灵感,本文的第一作者SewonMin最近在相关主题上创作了大量高质量的作品,包括:NoisyChannelLanguageModelPromptingforFew-ShotTextClassification~https://arxiv.org/pdf/2108.04106.pdfMetaICL:LearningtoLearnInContext~https://arxiv.org/pdf/2110.15943.pdf有些学生平时做很多实验,到了写论文的时候,他们想把所有的论文中的实验结果。您仍然可以在这里了解SewonMin。这三篇文章在arxiv上的时间跨度只有6个月,很多实验甚至有重叠,基本可以判断是几项任务同时在做。作者从不同的角度对这些实验进行了划分,用不同的报道方式讲述了三个故事。每个故事都显得完整而独立,看起来很棒。