换了新模型 / 新 prompt,怎么科学地做回归测试和 A/B?

Q5-08评测与可观测高频回归测试A/B 实验配对检验McNemar置信区间灰度护栏指标三条线

谁在问:二面;模型/prompt 迭代频繁的团队必问

口语化问法

  • 上游出了新模型,你们怎么决定换不换?
  • 改了 prompt 怎么验证是变好了?评测集涨了两个点你敢发吗?
  • 你们做 A/B 吗?怎么设计的,多久看结论?

考察意图

这题看着基础,其实是本章统计直觉的总检验。面试官在判断:

  1. 你有没有把「涨了两个点」当结论。 这是最容易一句话问倒人的地方。
  2. 你知不知道换模型换的不只是质量。 成本、延迟、工具调用行为、拒答率、输出长度全都会变,只盯一个准确率的人会在上线后被别的指标打脸。
  3. 你能不能把离线、线上、业务三条线摆清楚,并说出它们矛盾时信谁。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

换模型或改 prompt 之后,我们会在评测集上重跑一遍,看指标有没有掉,没掉就可以发。大一点的改动会做 A/B,把流量按比例分给新旧两版,跑一段时间看哪版的用户反馈和业务指标更好。另外也会先小流量灰度,观察一下没问题再全量。

流程骨架是对的:重跑 → A/B → 灰度。所以能过。

它止步于 60 分的原因很集中:「有没有掉」是一个没有误差概念的判断。掉 1 个点算掉吗?而且没提成本延迟这些同样会变的东西,也没说三条线冲突时怎么办。

90

90 分答案(有生产经验的回答)

我按三条线来组织,因为它们回答的是三个不同的问题。

线 A  离线评测集     固定输入 / 有标注 / 可重复   →  决定「能不能发」
线 B  线上采样评测   真实输入 / 无标注 / 分布在动 →  决定「发完之后有没有变坏」
线 C  真实业务指标   滞后但唯一真实               →  终审

三条线只能互相佐证,不能互相替代。 后面我会说它们矛盾时怎么判。

一、线 A:离线回归,重点是过统计关。

  • 同一套题、两个配置各跑一遍,这是配对数据,所以要用配对检验:二元判据用 McNemar,连续分用配对 t,Likert 用 Wilcoxon。配对检验只看结论发生翻转的那些题,同样样本量能分辨的差异比两组独立比例小得多。
  • 要有误差概念:n=100、基线 80% 时,95% 置信区间大约 ±7.8 个百分点。涨 2 个点连半个置信区间都没走出去。
  • 同配置要重跑 k 次(3~5 次)报均值和方差。2026 年这一条尤其重要——Opus 4.7+ / Sonnet 5 上传非默认采样参数会直接 400,temperature=0 这条钉住随机性的老路已经没了,单次跑分本身就是一次采样。
  • 要看逐类别的变化,不只看总分。 总分持平但「拒答类」全崩、「多轮类」提升,是完全不同的两件事,而总分会把它们抵消掉。

二、换模型比换 prompt 要看的东西多得多。 只比准确率会翻车。至少还要并列:

  • 成本:单次 token 数(尤其推理模型的思考 token)、单价、缓存命中率变化;
  • 延迟:P50 / P95,流式首字延迟;
  • 行为:工具调用次数与轨迹(直接影响成本和副作用)、拒答率、输出长度分布、结构化输出解析成功率;
  • 格式脆性:老 prompt 里针对旧模型写的那些约束,新模型可能不需要,也可能反过来失效。

还有一条 2026 专属的:effort 档位是一个独立变量。「换模型」和「换档位」要分别做实验,不能一起改——否则你不知道收益来自哪一边。

三、线 B / 线 C:灰度与 A/B。 顺序上我会走影子流量 → 小流量 A/B → 全量

  • 影子流量(新版跟着跑但不返回给用户)成本最低、零风险,能提前拿到成本/延迟/解析失败率这些不需要用户判断的指标;
  • A/B 的分流单位必须是用户或会话,不是请求。按请求分流会让同一个用户在两版之间跳,多轮对话直接错乱,指标也被污染;
  • 要设护栏指标(guardrail metrics):即使主指标赢了,只要拒答率、转人工率、P95 延迟、单请求成本任一越线就停;
  • 观察期要覆盖完整的业务周期(至少含一个周末),不能周三上线周四看结论;
  • 样本量要事先算,别看到显著就停——反复偷看会让假阳性率大幅上升

四、三条线矛盾时怎么判:

现象 判断
线 A 涨、线 B 不动 评测集与线上分布脱节,先修评测集
线 B 涨、线 C 不动 在优化 judge,不是在优化产品
线 A 不动、线 C 涨 收益可能来自别的变更,别把功劳记在模型上
线 A 掉一点、线 C 明显涨 信线 C,但必须查清线 A 掉在哪一类,确认不是安全/合规类

