0%

情境学习创建任务向量

情境学习创建任务向量

Abstract

大型语言模型 (LLM) 中的上下文学习 (ICL) 已成为一种强大的新学习范式。然而,其基本机制仍不清楚。特别是,将其映射到“标准”机器学习框架具有挑战性,在该框架中,人们使用训练集 S 在某个假设类中找到最佳拟合函数 f (x)。在这里,我们在这个问题上取得了进展,表明 ICL 学习的函数通常具有非常简单的结构:它们对应于变压器 LLM,其唯一输入是查询 x 和从训练集计算出的单个“任务向量”。因此,ICL 可以看作是将 S 压缩为单个任务向量 θ(S),然后使用该任务向量来调制变压器以产生输出。我们通过一系列模型和任务的综合实验来支持上述主张。

1 Introduction

大型语言模型在过去几年中得到了显着改进。这些模型的一个显着特性是它们可以从很少的演示中学习新规则。例如,可以使用输入“Apple → Red、Lime → Green、Corn →”提示模型并生成输出“Yellow”。因此,该模型仅基于两个示例就学习了映射,并且可以将其正确应用于新示例。这种能力被称为 InContext Learning (ICL),已被广泛使用,产生了令人印象深刻的实证结果(Brown 等人,2020;Liu 等人,2023;Dong 等人,2022)。

​ 鉴于这一成功,人们自然会问 ICL 背后的根本机制是什么。即,模型内部如何使用演示 S 和查询 x 来产生所需的输出?在这里,我们利用统计学习理论中的假设类概念(Shalev-Shwartz 和 Ben-David,2014)。在学习理论公式中,人们通常考虑假设类 H,其中 H 的每个元素都是函数 h(x; θ),对输入 x 进行运算,并由参数向量 θ 指定。例如,如果 x ∈ Rd,则类 H 可以是线性分类器的集合,由系数向量 θ 定义为 h(x; θ) = θ · x。学习算法寻找一个能很好地拟合训练集的元素 h ∈ H。这称为经验风险最小化。

image-20231105171853641

​ 目前尚不清楚 ICL 是否以这种方式运行, 因为预测是通过 T ([S, x]) 执行的,其中 T 通常是自回归变压器和[S, x] 是 S 和 x 中标记的串联 *。因此,在一般情况下,它可以是对 S 和 x 进行运算以产生输出的任意函数**。这可以包括“非参数”方法,例如最近邻法。最近的工作已经开始探索这个问题。例如,研究表明,当从头开始训练 Transformer 以在上下文中执行线性回归时,新兴的学习算法类似于随机梯度下降(Akyürek 等人,2022 年;von Oswald 等人,2022 年)。然而,对于执行更复杂的自然语言任务的法LLMs来说,根本不清楚假设空间可能是什么。

​ 在这项工作中,我们表明,在广泛的任务中,LLMs中的 ICL 可以被视为在非常自然的假设空间上工作。我们认为,给定训练集 S,变压器将其映射到“任务向量”θ(S),该向量本质上表示 S.2 中描述的映射/规则。即,给定变压器 T 和向量 θ,我们可以构造实现该任务的新函数 f (x; θ)函数 f 与应用于 x 的原始变换器非常相似,但没有演示,而是通过 θ 进行调制(见图 2)。

​ 我们的观点也与软提示有关(Lester et al., 2021),因为这两种方法都会针对特定任务调节变压器的功能。然而,在 ICL 中,任务向量是在前向传递中计算的,而不是进行微调的。

​ 我们的贡献包括提出基于假设类的 ICL 机械观点,并进行实验来验证我们对一系列公开可用的LLMs和各种任务的观点。我们的结果进一步加深了对 ICL 的理解,并可能对LLMs有效适应执行特定任务具有实际意义。

2 A Hypothesis Class View of ICL

