第 42 篇 · LLM高级技巧

In-context Learning:AI的临场学习能力

不修改参数,AI如何在对话中"学会"新任务

上一篇我们讲了Few-shot Learning——给AI几个例子,它就能学会新任务。

但你有没有想过:AI的参数明明没变,它怎么就"学会"了?

传统机器学习需要训练:修改模型参数,把新知识"写进"模型。但Few-shot不是这样——对话结束,模型就"忘掉"了这些示例。

这就像你考试时翻书找答案——书上的知识没有进入你的大脑,但你在"翻书的过程中"能回答问题。

这就是 In-context Learning(上下文学习)——AI在对话中"临时学会"某件事的能力。

什么是In-context Learning?

1
In-context Learning 的定义

In-context Learning(上下文学习),是指大模型在不更新参数的情况下,仅通过上下文窗口中的信息,就能执行新任务的能力。

传统学习 vs In-context Learning

🔧 传统机器学习

Step 1准备大量训练数据
Step 2运行梯度下降算法
Step 3修改模型参数
Step 4模型"永久学会"了

特点:

• 需要大量数据

• 需要GPU训练时间

• 变化是永久的

✨ In-context Learning

Step 1在Prompt中放入示例
Step 2示例进入上下文窗口
Step 3模型参数不变
Step 4模型"临时学会"了

特点:

• 只需要几个示例

• 即时生效,无需训练

• 变化是临时的(对话结束就忘)

为什么能工作?

2
In-context Learning 为什么能工作?

这个问题在AI研究领域引起了大量讨论。目前主流的解释有以下几种:

In-context Learning 的三种解释
🎯

解释1:模式识别与激活

大模型在预训练时见过海量文本,其中包含各种各样的"任务模式"。当你给它示例时,它识别出"哦,这是在做情感分类",然后激活相关的知识。示例不是在"教"AI新知识,而是在"唤醒"已有的能力。

类比:老师点名提问,学生从已有的知识库中"调出"相关内容

🔮

解释2:隐式贝叶斯推断

有研究认为,In-context Learning 本质上是一种"贝叶斯推断"。模型根据上下文中的示例,隐式地推断出"这个任务应该怎么做",然后按照推断出的规则来执行。这个推断过程发生在模型的内部计算中,不需要显式编程。

类比:给你看几道例题,你自己"悟出"了解题方法

🔗

解释3:Transformer的结构特性

Transformer的自注意力机制让每个token都能"看到"之前所有token。示例进入上下文后,模型在生成新token时会"参考"这些示例。这种结构天然支持"从上下文中学习"——因为上下文就是生成的一部分依据。

类比:考试时可以翻书,答案就写在书里,你只需要"找到"它

🔬 研究前沿

2023年斯坦福大学的研究发现,In-context Learning 可能与"归纳头"(Induction Heads)有关——这是Transformer中的某些注意力头,专门负责"复制前面的模式"。当示例进入上下文后,这些归纳头会"注意到"模式,并应用到新输入上。

这解释了为什么In-context Learning在足够大的模型中才显著——因为只有大模型才有足够的"归纳头"。

In-context Learning 在 Transformer 内部的工作原理
上下文窗口中的信息流动📨 输入序列(Token 序列)System示例1示例2示例3新问题AI回答AI回答🧠 自注意力层(Self-Attention)每个 token 都能"看到"之前所有 token → "归纳头"识别示例模式🔍 归纳头(Induction Heads)发现:前面有示例 → 新问题 → 复制模式⚡ 前馈网络层(Feed-Forward)结合注意力权重和预训练知识 → 生成下一个 token 的概率分布✨ 输出:受示例"影响"的回答模型参数始终不变,但上下文中的示例"引导"了生成方向整个过程只发生一次前向传播,没有梯度更新,参数始终不变
与Few-shot的关系

3
In-context Learning 与 Few-shot 的关系

很多人会混淆这两个概念。让我来澄清一下:

In-context Learning vs Few-shot Learning

🧠 In-context Learning

是什么:一种能力

AI在对话中临时学习的能力。这是大模型的一种"天赋",不需要特意使用。

作用范围:

  • • 理解你的指令
  • • 记住对话历史
  • • 从示例中学习
  • • 适应你的表达风格

→ 它是底层能力,贯穿整个对话

📝 Few-shot Learning

是什么:一种技巧

在Prompt中放几个示例,让AI更快理解任务。这是一种"使用方法"。

作用范围:

  • • 快速教AI新任务格式
  • • 提高特定任务的准确率
  • • 减少沟通成本

→ 它是利用In-context Learning的具体方法

