Skip to content
🔗 分享本题
查看我的学习进度 →

上下文学习动漫知识图:Zero-shot、One-shot 与 Few-shot 通过指令和示例在当前上下文中示范任务,模型参数保持冻结;微调则更新权重

🧠 图解记忆:ICL 用上下文示范任务,不改参数;微调把行为写进权重;点击图片可查看原图。

In-Context Learning(ICL)= 不更新模型参数,仅通过在 Prompt 中提供示例,让模型学会完成新任务。

三种形式(面试必答)

形式示例数量说明适用场景
Zero-shot0 个直接给指令简单任务
One-shot1 个给 1 个示例格式学习
Few-shot2~10 个给多个示例复杂/不常见任务

示例对比

python
# Zero-shot:只给指令
prompt = "把下面的句子翻译成英文:今天天气很好"

# Few-shot:给示例再提问
prompt = """
把中文翻译成英文:
苹果 → apple
香蕉 → banana
橙子 → orange
葡萄 → ?
"""

ICL vs 微调(核心区别)

维度In-Context Learning微调(Fine-tuning)
是否更新参数❌ 不更新✅ 更新权重
成本仅 Token 费训练 GPU + 数据标注
生效速度立即小时~天
能力上限受上下文窗口限制可永久固化知识/风格
适用场景快速验证、动态任务稳定业务场景

为什么 ICL 有效?(2025-2026 主流解释)

  1. 隐式梯度下降假说:Transformer 的 Attention+MLP 组合在前向计算中隐式产生类似低秩权重更新(δW),效果上接近对模型做了一次微调
  2. Induction Head(归纳头):模型内部学会了"看到 A…B,再看到 A 就接 B"的模式复制机制,示例正是触发这种模式
  3. 任务格式对齐:示例让模型进入正确的"任务状态"(格式、语气、输出结构)

面试话术:

"ICL 是不改参数的学习——通过 Few-shot 示例让模型掌握任务。它和微调的本质区别是:ICL 走前向计算,微调走反向传播。2025 年的研究表明 ICL 底层是 Attention+MLP 隐式形成的低秩更新,效果上等价于一次隐式微调。工程上我常用 ICL 快速验证任务可行性,验证通过后再决定要不要微调固化。"