引言
在大型语言模型(LLM)中的上下文学习(In-Context Learning,ICL)目前已经成为一种新兴的学习范式,具有强大的性能。然而,其内在的运行机制仍然不够明确,一个具有挑战性的问题在于,如何将ICL的学习过程映射到传统的机器学习框架中呢,这对于社区进一步发展ICL研究具有非常重要的意义。
本文介绍一篇来自谷歌DeepMind发表在NLP领域国际顶级会议EMNLP 2023上的论文,该文提出了一种全新的框架来重新审视ICL过程,通常情况下,我们可以使用训练集在特定的假设类别中寻找到一个最佳拟合函数 。本文作者发现,ICL可以学习到具有同样简单结构的函数,并且这些函数可以直接表现为具有Transformer架构的LLMs,其输入仅包含查询x和从训练集中计算出的单个“任务向量”(task vector)。因此,ICL的过程可以看作是将训练集压缩为一个特殊的任务向量,然后利用该任务向量激活transformer层以生成输出,这一发现为我们进一步理解 ICL 的学习机制提供了全新的视角。为了验证这一观点,作者进行了一系列综合实验,涵盖了不同模型和任务。实验结果充分证明了ICL学习函数具有简单的结构,这为深入理解LLMs的内部机理提供了重要的理论依据。
什么是上下文学习(In-Context Learning)
GPT-n 系列的模型都属于自回归类的语言模型,所谓自回归模型就是根据当前输入预测下一个词,然后将预测结果和输入拼接再当做模型的输入再预测下一个词,这样循环往复。
而自回归模型的训练目标也很简单,就是从超大规模语料库中采样训练样本,模型根据输入输出一个概率向量(概率向量包含所有词的预测概率,对于GPT-3 模型来说,维度约1千多万),而因为文本数据自带标注所以我们是知道真实的下一个词,所以损失函数就采用得交叉熵。研究人员发现,预训练好的 GPT-3 模型拥有一项神奇的能力,后来被称为:上下文学习(In-Context Learning)。
这项能力简单来说就是,预训练好的 GPT-3 模型在迁移到新任务上的时候并不需要重新训练,而只需要提供任务描述(这个任务描述是可选项)接着提供几个示例(任务查询和对应答案,以一对对的形式组织),最后加上要模型回答的查询。将以上内容打包一起作为模型的输入,则模型就能正确输出最后一个查询对应的答案。
其实感觉和 Few-Shot Learning 异曲同工,关于few-shot learning (元学习)可以参考下面文章:
上下文学习举例
比如现在想用 GPT-3 来做个翻译任务,翻译英文为法文。输入的格式如下:
第一行是对任务描述,告诉模型要做翻译,接下来三行就是示例,英文单词和对应的法文单词对,最后一行就是待翻译的英文单词。将以上内容整体作为 GPT-3 的输入,让模型去补全输出就能得到cheese
对应的法文单词。
这样子一看,感觉上跟few-shot learning 的结果是类似的,只是不需要重新训练模型了。
论文链接
https://arxiv.org/abs/2310.15916
ICL简要介绍
大模型的ICL过程,也被称为情景学习和上下文学习,该过程的一个显著特性是其可以从少量的示例集合中学习新规则,并且泛化到新的查询样本中。例如,我们给定一些输入示例:“Apple->Red、Lime->Green”,提示模型对新的查询“Corn->”产生输出为“Yellow”,如下图所示,模型可以仅基于两个示例就学习到了用户的目标映射关系。
此外,作者也提到本文的方法与软提示(soft-prompt)方法类似,soft-prompt也是通过调整大模型内部transformer的激活值来实现特定的新任务,但是本文的方法仅在ICL的前向传播过程中进行调整,而不是微调整个模型来实现。
解释ICL的理论框架
理论框架
ICL的假设空间
分离 A 和 f
实验验证
为了验证本文的理论框架,作者设计了4个类别中(包含算法、翻译、语言和事实知识方面)的18项不同任务来进行实验验证,下表中展示了不同任务的任务描述和具体示例。对于测试时使用的LLMs,作者选择了多个开源LLMs,包含LLaMA 7B、13B和30B版本[2]、GPT-J 6B版本[3]以及Pythia 2.8B、6.9B和12B版本[4]。
最优Transformer层数
在本文提出的ICL理论框架中,一个非常重要的参数就是在Transformer模型内部代表训练示例 A 结束,特征向量 f 开始的层数 L,作者对 L 的不同选择使用 (A,f)实现,并且在验证集上根据ICL推理的准确度来寻找最优层数,使用不同参数规模的LLaMA模型进行实验,结果如下图所示。
从上图的结果可以看出,L 的最优值几乎都在相似的中间层中出现,而与模型的参数规模和层数差异无关。
ICL理论框架的性能对比
为了验证本文提出的理论框架对于ICL的实际性能不会产生负面影响,作者对 ( A , f ) 机制的准确度与常规ICL前向传递的准确度进行比较,并且对三种不同的baseline LLM都进行了实验,实验主要评估了以下三种过程:
实验结果如上图所示,展示了每个模型在上述三个过程中所有任务的平均准确度。在所有模型中,本文的框架保持了常规 ICL 约 80-90% 的准确度,而基线仅达到 10-20%。这表明本文提出的 A 和 f 分离提供了 ICL 基础过程的良好经验近似。
任务向量的鲁棒性
上图展示了使用t-SNE算法对任务向量降维后的簇分布情况,每个簇都包含单个任务的任务向量,下图进一步显示了同一类别任务之间的接近程度,这表明任务向量在一定程度上可以掌握不同任务的语义。
对任务向量 theta 解释
本文提出的ICL理论框架中的核心概念就是任务向量theta,其可以直观地捕获有关S示例中的任务信息,作者对这种解释说法进行了证明,由于theta可以看作是Transformer的某个中间隐藏状态,因此可以采用词汇投影方法来映射到词汇表中对应的激活token。
上表显示了LLaMA-13B模型在三个任务上的激活token,在多种情况下,可以直接观察到描述任务的token,需要注意的是,这些单词从未明确出现在上下文中。例如,在从法语翻译成英语的任务中,可以观察到诸如“English”和“translate”之类的token。这进一步支持了本文的观点,即 theta 携带了有关任务的重要的语义信息。
总结
本文提出了一种针对LLMs中In-Context Learning的理论探索框架,揭示了一种ICL学习机制的新视角。本文提出的框架具备了简单而优雅的特性,其假设ICL过程通过将输入的训练示例压缩为单个任务向量来发挥作用,并且引导Transformer层根据给定的查询生成目标输出。将原本LLMs复杂的前向传递过程分解为一种学习算法和规则机制的组合,并且通过了大量的实验支持了本文的观点。目前社区的研究方向主要集中在如何提高LLMs的推理性能,但更需要探索LLM内部机理的基础工作作为指导。