一句话原则:线 A 有一票否决权(安全与合规类用例),线 C 有最终解释权。


追问链

图 1 · 五层追问树:面试官会往哪儿挖
追问不问方法,问的是「你凭什么说它变好了」

  1. 评测集上涨 2 个点,你到底怎么判断能不能发?

    期望① 算置信区间:n=100、基线 80% 时 95% 区间约 ±7.8pt涨 2 个点连半个区间都没走出去 → ② 配对检验(McNemar)只看结论翻转的样本 → ③ 同配置重跑 3–5 次看方差,方差有 3 个点这 2 个点就没意义。最后逐类别拆解
    信号「涨了就能发」 → 本章最典型的失分点;主动说「先看变差的那批」 → 发布前最有性价比的十分钟
  2. A/B 怎么设计?分流单位、样本量、观察期。

    期望分流单位是用户或会话,不能请求级 —— 按请求分流同一用户会在两版间跳,多轮直接错乱;样本量事先算、不反复偷看(要中途看就上序贯检验);观察期至少含一个周末;护栏指标配停止规则。顺序是先影子流量再 A/B
    信号说「按请求随机分流」 → 多轮场景直接错乱、指标被污染;提到影子流量 → 强信号,说明关心风险成本比
  3. 如果离线评测集涨了,但 A/B 上没赢,你信哪个?

    期望先不选边,先找解释:① 评测集与线上分布脱节(最常见);② 判据与真实效用不一致(离线判「要点命中」、用户要「能直接用」);③ A/B 本身没效力。顺序倒过来:③ 最便宜先验 → 再查 ① → 最后审 ②。输掉的那批样本正好捞进评测集
    信号直接说「信 A/B」 → 结论对但没解释力,还错过了修评测集的机会;能给出「先查 A/B 效力」这个最便宜的排除顺序 → 强信号
  4. 只改了一句 prompt,也要走这一整套吗?

    期望不用,按风险 × 可逆性分级:低风险可逆(文案、格式微调)→ 冒烟集 + 门禁集直接发;中风险(改判断逻辑、加新工具、改检索策略)→ 完整离线回归 + 小流量灰度;高风险(涉钱、涉权限、合规文本)→ 全套 + 人工复核。门禁集每次都要跑
    信号「所有改动都走全套」 → 团队会被流程拖死,最后所有人绕过流程;能按风险 × 可逆性分级 → 强信号
  5. 上游通知模型 30 天后下线必须迁移,候选模型在你的评测集上低 3 个点,怎么办?

    期望配对检验 + 重跑看方差:方差本身有 2 个点,这 3 个点可能根本不显著 —— 迁移恐慌多半是被单次跑分吓出来的。掉在哪几类?能用改 prompt、约束解码、校验重试补上的,实际差距远小于 3 个点:老 prompt 是对着老模型调的,直接搬本来就会掉。30 天倒排:影子流量 → 适配攻坚 → 小流量 A/B → 全量留回滚窗口
    信号直接说「那就用低 3 个点的凑合」 → 没意识到差距很可能是适配问题不是能力问题;能把适配排前面、A/B 放后面 → 顶级回答
层次分布很反常:第 1 层就见真章 ——「涨 2 个点」答不出置信区间和配对检验当场出局;中间三层比的是流程手感,第 5 层换成「30 天必须迁移」的倒排题。

评分要点

  1. 三条线组织回答,并说得出它们矛盾时的判断口径
  2. 离线回归过统计关:配对检验(McNemar / 配对 t / Wilcoxon)+ 置信区间 + 重跑 k 次报方差
  3. 知道 temperature 已不可用于钉方差,所以必须靠重跑
  4. 换模型要并列成本 / 延迟 / 工具调用行为 / 拒答率 / 解析成功率,不只看质量
  5. 知道 effort 是独立变量,不能和换模型一起改
  6. A/B:用户级分流、事先算样本量、不反复偷看、护栏指标 + 停止规则、覆盖完整业务周期
  7. 影子流量这一步
  8. 风险 × 可逆性决定走多重的流程,而不是一刀切
  9. 发布前人工过一遍变差的那批样本

常见错误

「评测集没掉就能发」没有误差概念,「没掉」不是一个统计判断
「涨了两个点,效果挺明显」n=100 时置信区间约 ±7.8pt,这句话没有依据
只比平均分,不做配对检验白白丢掉配对数据带来的效力
换模型只看准确率成本、延迟、工具调用次数、拒答率都会变
A/B 按请求分流多轮体验错乱,指标被污染
看到显著就停止实验反复偷看会大幅抬高假阳性率
没有护栏指标主指标赢了但延迟和成本崩了,照样上线
所有改动都走全套流程团队会绕过流程,最后等于没有流程
换模型时直接沿用老 prompt 并据此判定新模型更差掉分很可能来自未适配,不是能力

关联学习