一句话总结

In-context Learning 是AI的"能力"——它能在对话中学习。

Few-shot Learning 是"使用这个能力的方法"——通过给示例,让AI更好地利用这个能力。

类比:In-context Learning 是"记性好",Few-shot 是"看例题学习"。前者是天赋,后者是方法。

实际应用

4
In-context Learning 的实际应用场景

In-context Learning 的典型应用
角色🎭

角色扮演

你让AI扮演"资深程序员"或"温柔的心理咨询师"。AI从你的描述中"学会"了这个角色的说话风格,然后持续保持角色状态。

这是In-context Learning在"记住设定"

指令📋

复杂指令执行

你给AI一条复杂指令:"先总结,再翻译,最后列要点"。AI理解了指令后,对后续所有输入都按这个流程处理。

这是In-context Learning在"理解规则"

纠错🔧

实时纠错

AI犯了错,你说"不对,应该是xxx"。AI从这个反馈中"学会"了正确做法,后续回答就改过来了。

这是In-context Learning在"从反馈中学习"

定制⚙️

个性化定制

你告诉AI"我喜欢简洁的回答,不要太啰嗦"。AI"记住"了这个偏好,后续回答都变得简洁。

这是In-context Learning在"适应用户偏好"

局限性

5
In-context Learning 的局限性

⚠️ 局限1:上下文窗口有限

In-context Learning依赖上下文窗口。窗口满了,早期的内容就会被"挤出"。所以AI"记住"的信息是有限的,对话太长就可能"忘记"早先的内容。

→ 对话越长,"记忆力"越弱

⚠️ 局限2:对话结束就"忘"

In-context Learning是临时的。对话结束,新对话开始时,AI就"清零"了。它不会记住你上次教它的东西。

→ 无法跨会话保持学习

⚠️ 局限3:依赖模型规模

研究表明,In-context Learning的能力随着模型规模增长。小模型(几亿参数)的In-context Learning能力很弱,大模型(几百亿参数)才显著。

→ 需要足够大的模型

⚠️ 局限4:不是真正的学习

In-context Learning不是"学会新知识",而是"激活已有知识"或"参考上下文"。如果你的任务需要AI真正掌握新知识(比如你公司的业务规则),In-context Learning可能不够用。

→ 深度知识需要微调或RAG

与其他技术的配合

6
In-context Learning 与其他技术的配合

ICL 与其他技术的配合架构
🤖 大语言模型In-context Learning(核心能力层)📚 RAG检索增强生成扩展知识来源🎓 微调(Fine-tuning)深度知识嵌入永久修改参数💾 记忆系统跨会话保持持久化用户偏好👤 用户Prompt + 示例实时交互注入外部知识强化基础能力加载历史记忆提供上下文
📚

配合RAG:扩展知识来源

In-context Learning擅长"从上下文学习",那我们就给它更好的上下文。RAG(检索增强生成)会从知识库中检索相关文档,放进上下文窗口。AI就能"学习"这些文档中的知识。

→ RAG提供知识,In-context Learning负责理解和应用

💾

配合记忆系统:跨会话保持

In-context Learning在单次对话中有效,但无法跨会话。解决方案是用"记忆系统":每次对话结束后,把重要信息存储起来。新对话开始时,把相关记忆加载到上下文中。

→ 记忆系统负责持久化,In-context Learning负责即时学习

🎓

配合微调:深度学习

对于需要"真正学会"的任务(比如你公司的业务规则、特定领域的术语),单靠In-context Learning不够。这时需要微调:让模型参数真正改变,永久掌握这些知识。

→ 微调负责"长期培训",In-context Learning负责"临场发挥"

总结

7
核心总结

🎓 一句话总结

  • 定义:In-context Learning是大模型在对话中临时学习的能力,不需要修改参数
  • 原理:模式激活、隐式贝叶斯推断、Transformer结构特性——多种解释并存
  • vs Few-shot:In-context Learning是"能力",Few-shot是"利用这种能力的方法"
  • 局限:上下文有限、对话结束就忘、依赖模型规模、不是真正的学习
  • 配合使用:RAG扩展知识、记忆系统保持持久性、微调实现深度学习

下一篇预告

👉 下一篇:幻觉(Hallucination)

In-context Learning让AI能从上下文中"学习",但AI有时候会"学错"——它会编造一些听起来很真实但其实是假的信息。这就是"幻觉"。为什么AI会幻觉?怎么减少幻觉?下一篇我们来深入探讨。

✏️ 手绘图解 · AI Catch 出品

第 42 篇 / 共 84 篇 · 第五阶段:LLM高级技巧