Skip to content

高频面试题

在实际项目中如何进行提示词的 AB 测试和迭代?

这题考的是产品化能力:Prompt 不是上线后凭感觉改,而是要像功能实验一样做版本、指标、流量、显著性和回滚。

适合阶段:AI 产品 / Prompt 工程化核心能力:实验设计 · 灰度发布 · 指标归因

面试官角度分析,想考什么

  • Prompt AB 测试和普通功能 AB 测试有什么不同?
    考察是否理解随机性、模型版本、上下文差异和评估噪声。
  • 实验指标怎么定?
    考察是否能把业务指标和模型质量指标同时纳入。
  • 怎么避免实验结论不可靠?
    考察分流一致性、样本量、置信区间和人工抽检意识。
  • Prompt 迭代怎么回滚?
    考察版本管理、配置化发布和监控闭环。

可直接抄走的 30 秒参考答案

text
我会先把 Prompt 做版本化,明确这次实验只验证一个假设,比如提升 JSON 合法率或降低幻觉率。上线前先跑离线评估集,通过后按用户或会话稳定分流做小流量 AB。指标上有主指标,也有成本、延迟、安全、拒答率这些护栏指标。实验结束后记录 Prompt diff、指标变化和失败样本,成功就灰度放量,失败就回滚并把样本沉淀进评估集。

面试回答详解,知其所以然

Prompt AB 测试不是“让两个人各聊几句看看哪个好”。它要控制变量,否则结论很容易被模型随机性、用户分布或上下文差异污染。

1. 先明确实验假设

一个好的 Prompt 实验要有可验证假设:

  • “加入结构化输出约束后,JSON 解析失败率降低。”
  • “增加拒答边界后,安全违规率降低,但转人工率可能升高。”
  • “缩短 Prompt 后,延迟降低,同时答案准确率不下降。”
  • “加入 Few-shot 示例后,长尾意图识别准确率提升。”

不要同时改十处。一次实验最好只验证一个主要变化,否则赢了也不知道为什么赢。

2. 固定实验变量

需要固定或记录的变量包括:

  • Prompt 版本。
  • 模型版本和推理参数。
  • RAG 召回策略和知识库版本。
  • 工具列表和工具 schema。
  • 输出解析器和后处理逻辑。
  • 用户分流规则。

线上实验建议按用户或会话稳定分流,而不是按请求随机分流。否则同一个用户前后体验不一致,也会污染多轮对话上下文。

3. 指标要分主指标和护栏指标

主指标取决于实验目标:

  • 任务成功率。
  • 首次解决率。
  • 结构化输出通过率。
  • 人工审核通过率。
  • 用户满意度或投诉率。

护栏指标用来防止“局部变好、整体变坏”:

  • 平均 token 成本。
  • P95 延迟。
  • 安全违规率。
  • 拒答率和误拒率。
  • 重新提问率。
  • 转人工率。

例如一个客服 Prompt 让回答更谨慎,投诉率下降了,但转人工率暴涨,说明它可能不是更聪明,而是更保守。

4. 离线先筛,线上再验证

推荐流程:

text
候选 Prompt
-> 离线评估集回归
-> Shadow mode 回放真实流量
-> 小流量 AB
-> 扩大灰度
-> 全量发布或回滚

离线评估负责排除明显坏版本,线上 AB 负责验证真实用户分布下的效果。两者不能互相替代。

5. 迭代要沉淀资产

每次实验结束要记录:

  • Prompt diff。
  • 实验假设。
  • 流量范围和时间窗口。
  • 指标变化。
  • 失败样本分类。
  • 是否上线、回滚或继续实验。

否则团队会反复试同样的方向,Prompt 经验无法积累。

面试官追问3个问题

追问一:Prompt 实验需要统计显著性吗?

  • 考察点:是否理解线上实验基本方法。
  • 回答方向:关键业务指标需要看置信区间和样本量,低风险内部任务可以更偏工程回归;无论如何不能用几个样本下结论。

追问二:AB 结果和人工评审冲突怎么办?

  • 考察点:是否能处理指标矛盾。
  • 回答方向:先确认评审标准和线上指标是否衡量同一目标,再看样本分布;必要时按场景分层分析,不直接用一个总分覆盖所有问题。

追问三:Prompt 版本要不要热更新?

  • 考察点:工程发布意识。
  • 回答方向:可以配置化热更新,但必须有审批、版本记录、回滚和灰度;高风险 Prompt 不应绕过发布流程直接改线上。

扩展知识

Prompt AB 测试的特殊难点

  • 模型输出有随机性,单样本结果不稳定。
  • 用户输入分布变化快,节假日、活动、产品发布都会影响结果。
  • 多轮对话有上下文污染,不能简单按单请求评估。
  • RAG 和工具调用会引入额外变量。

常见实验错误

  • 同时改 Prompt、模型和检索策略,无法归因。
  • 只看转化率,不看安全和成本。
  • 实验时间太短,样本量不足。
  • 只保留成功实验,不沉淀失败样本。

基于 MIT 协议开源