In-context Learning:AI的临场学习能力
不修改参数,AI如何在对话中"学会"新任务
上一篇我们讲了Few-shot Learning——给AI几个例子,它就能学会新任务。
但你有没有想过:AI的参数明明没变,它怎么就"学会"了?
传统机器学习需要训练:修改模型参数,把新知识"写进"模型。但Few-shot不是这样——对话结束,模型就"忘掉"了这些示例。
这就像你考试时翻书找答案——书上的知识没有进入你的大脑,但你在"翻书的过程中"能回答问题。
这就是 In-context Learning(上下文学习)——AI在对话中"临时学会"某件事的能力。
1In-context Learning 的定义
In-context Learning(上下文学习),是指大模型在不更新参数的情况下,仅通过上下文窗口中的信息,就能执行新任务的能力。
🔧 传统机器学习
特点:
• 需要大量数据
• 需要GPU训练时间
• 变化是永久的
✨ In-context Learning
特点:
• 只需要几个示例
• 即时生效,无需训练
• 变化是临时的(对话结束就忘)
2In-context Learning 为什么能工作?
这个问题在AI研究领域引起了大量讨论。目前主流的解释有以下几种:
解释1:模式识别与激活
大模型在预训练时见过海量文本,其中包含各种各样的"任务模式"。当你给它示例时,它识别出"哦,这是在做情感分类",然后激活相关的知识。示例不是在"教"AI新知识,而是在"唤醒"已有的能力。
类比:老师点名提问,学生从已有的知识库中"调出"相关内容
解释2:隐式贝叶斯推断
有研究认为,In-context Learning 本质上是一种"贝叶斯推断"。模型根据上下文中的示例,隐式地推断出"这个任务应该怎么做",然后按照推断出的规则来执行。这个推断过程发生在模型的内部计算中,不需要显式编程。
类比:给你看几道例题,你自己"悟出"了解题方法
解释3:Transformer的结构特性
Transformer的自注意力机制让每个token都能"看到"之前所有token。示例进入上下文后,模型在生成新token时会"参考"这些示例。这种结构天然支持"从上下文中学习"——因为上下文就是生成的一部分依据。
类比:考试时可以翻书,答案就写在书里,你只需要"找到"它
🔬 研究前沿
2023年斯坦福大学的研究发现,In-context Learning 可能与"归纳头"(Induction Heads)有关——这是Transformer中的某些注意力头,专门负责"复制前面的模式"。当示例进入上下文后,这些归纳头会"注意到"模式,并应用到新输入上。
这解释了为什么In-context Learning在足够大的模型中才显著——因为只有大模型才有足够的"归纳头"。
3In-context Learning 与 Few-shot 的关系
很多人会混淆这两个概念。让我来澄清一下:
🧠 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 是"看例题学习"。前者是天赋,后者是方法。
4In-context Learning 的实际应用场景
角色扮演
你让AI扮演"资深程序员"或"温柔的心理咨询师"。AI从你的描述中"学会"了这个角色的说话风格,然后持续保持角色状态。
这是In-context Learning在"记住设定"
复杂指令执行
你给AI一条复杂指令:"先总结,再翻译,最后列要点"。AI理解了指令后,对后续所有输入都按这个流程处理。
这是In-context Learning在"理解规则"
实时纠错
AI犯了错,你说"不对,应该是xxx"。AI从这个反馈中"学会"了正确做法,后续回答就改过来了。
这是In-context Learning在"从反馈中学习"
个性化定制
你告诉AI"我喜欢简洁的回答,不要太啰嗦"。AI"记住"了这个偏好,后续回答都变得简洁。
这是In-context Learning在"适应用户偏好"
5In-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
6In-context Learning 与其他技术的配合
配合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高级技巧