In-Context Learning
LLM的In-Context-Learning
In-Context-Learning 本质是algorithm learning,也就是学习到了一个“算法”。这里的“算法”,指的是从prompt和新的query input组成的序列,到label空间的一个映射。
举个例子 ,最小二乘(OLS),就是一个算法。比如我给你一些x_i和y_i,假设y_i是x_i的一个线性函数,那么最小二乘肯定可以估计出这个线性函数。然后我再给你一个新的x,它就能给你对应的y的预测。
所以说,in-context learner其实是一个算法(比如最小二乘就是一个in-context learner)。
而transformer(或者别的LLM)就编码了一个in-context learner。
那么这个LLM中的in-context learner和通常意义上我们所说的“算法”区别在哪里呢?
区别在于,通常意义上,我们所说的“算法”是一个“程序“,或者“流程”;而在transformer里面, 我们把一个“算法”表示成了一个“含参数的函数”。如果我们通过gradient-based的方法(比如gradient descent)优化这个函数,最后我们得到的那个收敛的函数(或者说收敛到的参数)其中就编码了一个算法。
还是那个最小二乘的例子。当我们说最小二乘的时候,我们说的是一个计算流程。但是我们发现,当我们以某种方式训练transformer的时候,它的参数居然有可能收敛到某一个参数,然后那个参数本身“编码”了一个算法,而这个算法就是(或者近似)最小二乘!