受学习理论的假设类视图的启发,我们的目标是了解 ICL 是否将演示集 S 映射到查询 x 上的函数以及这种映射是如何发生的。具体来说,我们试图看看 ICL 是否将 S 转换为 θ——某个假设空间内函数的“参数”。我们的实证研究结果表明这种观点是适用的,揭示了 ICL 运行的假设空间的结构。

2.1Theoretical Framework

我们使用 T 表示仅解码器变压器 LLM,S 表示用作 ICL 输入的演示集(即训练示例),x 表示要求 ICL 提供输出的查询。我们使用 T ([S, x]) 表示 ICL 对 S 和 x 串联的输出。

​ 为了证明 ICL 在假设空间内运行,我们的目标是证明其基本机制可以分为两部分:

  • 一种“学习算法”(用 A 表示),将 S 映射到“任务向量”θ,独立于查询 x。鉴于注意力层可以访问 S 和 x,这种独立性并非微不足道。
  • 一个“规则应用”(用f表示),它基于θA(S) 将查询x 映射到输出,而不直接依赖于S。同样,这种独立性并非微不足道。

因此,我们考虑以下从一组演示和查询到预测输出的映射:T ([S, x]) = f (x; A(S))。如果我们可以将 LLM 的前向传递分解为上述两个部分,我们可以将 ICL 视为在以下假设类上运行: H = {f (·; θ) | θ}。在下一节中,我们提出这样一个类的实现。

2.2 A proposed Hypothesis Class

上述框架有多种可能的实现,对应于 A 和 f 的不同选择。接下来我们描述我们关注的实现,这自然是从变压器架构中得出的。我们考虑如图 1 所示的 ICL 设置,其中输入以查询 x(即 Corn)结尾,后跟“→”符号。如上所述,我们将学习视为由两个步骤组成:根据训练样本 S 计算参数向量 θ,并将该参数向量定义的规则应用于查询 x。变压器执行此操作的一个简单方法可能是让 → 表示的前 L 层计算 θ,然后让其余层将 θ 和 x 作为输入并产生输出。参见图 1。回想一下,变压器在任何层都可以访问 S 和 x,这对我们的观点提出了挑战。

​ 在以下部分中,我们将解决这一挑战并提出验证我们观点的实验。也就是说,我们证明我们可以在执行 ICL 的 LLM 的前向传播中分离出我们提出的 A 和 f。我们还表明 θ 向量是可解释的并且对应于学习任务。

image-20231105174538487

3 Validity of the Hypothesis Class View

我们首先证明,将前向传播分成两个不同的分量 A 和 f(在第 2.2 节中定义)可以保持 ICL 的高精度。

3.1 Separating A and f

我们在常规前向传递中面临一些挑战:首先,对应于 A 的初始 L 层,更新 → 的表示以创建 θ,可以处理查询 x。因此,它们可能依赖于 x,从而产生 θ 对 x 的不必要的依赖。其次,与 f 相对应的其余层可以直接访问 S,而不是仅使用 x 和 θ。

​ 我们提出以下过程来解决这些挑战:为了解决第一个问题,我们引入一个“虚拟查询”x′并使用该查询计算→的表示。我们使用前 L 层之后的 → 表示(使用 x′ 计算)作为向量 θ(如图 2 左侧所示)。另一种方法是阻止对 x 的关注,但这会导致性能不佳。为了解决在不允许直接依赖于 S 的情况下计算 f (x, θ) 的第二个问题,我们仅对 x 和 →,3 执行变换器的前向传递,并对我们之前在第 L 层提取的 θ 进行“修补”。 →(图2右侧).4

image-20231105175112562

3.2

8 Conclusions

通过LLMs对 ICL 的探索,我们揭示了 ICL 学习机制的新视角。我们揭示了一个简单而优雅的结构:ICL 通过将给定的训练集压缩为单个任务向量来发挥作用,然后引导变压器根据给定的查询生成适当的输出。我们的工作为了解LLMs如何进行 ICL 奠定了基础。根据我们的发现,未来的工作可以集中于理解任务向量是如何构建的以及如何使用它来计算输出。