硬核!一文了解大型语言模型的上下文学习能力(ICL),非常详细
引言
在这个大模型满天飞的时代里,相信大家对大型语言模型的In-Context Learning(ICL)能力并不陌生。基于该能力,我们无需对模型权重做任何改动,它就能根据输入的相关应用场景(翻译,算术,文本纠错)的几个promp 样例,解决对应场景下的新问题。最近的很多工作都在研究大型语言模型的上下文学习(ICL )能力,希望能解释为什么模型会出现ICL能力,以及影响ICL能力的因素有哪些。「在ICL研究过程中也出现一个特别有意思的讨论,即有研究发现模型在应用阶段根据上下文内容可以覆盖其之前的先验语义,如果证实那么就可以认为模型具有了自我进化的能力」。那么接下来就给大家分享一下近年对ICL的主要研究成果,带你一文了解ICL。【本文参考:https://thegradient.pub/in-context-learning-in-context/】
背景介绍
In-Context Learning(ICL)的概念最初来自GPT-3的论文,ICL之所以如此有魅力,其主要原因就是,无需微调模型权重固定不变,只需要给预训练模型展示一些输入-输出示例,就能学会做一些全新的事情。正如这篇斯坦福大学博客(http://ai.stanford.edu/blog/understanding-incontext/)所指出的,与在更多标签数据上训练的模型相比,ICL在许多NLP基准上都具有很强的竞争力。
In-Context Learning 与Prompt关系紧密,如果你需要让ChatGPT按照主题对文章进行分类,你要做的就是给它几个正确分类的样例,它就能依据你的样例进行分类给你预期的结果。为此最近也有研究开始探索操纵prompt 来让LLMs更加适合应用场景,例如Zhou等人文章Teaching Algorithmic Reasoning via In-Context Learning
目前最强模型GPT-4,在其能力介绍中就给出了了要求模型回答新问题时的问题、答案和答案解释的示例。如下图所示,为模型提供了AP艺术史考试多项选择部分的示例问题、答案和解释。最后,提示仅提供一个问题,并要求模型给出其(多项选择)答案和解释。
在GPT-3的论文中有这么一句话:「在无监督的预训练中,语言模型得出了一种泛化和模式识别的能力。应用这些能力模型可以快速适应或识别所需要做的任务。我们使用“In-Context Learning(ICL)”一词来描述这个过程,它发生在每个序列的正向传递中」。然而,ICL背后的机制是什么呢?了解LLMs为什么能够“无需进一步微调”就能快速适应新任务——目前仍然是一个有争议的主题,接下来将为大家尝试解释这一能力。
早期ICL能力的研究
说早期其实也就是这两年,因为GPT-3也就是2020年的事情。对于大型语言模型ICL能力的深入研究,最开始是由Brown等人进行,他们注意到了GPT-3的ICL能力,发现随着模型权重参数的增大,模型对上下文信息的应用也就越充分,ICL能力也有额外的增加。虽然GPT-3显示的ICL能力令人印象深刻,但值得注意的是,GPT-3在Winograd数据集上没有表现出明显的ICL能力,并且ICL在常识推理任务上的效果也参差不齐。
“locate”学习能力的过程可以看作是对提示concept的贝叶斯推理,提示中的每个例子都有一个提示concept。如果模型能够推断出提示concept,那么它就可以用来对测试实例进行正确的预测。在数学上,提示符为模型(p)提供了依据,即可以写作。如果集中在提示concept上,则可以认为模型已经有效地从提示中“学习”到了这个concept。模型输出可以表示为如下公式:
接下来,作者详细描述了他们的理论设置——预训练分布是一个混合HMM (MoHMM),用表示潜在概念中的一个concept,它定义了词汇表中可见Token的分布。他们通过从先验中抽取concept来生成文档,并在给定concept的情况下对文档进行抽样——给定concept的文档(长度为 T 的序列)的概率由HMM定义,决定HMM 的转移概率矩阵隐藏状态。他们的上下文预测器,贝叶斯预测器,根据提示分布给出的提示,在预训练分布上输出了最大可能的预测。最终实验证明了「当预训练分布是HMM的混合分布时,上下文学习就会发生」。
总之,对于ICL而言,最终重要的三件事是输入分布(ICL提示样例中的底层分布输入来自于此)、输出空间(任务中的输出类或答案选择集)以及提示格式。斯坦福大学人工智能实验室的一篇博客文章(http://ai.stanford.edu/blog/understanding-incontext/)将Min等人的研究成果与Xie等人提出的假设联系起来:「由于LM不依赖于提示中的输入-输出对应关系,它们可能已经在预训练期间接触到这种对应关系的概念,然后ICL就会利用这种对应关系」。提示的其它样例可以被视为提供证据,使模型能够定位它已经学习的concept(Xie将其定义为包含文档级统计信息的潜在变量)。
Induction heads&梯度下降
在对Transformer进行研究的时候,Anthropic的研究人发现了一种特殊的注意力头,被称为「induction heads」,它是由一对来自不同网络层的注意力头组成,该结构会在上下文学习中起到作用。简而言之,induction heads在其上下文中搜索模型当前正在处理标记的先前示例。如果它们在上下文中找到当前的标记,它们会查看下面的标记并复制它——这允许它们重复以前的标记序列以形成新的补全。从本质上讲,这个想法类似于复制粘贴模型以前的输出。例如,“哈利”和“波特”可以通过查看“哈利波特”之前的输出来完成。
最近的工作根据梯度下降的角度来对ICL进行了分析,即在文字学习过程中促使ICL实施了某种优化过程。在“What Learning Algorithm is In-Context Learning”一文中,Akyürek 等人将线性回归看作toy问题,为基于Transformer的ICL确实隐含地实现了标准学习算法的假设提供了依据。“Transformers learn in-context by gradient descent”正是其标题所暗示的主张,作者假设 transformer 前向传递“通过基于梯度的优化从其上下文数据构建的隐式自回归内部损失”来实现 ICL。
近期对ICL的研究
最近3月份的两篇论文探讨了ICL的特性,这些特性为ICL的“学习”方面提供了一些启示,并提出了一些问题。
2、翻转标签ICL:示例中的所有标签都被翻转,在语义先验知识和输入标签示例之间产生分歧。在带有真实标签的评估集上的性能超过50%表明模型未能覆盖语义先验。低于50%的性能表明模型成功地从(不正确的)输入标签映射中学习,覆盖了它的先验。
3、语义无关标签ICL(SUL-ICL):标签语义上与任务无关(例如,“foo/bar”被用作情感分类任务的标签,而不是“positive/negative”)。此设置中,模型只能使用输入标签映射执行ICL。
从本文主要结论:LLM展示了一种超越其语义先验并从输入标签映射中学习的新兴能力。换句话说,如果一个足够大的模型被要求在带有翻转标签的示例中进行上下文学习,那么在其示例具有正确标签的评估集上的性能会下降(低于50%)。
ICL未来方向
有专家认为目前的模型学习必须是梯度更新,在测试时发生的任何事情都是在训练前发生的“学习”的结果,这与“上下文学习主要是为了更好地定位(激活)LM 在训练过程中学到的内在能力”有关,
但是目前,许多工作似乎质疑了ICL不涉及学习并且仅定位预训练模型中存在的概念。大型模型似乎比小型模型从上下文提示中“学习”更多。但是将ICL与梯度下降联系起来的研究结果表明,有理由相信当小模型也执行ICL时可能会发生学习。「最近发现更大的语言模型可以覆盖它们的先验语义」,并且也许可以“学习”某些东西,这似乎指向了这样一个结论:“语言模型是否真的在上下文中学习了一些东西,而不是仅仅定位从预训练中学到的概念?”
「总之,对于模型是否能够在上下文中“学习”新的知识并并覆盖其先验语义是存在争议的」。未来对模型ICL能力的理解将会继续发展,因为我们希望能够更好的理解ICL中“学习”何时以及如何发生。
推荐阅读
[1]ICLR2023 | 上下文学习的可解释性,及实验论证
[6]MPT-7B:可商用的开源模型,效果堪比LLaMA-7B