主题
高频面试题
什么是 Few-shot Learning?Zero-shot、One-shot、Few-shot 有什么区别?
这道题考察你是否理解示例在 Prompt 里的作用:不是更新参数,而是帮助模型定位任务、格式和边界。
面试官角度分析,想考什么
- Few-shot 为什么不训练也能提升效果?
考 in-context learning。 - Zero-shot、One-shot、Few-shot 区别是什么?
考概念边界。 - 什么时候用 few-shot,什么时候不用?
考成本和效果权衡。 - Few-shot 和 fine-tuning 有什么不同?
考方案选型。
可直接抄走的 30 秒参考答案
text
Zero-shot 是只给指令,One-shot 是给一个示例,Few-shot 是给几个示例让模型模仿任务模式和输出格式。Few-shot 不会更新模型参数,它依靠 in-context learning,让模型在上下文里识别“这个任务该怎么做”。它适合格式、风格、分类边界不容易说清的任务,但会增加 token 成本,也会占用上下文窗口。面试回答详解,知其所以然
Few-shot 的核心不是“临时训练模型”,而是利用模型的上下文学习能力,让它从示例中识别当前任务。
1. 三者区别
- Zero-shot:只给任务说明,不给示例。适合模型已熟悉的通用任务。
- One-shot:给 1 个示例。适合主要想展示输出格式或语气。
- Few-shot:给 2 个以上示例。适合自定义分类、抽取、改写、格式转换和边界复杂任务。
2. Few-shot 的工作方式
text
任务说明 + 示例 1 + 示例 2 + 示例 3 + 新输入 -> 模型模仿模式输出示例给模型提供三类信号:输入长什么样、输出长什么样、判断边界在哪里。模型参数没有变化,变化的是当前上下文里的任务条件。
3. 什么时候用
- 输出格式靠文字描述不稳定。
- 任务标准难以用规则讲清,但示例一看就懂。
- 类别、风格、判断尺度需要对齐。
- 长尾 case 容易答错,需要边界样例提醒。
4. 什么时候不用
- 简单事实问答、翻译、摘要等 zero-shot 已经稳定的任务。
- 上下文窗口紧张,示例会挤占关键资料。
- 推理模型已经能独立推理,few-shot CoT 可能干扰。
- 任务高频稳定且调用量大,fine-tuning 或小模型蒸馏可能更经济。
5. 和 Fine-tuning 的区别
- Few-shot:零训练成本、即时迭代、推理成本更高。
- Fine-tuning:训练成本高、行为可内化、推理 prompt 可更短。
- 选择逻辑:先 zero-shot,再 few-shot;如果高频稳定且收益明确,再考虑 fine-tuning。
面试官追问3个问题
追问一:Few-shot 示例越多越好吗?
- 考察点:是否理解收益递减和 token 成本。
- 回答方向:不是。示例要覆盖边界而不是堆数量,过多示例会增加成本、延迟和干扰。
追问二:One-shot 主要解决什么问题?
- 考察点:是否能区分格式示范和能力提升。
- 回答方向:One-shot 常用于展示输出格式、语气和字段结构,对复杂边界覆盖有限。
追问三:Few-shot 和 RAG 能一起用吗?
- 考察点:组合能力。
- 回答方向:可以。Few-shot 提供任务模式,RAG 提供外部知识,但要做 token 预算,避免示例挤占证据。
扩展知识
示例的三个信号
text
输入空间 + 输出空间 + 判断边界 = Few-shot 的主要价值即使示例很少,也能帮助模型从海量可能任务中定位到当前任务。