Q1535项目实战与企业级真题解析通用与软实力AgentAlpha 社区真题库约 7 分钟更新 2026-09-29

| Q79 | What are the different approaches for choosing examples for few-shot prompting

| Q79 | What are the different approaches for choosing examples for few-shot prompting

1️⃣ 考察意图

面试官想考察你对少样本提示(few-shot prompting)中示例选择策略的深度理解,而非仅背诵“选几个例子放进去”。这是典型的“工程取舍+系统设计”类问题,刁钻点在于:候选人常忽略示例选择对模型性能的显著影响(可差5-10个点),且无法区分静态与动态策略的适用场景。答好了能展示你对LLM推理的认知层次——从“随机扔例子”到“像训练数据采样一样设计示例”,体现系统化思维和实际调优经验。

2️⃣ 标准答

少样本示例选择的核心目标是:用最少示例最大化模型对当前输入的引导效果。主流策略分四类,各有trade-off:

  • 随机选择(Random Sampling)
  • 做法:从标注池中均匀抽取k个示例。
  • 优点:零成本、无偏差假设。
  • 坑:在类别不平衡或任务复杂时,示例可能全来自同一模式(如情感分析全是正面),导致模型偏置。
  • 实战解法:先做分层随机(按标签比例采样),至少保证类别覆盖。
  • 基于相似度检索(Similarity-based Retrieval)
  • 做法:用嵌入模型(如text-embedding-3-small)将测试输入和候选示例编码为向量,通过余弦相似度或HNSW索引召回Top-k。
  • 为什么这么做:直觉上,相似示例提供更相关的上下文。论文“What Makes Good In-Context Examples?”(Liu et al., 2022)证明,检索相似示例比随机高5-10%准确率。
  • 工程取舍:嵌入质量决定上限。用通用模型(如BGE)快但可能忽略任务语义;用微调模型(如DPR)准但需额外训练。
  • 落地坑:检索结果可能高度冗余(全是同一类),需加多样性约束(见下)。
  • 多样性选择(Diversity-based Selection)
  • 做法:通过聚类(如k-means)或最大边际相关性(MMR)选择覆盖不同语义簇的示例。
  • 为什么:相似检索易导致“近邻扎堆”,模型学不到边界案例。例如在NLI任务中,若所有示例都是“蕴含”,模型对“矛盾”类输入会失效。
  • 实战解法:MMR公式——score = λ * sim(input, candidate) - (1-λ) * max_sim(candidate, selected),λ控制相似与多样性的平衡,通常设0.5-0.7。
  • 基于难度选择(Difficulty-based Selection)
  • 做法:选择模型历史上预测错误或置信度低的示例(如用验证集校准)。
  • 适用场景:模型在特定模式(如长文本、否定句)上表现差,用这些示例做“对抗性示范”。
  • 坑:需要额外标注或模型推理日志,且可能引入噪声(错误示例本身质量差)。
  • 取舍:适合迭代优化阶段,不适合冷启动。
  • 动态选择(Dynamic Selection)
  • 做法:对每个测试输入实时检索示例,而非固定一组。
  • 实现:用检索器(如ColBERT-v2)或LLM自身(如Self-Select方法)决定示例。
  • 为什么:静态示例无法适应输入分布漂移。例如在客服场景,上午问“退款”和下午问“物流”需要不同示例。
  • 代价:延迟增加(每次推理多一次检索),且检索器需与LLM对齐(否则示例误导)。

总结:生产环境推荐“相似度+多样性”混合策略(如MMR),兼顾相关性与覆盖度;若延迟敏感,用分层随机兜底;若预算充足,上动态检索+难度加权。

3️⃣ 答题模板(30 秒电梯版)

“这个问题我从静态与动态两个维度、五类策略来回答。静态策略包括随机、相似度检索、多样性和难度选择;动态策略则根据输入实时检索示例。核心取舍是:相似度提升相关性但易冗余,多样性覆盖边界但可能降低相关性。实际落地时,我常用MMR混合相似度和多样性,并配合分层随机做冷启动。一句话:没有银弹,需根据任务类型和延迟预算做组合。”

4️⃣ 高频追问 & 应对

追问 1:你提到MMR,具体λ怎么调?有没有经验值?

λ控制相似度权重。经验上:若任务对示例格式敏感(如代码生成),λ设0.7-0.8;若任务需覆盖多种模式(如分类),λ设0.5-0.6。调参方法:在验证集上做网格搜索(步长0.1),用准确率或F1评估。注意:λ=1退化为纯相似检索,λ=0退化为纯多样性,通常最优在0.5-0.7之间。

追问 2:动态选择比静态好多少?代价能接受吗?

论文“Dynamic Few-Shot Learning”显示,动态选择在分布漂移场景下比静态高8-12%准确率。但代价是每次推理增加一次向量检索(约5-10ms)和一次LLM调用(如果示例需重排序)。生产建议:对延迟要求<200ms的接口,用静态+MMR;对离线批处理或非实时场景,上动态。

追问 3:如果候选示例池只有几十条,怎么选?

小池子下,随机和相似度差异不大(因为样本空间小)。优先用多样性选择:对几十条示例做聚类(k=3-5),每类选1-2条。若任务简单(如情感二分类),直接全量放进去(few-shot示例数不超过5-8个,否则超出上下文窗口或引入噪声)。

5️⃣ 避坑 · 常见错误答法

  • ❌ “示例越多越好,把池子里所有例子都放进去。”→ ✅ 示例数受限于上下文窗口(如GPT-4 8K),且过多示例会引入噪声或让模型“迷失”。通常3-5个示例最优,超过8个收益递减。
  • ❌ “相似度检索永远比随机好。”→ ✅ 相似度检索在任务语义明确时有效,但若嵌入模型与任务不匹配(如用通用embedding做医疗诊断),可能不如随机。需验证嵌入质量。
  • ❌ “动态选择太复杂,生产不用。”→ ✅ 动态选择在推荐、客服等场景广泛使用(如OpenAI的Assistants API)。复杂度可通过预计算向量索引和缓存检索结果降低。

6️⃣ 简历呼应

  • 如果你有RAG项目:从检索器与示例选择的相似性切入,强调你用过HNSW索引和MMR去重,并对比过不同嵌入模型(如BGE vs. OpenAI)对few-shot效果的影响。
  • 如果你只做过传统NLP:用“训练数据采样”类比——随机采样 vs. 难例挖掘 vs. 分层采样,迁移到few-shot示例选择,并提一句“我复现过Liu et al. 2022的论文”。
  • 如果你是校招无项目:聚焦“基于相似度检索”的论文复现,描述你用Sentence-BERT在AG News数据集上做实验,发现检索相似示例比随机高7%准确率,并分析了冗余问题。
  • “What Makes Good In-Context Examples?” (Liu et al., 2022) – 相似度检索的奠基论文
  • “Diverse Few-Shot Example Selection with MMR” – 多样性约束的经典方法
  • “Dynamic Few-Shot Learning with Retrieval-Augmented Generation” – 动态选择实战
  • “Self-Select: LLM-driven Example Selection” – 用LLM自身选示例
  • “OpenAI Cookbook: Few-shot Example Selection” – 工程实现指南(含代码)

—— 本场面试完 ——

我们不做玩具级 Demo 教学。训练营的作业是开源项目和论文——我们想陪伴你,做出能改变生活、最后改变世界的项目。