ai-infra-interview-305

第 195 题:性能回归(regression)的自动化检测?

题目

性能回归(regression)的自动化检测?


完整讲解

一、性能回归的含义

回归:代码或环境变更后,性能变差(吞吐下降、延迟上升、显存增加等)而未及时发现。自动化检测:在 CI/CD 或定期任务中,对固定 benchmark(固定模型、数据、配置)跑性能测试,将当前结果与基线对比,若超出阈值则告警或阻断,要求排查后再合入或发布。

二、如何实现

基线:在「已知良好」的 commit 或版本上跑 benchmark,记录 吞吐、延迟、显存峰值 等作为基线(可存为 CI 产物或数据库)。每次变更:在 PR 或 nightly 中跑同一 benchmark,得到当前指标。比较:当前 vs 基线;若 回归超过阈值(如吞吐降 >5%、P99 升 >10%)则失败。环境:尽量固定硬件与驱动(同一 runner 或同一机型),减少噪声;或多次跑取中位数/均值。维度:可对多配置(batch、模型规模)各设基线,避免只测单一场景。

三、工程要点

Benchmark 要稳定、可复现(固定 seed、数据量、warmup);CI 里可设 allowlist(已知回归待修)或 只告警不阻断。结果可写入 Prometheus/Grafana 做趋势图;与代码 commit 关联便于定位引入回归的变更。

面试要点


记忆要点

  1. 回归 = 性能变差;自动检测 = benchmark + 基线对比 + 阈值。
  2. 基线固定;CI 每次跑同一 benchmark;环境尽量固定。
  3. 稳定可复现;结果可做趋势与 commit 关联。
返回模块 返回总览