随着GPT-3等超大模型的兴起,in-context learning 的形式也流行起来。在in-context learning中,模型不根据下游任务调整参数,而是将下游任务的输入输出接起来之后作为prompt,引导模型根据测试集的输入生成预测结果。该方法的表现可以大幅超越零监督学习,并给大模型高效运用提供了新的思路。
然而,in-context learning中,模型真的学习了下游任务么?作为prompt的训练样本,到底是如何让模型work的?
本文作者发现,in-context learning学习的并不是输入与标注之间的关联,而是通过展示数据形式,来激活预训练模型的能力。此外还有两个附带的结论:(1)在meta learning的环境下,in-context learning的这一特点更为明显;(2)因为标签不重要,所以可以用无标注领域内数据做in-context zero shot learning。
论文题目:Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?
论文链接:https://arxiv.org/abs/2202.12837
项目地址:https://github.com/Alrope123/rethinking-demonstrations

2

『背景』

大规模预训练模型的无监督预测:对预训练好的语言模型,输入测试数据的输入(x),直接通过语言模型预测输出(P(y|x))。如下图所示。其中minimal是最简单的方式,mannual是加入人工设计的部分。蓝色是需要预测的标签部分。这篇论文中,作者默认采用Minimal的方式处理测试数据。
图片
而in-context learning,类似于上述的无监督预测,但在输入测试样例前输入少量标注数据。同样不需要参数调整,直接训练。相当于在无监督预测的基础上,引入如下前缀:
图片
而本文主要探究的,就是in-context learning中,模型究竟从加入的这段前缀中学到了什么。

3

『实验设置』

本文主要探究了6种不同的预训练模型,其中,MetaICL采用了大量的下游任务以in-context learning的形式进行了元学习:
图片
对于每个模型,作者采用了两种应用方式,即direct和channel:
图片
作者一共探究了26个数据集,其中16个分类任务和10个多项选择任务。
图片
在实验细节上,作者对于每个instance,展示了16个标注样例。每组设置(26个数据集6个预训练模型2组使用方式)用5个随机数种子跑了5遍。作者在 airseq 13B 和 GPT-3 两个大模型上,出于算力的考虑只做了6个数据集,和3个随机数种子。
由于实验较多,作者一般仅汇报各种均值。

内容中包含的图片若涉及版权问题,请及时与我们联系删除