Few-shot 深入:少样本示例的科学与艺术
超越入门:示例的选择、排序、格式一致性与动态检索,掌握 In-Context Learning 的工程细节。
为什么给示例有效
大模型具备上下文学习(In-Context Learning)能力:无需更新参数,仅从提示词中的示例识别出"任务模式"并照着做。示例的本质是用数据定义任务——比文字描述更精确。
示例选择的四个准则
- 覆盖典型场景:每类常见输入至少一个示例;
- 覆盖困难边界:最容易出错的 case(如"退款中的换货")值得单独示例;
- 格式严格一致:输入输出的排版、标点、字段顺序完全统一,模型会照抄格式;
- 数量 3~5 个起步:太多挤占上下文且边际递减,太少覆盖不足。
顺序敏感与动态选择
- 模型对示例顺序敏感:与当前输入相似度高的示例放最后(近因效应);
- 动态 Few-shot:示例库较大时,按当前输入的向量相似度实时挑最相关的 k 条(LangChain 的
SemanticSimilarityExampleSelector),兼顾效果与 token 成本 —— 这本质上就是 RAG 思想用在示例上; - 对比示例:给一组"错误示范 + 为什么错 + 正确做法",对易混淆任务效果显著。
何时不需要 Few-shot
指令足够清晰、任务模式常见(翻译、摘要)时,Zero-shot 即可,省 token 又省维护成本。判断标准:先跑 zero-shot,哪里错补哪个场景的示例。
📝 课后练习
quiz-1 Few-shot 示例能有效引导模型的原因是?