ICL是低秩更新
ICL (In-Context Learning)是一种在不更新模型参数(即不进行梯度下降或微调)的情况下,通过在输入(即“上下文”)中提供少量示例来指导模型完成特定任务的能力的方法。
比如
1 |
|
Google Research团队的Learning without training: The implicit dynamics of in-context learning指出了ICL实际上是一种低秩更新。
模型建立与证明
称一个上下文层为一种网络层 A(·),它能够单独接受一个向量 x 作为输入,产生输出A(x);或者,可选地,A 还可以额外接受一个上下文 C(例如,一个 token 序列、一张图片等)与向量 x 一起,生成输出 A([C, x])。注意,在后续描述中,我们通常会省略上下文层输入中的连接符号 [C, x],而简单地用 A(C, x) 来表示 A([C, x])
定义. 一个上下文块是由上述上下文层 $A$ 与神经网络 $M_W$ 组成的复合结构 $$T_W = M_W \circ A;$$ 即$$M_W(z) = f_\theta(Wz + b),$$ 其中 $W$ 和 $b$ 是第一个全连接稠密层的权重,$f_\theta(z)$ 是神经网络的其余部分。
定理. 考虑一个上下文块 $T_W = M_W \circ A$,如上所述,由一个上下文层 $A$ 与一个全连接层 $M_W$ 组成,其中全连接层具有权重矩阵 $W$。
给定一个上下文 $C$ 和一个输入 $x$,上下文 $C$ 的某部分 $Y \subseteq C$ 对上下文块输出的影响隐式地对应于 $M_W$ 的第一层的秩 1 权重更新 $W + \Delta W(Y)$。即,
$$
\begin{align}
T_W(C, x) = T _ {W + \Delta W(Y)}(C \setminus Y, x)
\quad
\\
\text{where} \quad
\Delta W(Y) = \frac{(W \Delta A(Y)) A(C \setminus Y, x)^T}{|A(C \setminus Y, x)|^2}, \tag{1}
\end{align}
$$
其中$\Delta A(Y) = A(C, x) - A(C \setminus Y, x)$ 是与 $Y$ 关联的上下文向量。
注意 $\Delta W(Y)$ 是秩 1,因为 $W \Delta A(Y)$ 是一个列向量,而 $A(C \setminus Y, x)^T$ 是一个行向量。
证明. 结果通过直接计算得出,其中我们使用符号 $M_W(z) = f_\theta(Wz + b)$,其中 $W$ 和 $b$ 是 $M$ 的第一个稠密层的权重,而 $f_\theta$ 是网络的其余部分。
在上述符号中,根据定义有:
$$
T _ {W+\Delta W(Y)}(C \setminus Y, x)
= M _ {W+\Delta W(Y)}\big(A(C \setminus Y, x)\big)
$$
$$
= f_\theta\big((W + \Delta W(Y)) A(C \setminus Y, x) + b\big)
$$
$$
= f_\theta\big(W A(C \setminus Y, x) + \Delta W(Y) A(C \setminus Y, x) + b\big).
$$
将 $\Delta W(Y)$ 替换为式 (1) 中给出的定义,并利用 $\frac{z^T}{|z|} z = 1$,我们得到:
$$
T _ {W+\Delta W(Y)}(C \setminus Y, x)
= f_\theta\left(W A(C \setminus Y, x) + \frac{(W \Delta A(Y)) A(C \setminus Y, x)^T}{|A(C \setminus Y, x)|^2} A(C \setminus Y, x) + b\right)
$$
$$
= f_\theta\left(W A(C \setminus Y, x) + W \Delta A(Y) + b\right).
$$
现在根据上下文向量的定义,有 $A(C \setminus Y, x) + \Delta A(Y) = A(C, x)$,最终得到
$$
\begin{align}
T _ {W+\Delta W(Y)}(C \setminus Y, x)
&= f_\theta\big(W A(C, x) + b\big)
\\&= M_W\big(A(C, x)\big)
\\&= T_W(C, x)
\end{align}
$$
局限性
仍在分析一个简化模型,这构成了分析的局限性:
- 推导仅对单个 Transformer 块有效,因为论文的主要定理仅量化了上下文对最后一个输入 token 输出的影响,而非整个 Transformer 块的输出。
- 论文的主要定理仅分析了上下文对首个生成 token 的影响,并未涵盖之后生成过程的完整机制。