技术博客

in-context learning 的一种解释:注意力即隐式梯度下降

第 72 / 147 篇 · 2025-10-20 · ai · 上下文学习优化视角可解释性

大模型最费解的能力是 in-context learning:给几个示例,不用改任何参数,行为就适配了新任务。它是在"学习"吗?如果是,模型权重作为优化器的载体在哪里?von Oswald et al.(2023,Transformers Learn In-Context by Gradient Descent)给出了一个让人瞪大眼睛的答案:把一层的 attention 权重按特定方式赋值,它的前向计算在数学上严格等于对 prompt 定义的最小二乘损失做一步梯度下降。模型不需要"学会当优化器"——构造上它就是优化器。

构造:三步矩阵赋值

设 prompt 由 $n$ 个示例组成,输入是 $d$ 维特征,任务是线性回归 $y = w^\top x$。把每个示例的 $(x_i, y_i)$ 拼成序列 token,最后一列补上 query $x_q$。取线性自注意力(去掉 softmax,$QK^\top$ 直接乘 $V$),单层单头,做三步赋值:

  1. $W_Q W_K^\top = I$:让 attention 打分矩阵的第 $i$ 行为 $x_q^\top x_i$——query 与每个示例特征的原始内积。
  2. $W_V$ 把每个 token 映射为 $[-2x_i,\; y_i]$ 的拼接(负号是关键)。
  3. $W_O$ 取输出的前 $d$ 维,并乘上一个系数。

逐步写:attention 矩阵(去 softmax)为 $A = X^\top x_q \in \mathbb{R}^n$($X$ 是示例特征矩阵),输出

$$ o = W_O\big(A^\top V\big) = W_O\sum_i (x_q^\top x_i)\,[-2x_i,\; y_i]. $$

取前 $d$ 维,系数 $\eta$ 吸收进 $W_O$:

$$ o_{1:d} = -2\eta\sum_i x_i (x_i^\top x_q) = -2\eta\, X^\top X\, x_q. $$

对照梯度下降:最小二乘损失 $\mathcal L(w) = \sum_i (w^\top x_i - y_i)^2$ 对 $w$ 的梯度在 $w=0$ 处是

$$ \nabla_w \mathcal L\big|_{w=0} = 2\sum_i x_i(x_i^\top \cdot 0 - y_i) = -2\sum_i x_i y_i. $$

一步 GD 更新(从 $w_0 = 0$ 出发):$w_1 = w_0 - \eta\nabla = 2\eta\sum_i x_i y_i$。这恰好在 attention 输出的后一维结构上——把示例的 $y_i$ 通道同样过一遍 attention 求和就得到 $w_1$。于是 query 的预测由输出尾维与 query 特征的交互给出,整体前向 = 一步 GD 后对 $x_q$ 的线性预测。

多头的推广也顺:每个头用不同的 $\eta$(学习率),一步前向等价于多学习率的集成;如果让打分矩阵带一个预条件子 $P$($W_Q W_K^\top = P$),则等价于在自然梯度度量下更新。Mesas:模型内部的"优化器"可以是它自己前向传播的一个实例。

实证:真实 Transformer 离这个构造多远

论文的另一半是实验:在合成线性回归数据上训练标准(带 softmax、深层的)Transformer,然后和真 GD 比对——

  • 浅层 Transformer 的 ICL 行为和 GD 逐步预测的轨迹高度相关(逐 token 的预测值相关系数接近 1);
  • 更深的层表现出"超越 GD"的行为:更像带了动量或二阶预条件的更新,说明真实网络学到的是比裸 GD 更好的优化算法;
  • 在非线性任务(决策树函数)上,行为偏离 GD,更接近一种核机器——呼应上一篇的核回归视角。

后续的"mesa-optimizer"讨论给这个图景加了重要注脚:ICL 的优化器身份只在任务分布和训练分布匹配时显现;训练分布外的 ICL 行为(比如示例本身带偏)并不遵守 GD 的更新规则,模型的"学习算法"是在训练分布内被雕刻出来的归纳偏置。

单层线性注意力 ≡ 一步最小二乘的梯度下降 attention 侧(矩阵赋值) W_QW_Kᵀ = I,打分 = x_qᵀx_i W_V 拼 [−2x_i, y_i] W_O 取前 d 维 × η 输出 −2η·XᵀX·x_q(特征通道) 优化侧(从 w₀=0 出发) ∇L(w₀) = −2Σ xᵢyᵢ w₁ = w₀ − η∇L = 2ηΣ xᵢyᵢ 预测 ŷ = w₁ᵀx_q GD 一步的输出通道 两通道在前向中同时算出、严格相等 → 模型内部运行着一个优化器 训练好的深层 Transformer:行为 ≈ GD + 动量/预条件(分布内)

小结

这个结果的强度要读准:它证明的是存在性——一个线性注意力层可以精确实现一步 GD,以及实证上的相似性——训练好的浅层 Transformer 在分布内确实像 GD。它不证明真实模型的 ICL 就是 GD:softmax 的非线性、深层复合、任务分布外的行为都偏离裸 GD,实测更接近"带预条件的更优优化器"。但它彻底改变了问题的提法:ICL 不再是"模型从 prompt 里神秘地提取模式",而是"模型权重里编码着一个学习算法,prompt 只是这个算法的输入"。这和下一章的起点——位置编码如何给这个算法提供序列坐标——正好接上。