返回专辑
·Johan·3 分钟阅读

Shadow deploy 与 p99 latency SLA

离线涨点不上线,多半是 val 分布与生产不一致、latency 超标或 operating threshold 未重调——A/B 要看业务指标和 slice,不只看 mAP。

Shadow deploy 与 p99 latency SLA

1. 离线涨 2 点 mAP,上线没变化

新 detector offline val mAP 52.1 → 54.3,A/B 一周业务指标无显著差异——查下来三道关没过:val 分布与生产不一致(离线用 test 增广、线上光照不同)、p99 latency 超标(模型更大,timeout 增多)、operating threshold 未在部署域重调(offline 最优 threshold 在线上 calibration 漂移)。离线 metric 是必要条件,不是上线充分条件。

2. Shadow deploy

线上 shadow:新模型 parallel infer 不 serving,log disagreement rate 和 latency。旧模型仍出结果,用户无感。对比同一 request 上两模型 output diff、confidence 分布、slice 级差异——比离线 batched eval 更接近真实分布。

shadow 期重点看:p99/p999 latency 是否超 SLA;disagreement 是否集中在某 slice(夜间、某相机);新模型 error 是否比旧模型更「自信」(calibration 退化)。

3. A/B 与业务 metric

小流量 A/B 对比 business metric:点击率、人工复核率、误报成本——不是 offline mAP。ML metric 与业务 metric 可对齐也可背离:mAP 涨但 false positive 在 costly slice 增加,业务反降。

python
from torch.utils.benchmark import Timer
t = Timer(stmt='model(x)', globals={'model': model, 'x': x})
print(t.blocked_autorange())

ONNXRuntime / TensorRT 测 p99,用生产 input size 和 batch=1(若 serving 单请求)。

4. 上线前 checklist

部署域 hold-out 上 metric + calibration(ECE)。p99 latency ≤ SLA,含 pre/post processing。threshold 在部署域重搜,不沿用 offline val。rollback 预案:旧模型 checkpoint 一键切回。监控:business metric、error rate、latency 分位数。

5. 失败模式

offline 用 test 增广而线上 raw input → 分布 shift。模型更大 → timeout、队列堆积。只报 aggregate mAP → slice 退化未发现。无 rollback → 事故窗口长。

6. 案例:latency 超标抵消精度 gain

某模型 mAP 涨 1.8 但 p99 延迟涨百分之四十,队列 timeout 增多,有效吞吐降——业务指标反降。shadow 期应同时盯精度与延迟,不单独庆祝 offline 涨点。

7. 验收

  • shadow 期 disagreement 与 latency 有 log,可复盘。
  • A/B 有 business metric 显著性(或等价决策规则)。
  • threshold 在部署域 fit,非 offline 直接搬。
  • rollback 演练过,RTO 可接受。
  • slice 级 metric 无 silent regression。

8. 落地与衔接

上线流程固定影子部署、小流量对比、再全量,每阶段同时盯离线指标、百分之九十九延迟与业务关键绩效。阈值与校准在部署域重搜,写入推理配置与模型同版本。回滚脚本与旧检查点保留在同一发布包,恢复时间演练进季度清单。切片级回归门槛与总体指标并列,关键场景跌超阈值则阻断推广,即使平均精度总体上涨。文档写清各阶段通过标准,避免口头「感觉更好」。

9. 案例复盘

某检测器离线平均精度涨一点八,影子期百分之九十九延迟涨百分之四十导致队列超时,业务人工复核率反升。回滚到旧模型后恢复服务等级,复盘把延迟与精度绑在同一仪表盘。下一版先减输入尺寸再影子验证,精度略降但延迟达标,对比实验业务指标才显著改善。离线涨点不再单独庆祝。该案例已写入上线评审材料,作为必讲项。

模型 A/B 是离线指标到线上价值的桥。Shadow 验分布和 latency;A/B 验业务结果。mAP 涨不上线,先查这三关,不继续堆 offline 实验。把 shadow disagreement 与 latency 分位数存档,便于事后解释为何离线更好却未推广。业务方签字前必须看到延迟分位数与切片指标,不能只看总体平均精度。推广决策须书面记录影子期与对比实验的关键切片结论,即使总体指标上涨,关键业务切片退化也应默认否决全量切换。 影子期须同时记录延迟分位数与关键切片指标,推广决策书面说明为何通过或否决。离线涨点若伴随延迟超标,默认不应进入小流量对比。

← 全部文章

johan's blog