🧠 图解记忆:ICL 用上下文示范任务,不改参数;微调把行为写进权重;点击图片可查看原图。
In-Context Learning(ICL)= 不更新模型参数,仅通过在 Prompt 中提供示例,让模型学会完成新任务。
三种形式(面试必答)
| 形式 | 示例数量 | 说明 | 适用场景 |
|---|---|---|---|
| Zero-shot | 0 个 | 直接给指令 | 简单任务 |
| One-shot | 1 个 | 给 1 个示例 | 格式学习 |
| Few-shot | 2~10 个 | 给多个示例 | 复杂/不常见任务 |
示例对比
python
# Zero-shot:只给指令
prompt = "把下面的句子翻译成英文:今天天气很好"
# Few-shot:给示例再提问
prompt = """
把中文翻译成英文:
苹果 → apple
香蕉 → banana
橙子 → orange
葡萄 → ?
"""ICL vs 微调(核心区别)
| 维度 | In-Context Learning | 微调(Fine-tuning) |
|---|---|---|
| 是否更新参数 | ❌ 不更新 | ✅ 更新权重 |
| 成本 | 仅 Token 费 | 训练 GPU + 数据标注 |
| 生效速度 | 立即 | 小时~天 |
| 能力上限 | 受上下文窗口限制 | 可永久固化知识/风格 |
| 适用场景 | 快速验证、动态任务 | 稳定业务场景 |
为什么 ICL 有效?(2025-2026 主流解释)
- 隐式梯度下降假说:Transformer 的 Attention+MLP 组合在前向计算中隐式产生类似低秩权重更新(δW),效果上接近对模型做了一次微调
- Induction Head(归纳头):模型内部学会了"看到 A…B,再看到 A 就接 B"的模式复制机制,示例正是触发这种模式
- 任务格式对齐:示例让模型进入正确的"任务状态"(格式、语气、输出结构)
面试话术:
"ICL 是不改参数的学习——通过 Few-shot 示例让模型掌握任务。它和微调的本质区别是:ICL 走前向计算,微调走反向传播。2025 年的研究表明 ICL 底层是 Attention+MLP 隐式形成的低秩更新,效果上等价于一次隐式微调。工程上我常用 ICL 快速验证任务可行性,验证通过后再决定要不要微调固化。"
