0Pricing
Learn AI with Python · 课时

监控生产环境中的模型性能

数据漂移检测、模型退化信号、重新训练触发条件,以及 evidently 库。

监控生产环境中的模型性能 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。

为什么要在生产环境中进行监控?

模型在上线时表现良好,但随着现实世界发生变化,其性能可能会悄然下降。监控能够及早检测到这种漂移,避免业务指标在不知不觉中大幅下滑,从而让您知道何时需要重新训练。

数据漂移与概念漂移

  • 数据漂移:输入分布发生变化(例如新客户构成发生变化)。
  • 概念漂移:输入与目标之间的关系发生变化(例如预测客户流失的因素发生变化)。

两者都会损害准确率,但监控它们的方式不同。

用于检测数据漂移的 PSI

总体稳定性指数(PSI)会比较某个特征当前的分布与基线分布。将两者分箱,然后对所有分箱中的 (now% - base%) * ln(now% / base%) 求和。

解读 PSI 值

经验规则如下:PSI < 0.1 表示没有显著变化,0.1-0.25 表示中等变化(需要调查),> 0.25 表示重大变化(可能需要重新训练)。PSI 按特征分别计算。

import numpy as np

def psi(base, now, bins=10):
    edges = np.percentile(base, np.linspace(0, 100, bins + 1))
    b_pct = np.histogram(base, edges)[0] / len(base) + 1e-6
    n_pct = np.histogram(now, edges)[0] / len(now) + 1e-6
    return np.sum((n_pct - b_pct) * np.log(n_pct / b_pct))

用于分布比较的 KS 检验

Kolmogorov-Smirnov(KS)检验用于比较两个连续分布。较小的 p 值表示生产环境分布与训练分布存在显著差异,说明可能发生了漂移。

from scipy.stats import ks_2samp

stat, pvalue = ks_2samp(train_feature, prod_feature)
if pvalue < 0.05:
    print("Distribution drift detected")

PSI 与 KS

  • PSI:单个且易于解释的数值,非常适合仪表板和阈值设置。
  • KS:带有 p 值的统计假设检验,对于连续特征更加严谨。

许多团队会将两者并列报告。

什么是 Evidently?

Evidently 是一个开源库,可以自动生成漂移和质量报告。您无需手动编写每个指标,只需组合预设检查,就能获得 HTML/JSON 报告。

# pip install evidently
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset

构建 DataDriftPreset 报告

DataDriftPreset 会对所有列执行完整的漂移测试套件,将参考(训练)数据集与当前(生产)数据进行比较。

report = Report(metrics=[DataDriftPreset()])
report.run(
    reference_data=train_df,
    current_data=prod_df
)
report.save_html("drift_report.html")

以编程方式提取结果

将报告导出为字典,以便传递给告警逻辑,从而让监控按计划自动运行,无需人工值守。

result = report.as_dict()
drift_share = result["metrics"][0]["result"]["dataset_drift"]
print("Dataset drift flag:", drift_share)

对准确率下降发出告警

当您拥有真实标签时,请跟踪线上准确率,并在其低于阈值时触发告警;这是表明应当重新训练的最直接信号。

THRESHOLD = 0.85

if live_accuracy < THRESHOLD:
    send_alert(f"Accuracy dropped to {live_accuracy:.2f}")

闭环

良好的监控必须与行动相连接:检测到漂移 -> 发出警报 -> 触发重新训练流程(使用前面课程中的 Makefile/注册表)-> 部署新版本。没有响应方案的监控只会制造噪声。

快速检查

请检验您对监控的掌握情况。

回顾

您已经完成了生产模型的监控:PSI 和 KS 检验可以检测数据漂移,Evidently 通过 DataDriftPreset 自动生成报告;当准确率低于阈值时,您会发出警报并触发重新训练。至此,MLOps 课程结束。下一门课程:使用 FastAPI 提供 AI 模型服务。

常见问题解答

「监控生产环境中的模型性能」课时是免费的吗?

是的 — 「监控生产环境中的模型性能」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。

「监控生产环境中的模型性能」这节课中我会学到什么?

数据漂移检测、模型退化信号、重新训练触发条件,以及 evidently 库。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「监控生产环境中的模型性能」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 MLflow 跟踪实验
  2. 模型注册与版本管理
  3. 构建可复现的机器学习 pipeline
  4. 监控生产环境中的模型性能
← 返回 Learn AI with Python