In-Context Learning — 上下文学习

From Systems analysis wiki
Jump to navigation Jump to search

上下文学习(英语:In-Context Learning,简称ICL)是大型语言模型 (LLM)的一项基本能力,指模型仅通过在请求的上下文(提示)中提供的示例(演示)来“即时”学习新任务。其关键特点是,这种适应过程不会更新模型的权重(参数),也就是说,无需进行传统的微调(fine-tuning)[1][2]

该机制使模型能够表现出惊人的灵活性,解决那些并非为其专门训练的任务。ICL已成为使大型语言模型如此强大和通用的关键突破之一[3]

工作机制

关于ICL工作原理的精确理解仍是一个活跃的研究领域,但有几种主流理论解释了这一现象。

Transformer作为元优化器

一种流行的理论认为,Transformer架构在预训练期间学会了在其前向传播(forward passes)中实现学习算法。当模型收到带有示例的提示时,它会隐式地执行一种优化来解决所呈现的任务,调整其内部状态(激活),而不是权重[4]

贝叶斯推断

另一种理论将ICL视为一种贝叶斯推断。模型在海量数据上进行预训练后,对众多概念有了先验知识。上下文中的示例则作为证据,使模型能够根据隐藏概念更新其后验概率分布。换言之,示例帮助模型“理解”当前需要解决的是其已知的数千个任务中的哪一个[5]

Types of In-Context Learning - 上下文学习的类型

根据提供的示例数量,ICL可分为三种主要类型。

  • Few-shot Learning(少样本学习):这是最常见且最均衡的方法。向模型提供几个(通常为2到10个)演示示例。

示例(情感分类):

文本:“今天天气真好!”
情感:积极

文本:“我讨厌堵车。”
情感:消极

文本:“这部电影相当一般。”
情感:

预期回答:

中性
  • One-shot Learning(单样本学习):只给模型提供一个示例。这通常足以设定回答的格式,并比零样本方法显著提高性能。
  • Zero-shot Learning(零样本学习):不向模型提供任何示例,只提供任务的指令或描述。在这种情况下,模型完全依赖于预训练期间获得的知识。

实际应用

正确应用ICL可以在无需昂贵的开发和微调的情况下解决广泛的任务。

  • 对于创意和风格类任务(以特定风格生成代码,模仿特定作者的风格写作):
    • 建议使用Few-shot Learning
    • 示例帮助模型捕捉所需的风格、格式和输出结构。
  • 对于指令清晰的简单任务(翻译、摘要、回答简单问题):
    • 通常Zero-shot Learning就足够了。
    • 如果这些任务是预训练的一部分,现代模型能够很好地处理它们。
  • 对于输出格式很重要的任务(生成JSON、实体提取):
    • 建议使用One-shotFew-shot Learning
    • 即使是一个示例也能清晰地设定所需的回答结构,防止格式错误。

优点与缺点

ICL的优缺点对比
优点 缺点
  • 灵活性与速度: 无需重新训练即可即时适应新任务。
  • 节约资源: 无需为微调收集数据、标注和计算能力。
  • 易用性: 允许没有机器学习专业知识的用户通过简单的文本示例来配置模型。
  • 上下文窗口的限制: 示例的数量受模型最大上下文长度的限制。
  • 对示例的敏感性: 结果在很大程度上取决于所提供演示的质量、顺序和格式。
  • 推理阶段成本高: 包含大量示例的长提示会增加生成成本和时间。
  • 安全风险: 将机密信息作为示例传递可能不安全。

与其他范式的比较

ICL vs. Fine-tuning - ICL与微调的对比

微调(Fine-tuning)通过改变模型的权重,将新知识“印刻”到模型中。这使模型成为特定领域的专家,但降低了其通用灵活性。相比之下,ICL不改变权重,更为灵活,但在需要深厚领域知识的专门任务上,其性能可能不及微调。

ICL vs. RAG (Retrieval-Augmented Generation) - ICL与RAG的对比

这两种方法都扩展了模型的上下文,但目的不同:

  • ICL 使用示例来模型如何执行任务(演示技能)。
  • RAG 使用检索到的信息来告知模型回答问题所需的事实(提供知识)。

在实践中,ICL和RAG经常结合使用以达到最佳效果。

参考文献

  • Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
  • Dai, D. et al. (2022). Why Can GPT Learn In-Context? Language Models Implicitly Perform Gradient Descent as Meta-Optimizers. arXiv:2212.10559.
  • Panwar, M.; Ahuja, K.; Goyal, N. (2024). In-Context Learning through the Bayesian Prism. arXiv:2306.04891.
  • Müller, S. et al. (2021). Transformers Can Do Bayesian Inference. arXiv:2112.10510.
  • Garg, S. et al. (2022). What Can Transformers Learn In-Context? A Case Study of Simple Function Classes. arXiv:2208.01066.
  • Min, S. et al. (2022). Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?. arXiv:2202.12837.
  • Wang, X. et al. (2023). Explaining and Finding Good Demonstrations for In-Context Learning. arXiv:2302.13971.
  • Xie, S. et al. (2024). A Survey on In-Context Learning. arXiv:2301.00234.
  • Yu, Z.; Ananiadou, S. (2024). How Do Large Language Models Learn In-Context? Query and Key Matrices of In-Context Heads Are Two Towers for Metric Learning. arXiv:2402.02872.
  • Wibisono, K. C.; Wang, Y. (2024). From Unstructured Data to In-Context Learning: Exploring What Tasks Can Be Learned and When. arXiv:2406.00131.
  • Chan, J. K. et al. (2022). Data Distributional Properties Drive Emergent In-Context Learning in Transformers. arXiv:2205.05055.
  • Hahn, M.; Goyal, N. (2023). A Theory of Emergent In-Context Learning as Implicit Structure Induction. arXiv:2303.07971.

注释