主题
高频面试题
如何选择和设计 Few-shot 示例以提升效果?
面试官问 few-shot 示例设计,真正想看你能否把样例当成可维护资产,而不是随手复制几条好看的答案。
面试官角度分析,想考什么
- 示例应该选相似的还是典型的?
考静态 few-shot 和动态 few-shot 的区别。 - 示例数量怎么定?
考收益递减和 token 预算。 - 示例顺序会影响结果吗?
考 recency bias 和标签分布。 - 如何维护示例库?
考工程化和评估闭环。
可直接抄走的 30 秒参考答案
text
Few-shot 示例设计要看覆盖和一致性。示例最好来自真实任务,既有典型 case,也有边界 case,输出格式必须和最终要求一致。数量通常 3-5 个就够,再多会增加 token 成本和干扰。输入分布稳定用静态示例,长尾多可以用动态检索示例。最终要靠评估集验证,而不是凭感觉选例子。面试回答详解,知其所以然
Few-shot 示例不是越多越好,而是要用最少 token 传递最多任务信号。
1. 好示例的标准
- 真实:来自真实任务分布或脱敏后的线上样例。
- 代表性:覆盖主流输入类型,而不是全选简单 case。
- 边界性:包含容易混淆、拒答、空值、异常格式等场景。
- 一致性:示例输出格式、字段名、语气和判断标准完全一致。
- 可维护:每个示例知道解决什么问题,能被替换和回归测试。
2. 示例数量
常见策略是先用 1 个示例展示格式,再用 3-5 个示例覆盖主要边界。复杂分类或长尾任务可以更多,但要警惕 token 成本、上下文挤占和示例互相干扰。
3. 静态 vs 动态
- 静态 few-shot:固定示例放在模板里,稳定、简单、缓存友好,适合输入分布稳定的任务。
- 动态 few-shot:根据当前输入从示例库检索最相关样例,适合输入多样、长尾多的任务。
动态示例要注意不要只选“最相似”,还要保证标签和边界覆盖,否则容易把模型带偏。
4. 顺序设计
示例顺序会影响模型输出。一般建议:
- 简单到复杂。
- 标签尽量均衡交错。
- 最重要的边界示例靠近真实输入。
- 示例格式与最终输出完全一致。
5. 评估和迭代
每次改示例都要跑固定评估集,观察准确率、格式合规率、拒答率、成本和延迟。线上失败样例可以进入候选示例库,但不要不加筛选地越堆越多。
面试官追问3个问题
追问一:示例标签写错会怎样?
- 考察点:是否理解示例的任务定位作用。
- 回答方向:模型可能仍识别任务和格式,但边界判断会受影响;生产示例仍应保证正确。
追问二:动态 few-shot 怎么避免召回偏差?
- 考察点:检索和评估能力。
- 回答方向:相似度之外加入类别均衡、边界覆盖、去重和最大 token 限制,并用评估集验证。
追问三:失败样例要不要都加进 Prompt?
- 考察点:是否理解示例膨胀风险。
- 回答方向:不要全加。应聚类失败类型,选少量代表性样例或改约束规则。
扩展知识
示例选择清单
text
这个示例是否真实?
是否覆盖一个独特边界?
输出格式是否完全一致?
是否会引入错误口径?
是否值得占用这些 token?