In-Context-Learning-的数学原理

In-Context Learning 的数学原理

原文:towardsdatascience.com/the-math-behind-in-context-learning-e4299264be74/

在上下文学习(ICL)中——一个 Transformer 根据输入提示中提供的示例调整其行为的能力——已成为现代 LLM 应用的基石。在 few-shot prompting 中,我们提供几个所需任务的示例,特别有效于展示 LLM 我们希望它做什么。但这里有趣的部分是:为什么 Transformer 可以如此容易地根据这些示例调整其行为?在这篇文章中,我将给你一个直观的感觉,了解 Transformer 可能是如何完成这个学习技巧的。

来源:作者图片(使用 dingboard 制作)

来源:作者图片(使用 dingboard 制作)

这将为上下文学习背后的潜在机制提供一个高级介绍,这有助于我们更好地理解这些模型如何处理和适应示例。

ICL 的核心目标可以概括为:给定一组演示对 ((x,y) pairs),我们能否证明注意力机制可以学习/实现一个算法,从这些演示中形成假设,以正确地将新的查询映射到其输出?

Softmax 注意力

让我们回顾一下基本的 softmax 注意力公式,

来源:作者图片

来源:作者图片

我们都听说过温度如何影响模型输出,但实际上在引擎盖下发生了什么?关键在于我们如何通过一个逆温度参数修改标准的 softmax 注意力。这个单一变量改变了模型分配注意力的方式——在 softmax 之前缩放注意力分数将分布从软变为越来越尖锐。这将略微修改注意力公式,

来源:作者图片

来源:作者图片

其中 c 是我们的逆温度参数。考虑一个简单的向量 z = [2, 1, 0.5]。让我们看看 softmax(c*z) 在不同的 c 值下如何表现:

当 c = 0:

  • softmax(0 * [2, 1, 0.5]) = [0.33, 0.33, 0.33]

  • 所有标记都获得相同程度的注意力,完全失去了区分相似度的能力

当 c = 1:

  • softmax([2, 1, 0.5]) ≈ [0.59, 0.24, 0.17]

  • 注意力按相似度分数成比例分配,在选择和分配之间保持平衡

当 c = 10000(接近无限):

  • softmax(10000 * [2, 1, 0.5]) ≈ [1.00, 0.00, 0.00]

  • 注意力收敛到一个 one-hot 向量,完全集中在最相似的标记上——这正是我们需要的最近邻行为

现在到了上下文学习变得有趣的地方:当 c 趋向于无穷大时,我们的注意力机制本质上变成了一个 1-最近邻搜索!想想看——如果我们关注所有除了查询之外的标记,我们基本上是在从我们的演示示例中找到最接近的匹配。这为我们对 ICL 有了新的认识——我们可以将其视为通过注意力的机制在我们的输入-输出对上实现最近邻算法。

但当 c 是有限值时会发生什么?在这种情况下,注意力更像是一个高斯核平滑算法,它按每个标记与其指数相似度的比例进行加权。

我们看到 Softmax 可以进行最近邻搜索,很好,但知道这一点有什么用呢?嗯,如果我们能说 Transformer 可以学习一个“学习算法”(如最近邻、线性回归等),那么我们也许可以在 AutoML 领域使用它,只需给它提供一些数据,然后让它找到最佳模型/超参数;Hollmann 等人就做了类似的事情,他们在许多合成数据集上训练 Transformer,以有效地学习整个 AutoML 流程。Transformer 学会自动确定对于任何给定的数据集,哪种模型、超参数和训练方法会最有效。当展示新数据时,它可以在单次前向传递中做出预测——本质上将模型选择、超参数调整和训练压缩成一步。


在 2022 年,Anthropic 发布了一篇论文,其中他们展示了证据表明归纳头可能构成 ICL 的机制。归纳头是什么?正如 Anthropic 所述——“归纳头是通过由一对不同层中的注意力头组成的电路实现的,这些注意力头协同工作以复制或完成模式。”简单来说,归纳头所做的就是在给定的序列(如——[…, A, B,…, A])中,它会用 B 来补充,其推理是,如果 A 在上下文中之前被 B 跟随,那么 A 再次被 B 跟随的可能性很大。当你有一个序列如"…A, B…A"时,第一个注意力头将前一个标记的信息复制到每个位置,第二个注意力头使用这些信息来找到 A 之前出现的位置,并预测它之后的内容(B)。

最近,许多研究表明,Transformer 可以通过梯度下降进行 ICL(Garg 等人 2022Oswald 等人 2023等)通过展示线性注意力和梯度下降之间的关系。让我们回顾一下最小二乘法和梯度下降,

来源:图片由作者提供

来源:图片由作者提供

现在,让我们看看这是如何与线性注意力相联系的

线性注意力

在这里,我们将线性注意力视为与 softmax 注意力相同,只是减去了 softmax 操作。基本的线性注意力公式,

来源:作者图片

来源:作者图片

让我们从单层结构开始,这种结构能够捕捉上下文学习的本质。想象一下,我们有 n 个训练样本(x₁,y₁)…(xₙ,yₙ),我们想要预测新输入 x{n+1}的 y

来源:作者图片

来源:作者图片

这看起来与我们在梯度下降中得到的非常相似,只是在线性注意力中我们有一个额外的项‘W’。线性注意力所实现的是一种称为预条件梯度下降(PGD)的技术,其中我们不是使用标准的梯度步,而是用一个预条件矩阵 W 来修改梯度,

来源:作者图片

来源:作者图片

我们在这里展示的是,我们可以构建一个权重矩阵,使得线性注意力的一层将执行一步 PGD。

结论

我们看到了注意力如何实现“学习算法”,这些算法基本上是,如果我们提供大量的演示(x,y),那么模型就会从这些演示中学习,以预测任何新查询的输出。虽然涉及多个注意力层和 MLP 的确切机制很复杂,但研究人员在理解上下文学习的工作机制方面已经取得了进展。本文提供了一个直观的、高级的介绍,以帮助读者理解这种新兴能力的内部工作原理。

要了解更多关于这个主题的信息,我建议以下论文:

上下文学习和归纳头

Transformer 在上下文中能学习什么?简单函数类案例研究

通过梯度下降学习上下文中的 Transformer

Transformer 学习实现预条件梯度下降以进行上下文学习

致谢

这篇博客文章受到了我在 2024 年秋季在密歇根大学研究生课程学习期间的影响。虽然这些课程提供了探索这些主题的基础知识和动力,但本文中的任何错误或误解都是我个人的。这代表了我对材料的个人理解和探索。

posted @ 2026-03-27 09:52  绝不原创的飞龙  阅读(1)  评论(0)    收藏  举报