跳到主要内容

离线评测、在线评测、A/B,什么时候该用哪一种

· 阅读需 5 分钟
一介布衣
全栈开发者 / 技术写作者

补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-08-31 09:10。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。

很多团队一提到“评测”,脑子里其实混着三件完全不同的事:

  • 用历史样本离线跑分
  • 在真实流量里观察效果
  • 把两个版本同时放给用户做 A/B

它们都叫评测,但解决的问题并不一样。
如果边界没分清,团队就很容易出现两种典型混乱:

  • 明明还没离线证明安全,就急着上 A/B
  • 明明用户体验已经变了,还只拿离线分数说话

所以我现在会先把这三种方法当成不同阶段的不同工具,而不是互相替代的同一种东西。

三种方法各自回答什么问题

离线评测:这个版本在已知样本上有没有更好

离线评测最适合回答的问题是:

  • Prompt v4 比 v3 好吗
  • 新模型在高风险样本上有没有退步
  • 新路由策略会不会让拒答率异常

它的优势是:

  • 便宜
  • 可复现
  • 能快速比较多个候选版本

但它的限制也很明显:

  • 只能看你已经收进来的样本
  • 很难反映真实用户行为变化
  • 对延迟、交互路径、转化影响感知有限

在线评测:系统在真实流量里有没有稳定工作

在线评测更像线上观察与对照,常见形式包括:

  • shadow mode
  • 小流量灰度
  • 线上人工抽检
  • 真实请求回放

它最适合回答:

  • 真流量分布下,错误是不是变了
  • 延迟、超时、回退比例有没有异常
  • 某些离线没覆盖到的边缘输入是不是开始暴露

也就是说,在线评测更偏“系统稳定性与真实使用反馈”,不只是“回答文本好不好”。

A/B:这个变化是否真的改善了用户结果

A/B 最适合回答的是最终业务问题:

  • 用户是否更愿意继续使用
  • 工单是否更快关闭
  • 人工介入率是否下降
  • 转化是否上升

它不是为了帮你 debug 质量,而是为了验证版本变化有没有真正改变业务结果

我一般按这个顺序走

如果是一个比较完整的 AI 功能改版,我通常会按下面的顺序推进:

  1. 先做离线评测
  2. 通过后进入线上小流量观察
  3. 确认线上稳定后,再决定要不要做 A/B

这个顺序的逻辑很简单:

  • 离线评测先过滤明显不合格版本
  • 在线评测先确认真实运行没出新问题
  • A/B 最后才承担业务决策验证

也就是说,A/B 不是第一道门,而是最后一道门。

什么情况下不该直接上 A/B

我现在很少支持“先放线上做 A/B 看看”。
只要出现下面几种情况,我都会先挡一下:

1. 高风险输出还没离线验证

例如医疗、金融、审核、客服路由这类场景,不能拿真实用户去帮你筛掉明显错误版本。

2. 版本差异还没搞清是质量问题还是系统问题

如果你连 Prompt、路由、模型、缓存、工具调用哪一层变了都没分清,上 A/B 只会让结果解释更难。

3. 观测能力还不够

没有流量标记、没有实验分组、没有关键指标埋点,A/B 跑了也只是热闹。

一个容易被误解的点:在线评测不等于 A/B

很多团队把“线上看指标”直接叫 A/B,其实不太准确。

例如你把新版本放到 5% 灰度流量里观察:

  • 超时率
  • 回退率
  • 人工纠正率
  • 用户投诉

这更像在线评测或 canary,而不是严格意义上的 A/B。
因为它重点是“先确认不会出事故”,不一定是在做随机分流下的业务效果对比。

三种方法适合的主要指标也不一样

离线评测常看

  • 准确率 / 召回率
  • rubric 分数
  • 高风险样本通过率
  • 结构化字段正确率

在线评测常看

  • 超时率
  • 回退比例
  • 失败类型分布
  • 人工复核通过率
  • 用户真实输入覆盖情况

A/B 常看

  • 留存
  • 点击/转化
  • 任务完成率
  • 工单关闭时长
  • 单次成功成本

如果你拿错指标,这三种方法很容易被误用。

我的一个现实判断

离线评测更像质量闸口,在线评测更像运行闸口,A/B 更像业务闸口。

这三道闸口都重要,但顺序不能乱。
顺序一乱,团队就会拿最贵、最慢、最危险的方式,去回答本来可以更早、更便宜解决的问题。

总结

离线评测、在线评测、A/B,什么时候该用哪一种?我现在的答案是:

  • 先用离线评测淘汰明显不行的版本
  • 再用在线评测确认真实系统是否稳定
  • 最后用 A/B 验证业务指标是否真的改善

它们不是竞争关系,而是接力关系。把顺序排对了,评测才会真正成为产品迭代的加速器,而不是一团混在一起的“上线看看”。