像 GPT-4 这样的大型语言模型 (LLM) 展现出一种非凡的能力: 它们通常在看到少数几个示例后,就能立即执行新任务。无论是翻译句子、分类客户情绪,还是解决逻辑谜题,你只需提供一些演示,模型就能为新的、未见过的输入生成回应。这种现象被称为 上下文学习 (In-Context Learning, ICL) ——这也是让这些模型显得如此多才多艺的部分原因。
但这背后究竟发生了什么?当一个 LLM 执行 ICL 时,它是在严格的科学意义上 学习 吗?还是说,它只是在进行一种复杂的模式匹配——利用其庞大的预训练知识推断正确答案,而并未真正获得新技能?“上下文学习究竟算不算 学习?” 这个问题对于理解现代人工智能的真实能力与局限性至关重要。
最近的一篇研究论文 《上下文学习是在学习吗?》,通过迄今为止最大规模的 ICL 实证研究之一来探讨这一问题。作者们研究了多个 LLM,涵盖了不同形式化任务,并系统地测试了更改提示、数据分布以及其他因素对性能的影响。
结论是?是的,ICL 确实构成了一种学习——但它与传统机器学习中的学习截然不同。 它既有独特的优势,也存在显著的弱点。下面我们来看看研究人员发现了什么。
我们所说的“学习”是什么意思?
在机器学习理论中,学习 是 泛化 的同义词。如果一个模型在接触了来自数据分布 \(\mathcal{P}\) 的样本后,即使面对来自不同分布 \(\mathcal{Q} \neq \mathcal{P}\) 的新样本依然表现良好,我们就说这个模型“学会”了该任务。
可能近似正确 (PAC) 学习框架对这一点进行了正式描述。在 PAC 学习中,我们衡量学习器 \(f\) 在数据集 \(D\) 上的错误率: 即错误预测所占的比例。
如果一个模型在来自其他分布 \(\mathcal{Q}\) 的新数据集 \(E\) 上,有很高的概率仍能保持较低错误率,那么它就真正学会了。
简而言之,一个好的学习器即使在数据分布发生变化时,也应保持准确。
上下文学习如何融入其中?
传统的机器学习模型在训练中会根据数据更新其内部权重。而在 ICL 中,LLM 的权重保持冻结状态。相反,它们在推理阶段进行“即时”学习。训练数据就是提示中提供的示例。
LLM 的预测取决于整个上下文: 系统提示、示例和新查询。研究人员将 ICL 形式化为: 在给定提示 \(p\)、示例 \(e_i\) 和查询的情况下,找到最可能的标签 \(f(x_k)\):
从数学上看,这符合 PAC 学习的框架。LLM 会将输入上下文映射为某个假设并进行验证。这说明 ICL 是一种形式化的学习过程。但光有理论还无法回答: ICL 的效果如何? 它的鲁棒性强吗?当提示或数据变化时会失效吗?为此,作者们进行了大规模实证研究。
实验: 剖析 ICL
该研究评估了四种 LLM——GPT-4 Turbo、GPT-4o、Mixtral 8x7B Instruct 和 Phi-3.5 MoE——在基于形式语言理论与计算机科学的 九项任务 中的表现。每个模型共生成了 189 万次预测。
任务
任务范围从简单到复杂,且各自具有已知的计算特性:
- 奇偶性 (PARITY): 判断一个二进制字符串是否包含偶数个零 (有限状态自动机,FSA) 。
- 模式匹配 (Pattern Matching): 检测固定子串是否出现在给定字符串中 (FSA) 。
- 逆序 (Reversal): 检查 \(l\#r\) 中 \(l\) 是否等于 \(r\) 的逆序 (下推自动机,PDA) 。
- 栈 (Stack): 模拟栈操作并验证最终字符串 (PDA) 。
- 哈密顿路径 (Hamiltonian): 判断路径是否恰好访问每个顶点一次。
- 迷宫求解 / 迷宫补全 (Maze Solve / Maze Complete): 迷宫遍历的不同形式。
- 自动售货机 (Vending Machine): 计算一系列交易后的余额 (决策和算术版本) 。
通过选择可用 FSA 与 PDA 解决的任务,研究可以探究性能是否与理论复杂性相关。
数据: 控制数据分布
所有数据集均为合成数据,由自定义自动机生成,从而可精确控制训练样本 (提示示例) 与测试数据的统计特性。
图 1: 奇偶性任务数据生成自动机。转移概率 \(\delta\) 控制数据集之间的相似度或差异度。
研究人员构造了 分布内 (ID) 测试集,其统计特性与示例相似;以及 分布外 (OOD) 测试集,当 \(\delta\) 从 0 (ID) 增长到 0.85 (远 OOD) 时,与示例的差异逐渐增大。
提示
该研究测试了多种提示风格:
- n-Shot / 肯定前件式 (Modus Ponens): 仅提供示例,不附加说明。
- 描述 (Description): 提供说明 + 示例。
- 思维链 (CoT): 在给出答案前先输出逐步推导过程。
- 自动提示优化 (APO): 使用元提示自动生成“最优”系统提示。
- 直接编码 (DE): 明确提供实现该任务的形式化规则或代码。
- 词语沙拉 / 思维沙拉 (SoT): 将说明文本替换为无意义词语,以测试对自然语言语义的依赖性。
结果: 数据揭示了什么
1. 忘掉“少样本”——要想到“多样本”
准确率通常会随着示例数量增加而 提升,并且往往在 50~100 个示例时达到峰值。
图 2: 更多示例可带来更高的平均准确率,并缩小不同提示和模型间的性能差距。
在极限情况下,ICL 性能更多取决于所有 LLM 共有的自回归机制,而非特定模型特征或提示风格。
2. 对分布偏移较脆弱
当测试数据趋向分布外 (\(\delta \to 0.85\)) 时,准确率急剧下降。
图 3: 从 ID 数据集到 OOD 数据集的准确率下降情况。逆序任务尤为脆弱。
较高级的提示方式 (CoT、APO) 不仅更容易对 ID 示例过拟合,而且在面对 OOD 输入时,性能下降速度比简单提示更快。
3. 跨任务表现不一致
即便是形式复杂性相似的任务,性能差异也可能巨大。
表 1: 各任务的峰值平均准确率。尽管模式匹配 (约 94%) 和迷宫求解 (约 63%) 同为 FSA 任务,但前者表现远优于后者。
这表明 跨任务泛化 能力有限: 解决某个问题并不能保证能同样解决另一个,即使它们在数学上类似。
4. “词语沙拉”带来的惊喜
在示例数量较少时,用随机词替换清晰指令会降低性能——但在示例较多时,性能往往可以赶上来。
图 4: 在高示例数量下,“词语沙拉”提示的表现可与“描述”提示相当,说明结构与示例比语义更重要。
这意味着,对于形式化任务,LLM 可能更多依赖提示结构信号和示例的统计规律,而非对语义的理解。
结论: ICL 是在学习吗?
是的。 模型并非只是机械复述记忆内容;随着提供的示例增多,它们能在推理阶段动态改进预测。
但……
- 数据需求大: 实际性能提升往往需要 大量 示例,而非字面意义上的“少样本”。
- 对提示过拟合: 复杂提示可能会降低对 OOD 数据的鲁棒性。
- 表现不稳定: 不同任务之间的成功率变化较大。
- 不总依赖语义: 在某些任务中,指令含义的重要性可能低于数据结构。
作者指出,ICL 主要依赖 提示中的统计特征,而非从数据中抽象更深层的关系——这让它既强大又脆弱。
启示
我们不能只在单一基准和单一提示下评估 LLM,然后就假设其性能稳健。这项工作强调,有必要在多种提示、不同示例数量及不同数据分布下进行测试,以避免得出片面结论。
通过超越炒作、注重实验严谨性,研究人员才能更好地理解 LLM 的真实优势与局限,从而设计出能够更可靠地学习和泛化的系统。