离线、在线、统计与回归
本节目标
正确组合离线与在线证据,用配对比较和不确定性约束发布决策,并持续捕获回归。
直觉解释
离线集像可重复实验室,线上灰度像真实环境观察。前者擅长快速定位与回归,后者揭示真实分布和交互;任何一个单独使用都会留下盲区。
离线与在线回答不同问题
| 类型 | 优点 | 局限 | 适用 |
|---|---|---|---|
| 离线 | 可重复、快、适合逐提交 | 数据会过时,环境近似 | 单元、回归、候选筛选 |
| 在线灰度/A-B | 真实用户与流量 | 成本、风险、干扰因素 | 验证业务效果与新失败 |
| 生产监控 | 连续观察漂移/事故 | 指标多为代理、缺反事实 | 报警与挖掘新 case |
离线通过是进入线上验证的条件,不是线上成功的保证。线上实验前先设置安全 guardrail、曝光范围、停止条件和回滚;日志需最小化敏感数据。
样本波动与置信区间
一次 82% 对 80% 可能只是样本波动。应报告样本数、逐 case 结果与差值区间。置信区间的频率学解释是:若按同一方法反复抽样构造区间,指定比例的区间会覆盖真实参数;它不是“本次区间有 95% 概率包含真值”。
同一批 tasks 比较候选与基线时,应使用配对差值:每个 task 先算 candidate - baseline,再估计平均差和区间。bootstrap 可从这些配对差中有放回抽样,适合本课程的直觉演示;小样本、相关 trial、分层失衡和多重比较都会限制解释。
固定种子bootstrap的最小步骤是:保留个逐case配对差;有放回抽取个差值并求均值;重复预先冻结的次数;取分布两端分位数形成百分位区间。固定种子保证相同输入可复核,不会消除抽样假设。若case并非近似独立(同一会话/文档族、共享故障),应按family或集群抽样,不能把行当独立样本。
先定义要估计的对象(estimand)和抽样单位:是“目标任务总体上的平均差异”,还是“固定任务重复运行的可靠性”?前者通常以task或family为重采样单位,后者保留task × trial层级。把同一task的多次trial当成更多独立task,会人为缩窄区间。
在看结果前冻结主指标、关键切片、实际重要的差异门槛和停止规则。反复查看区间、尝试多个候选或切片后只报告赢家,会引入多重比较与可选停止偏差;应使用独立最终留出、适用的校正方法,或明确标为探索性发现并复测。区间跨过0只表示当前证据未清楚区分方向,不等于证明等效;等效结论需要预先定义可接受差异界限和相应设计。
随机系统要多 trial
同一 task 重复运行并从干净环境开始,记录成功率与失败模式。共享缓存、残留文件和同一个外部故障会让 trial 不独立。对 Agent 还要固定或记录模型设置、工具版本、预算、重试和时间窗口。
pass@k回答“次中至少一次成功”,pass^k回答“次全部成功”;只有当产品真的允许多次尝试或要求连续可靠时,它们才对应决策。由单次成功率推导1-(1-p)^k或$p^k依赖同分布且独立的Bernoulli试次;共享状态、重试适配和供应商故障会破坏该假设。工程报告应优先保留逐trial结果、实际重试策略和成功所需成本,而不是只展示一个乐观的pass@k`。
回归门禁
- 每个已确认事故生成最小、脱敏、确定性 case。
- 分成快速 smoke、关键风险、完整质量套件。
- 冻结基线、数据与 grader 版本;候选使用相同条件。
- 先检查关键 gate,再看配对差和各层结果。
- 不确定时扩大样本或人工复核,不用“差一点”包装成提升。
- 上线后将新分布与失败回灌,但保留历史版本用于趋势解释。
持续评测闭环
持续评测不是“每次提交跑同一个总分”:
- 快速确定性smoke在每次变更运行;
- 冻结回归集在合并或候选构建时运行;
- 成本较高的人工/模型grader按风险与采样计划运行;
- 通过离线门后,在线灰度使用独立安全、质量、成本和延迟guardrail;
- 运行监控发现的新失败只可先成为受控的分诊候选;经人工确认、脱敏、去重、许可与最小复现后,才由数据/评测负责人决定是否进入开发或回归集,详见 离线到线上证据交接与回归闭环;
- dataset、rubric或grader改版时重跑可比基线并标注曲线断点。
MLflow当前latest文档明确分开两条不可互操作的评测路径:经典ML使用mlflow.models.evaluate()与EvaluationMetric,GenAI使用mlflow.genai.evaluate()与Scorer;旧mlflow.evaluate已在MLflow 3中弃用。基于实时Trace的自动评测又是另一条能力,当前只支持LLM judges、不支持code-based scorers:创建或启用judge时,最多只回看一小时前的Trace/会话;仅更新judge配置不会触发已经评估过的Trace重评。之后的新记录仍会按judge的过滤与采样配置异步处理。这些都是工具现状,不是“在线评测只能用模型”的通用规则;采用时固定版本并验证迁移。
常见错误与排查
- 离线通过就直接全量:先设置线上 guardrail、停止与回滚。
- 比较两组总体均值但忽略同 case 配对:保留逐 case 差值。
- 生产失败只修代码不入回归:脱敏后建立最小复现与版本。
- 同时试很多候选并持续偷看测试:冻结主比较,保留独立最终留出或将结论标为探索性。
练习
- 对 10 个 task 的候选/基线 0-1 结果手算配对差均值。
- 列出两个会破坏 trial 独立性的环境因素。
自测
区间跨过 0 是否证明两者完全相同?不是;只是当前设计和样本不足以给出清晰方向。
小结与下一步
先进入 评测报告、审计与治理,再学习 离线到线上证据交接与回归闭环,最后完成离线项目。
参考资料
- NIST/SEMATECH: What are confidence intervals?(核对于2026-07-22)
- NIST AI RMF Core: Measure(核对于2026-07-22)
- MLflow Automatic Evaluation(
latest文档核对于2026-07-22;创建/启用一小时回看与配置更新不重评的边界) - MLflow Evaluation APIs(
mlflow.models.evaluate()与mlflow.genai.evaluate()的边界及旧API迁移,核对于2026-07-22) - Anthropic: isolate trials and maintain evals(发布于2026-01-09;核对于2026-07-22)
- OpenAI: A shared playbook for trustworthy third party evaluations(发布于2026-05-29;系统预算、有效性检查与每成功任务成本)
- Koehn 2004: Statistical Significance Tests for Machine Translation Evaluation(原始论文,核对于2026-07-22)