AI News HubLIVE
站内改写3 分钟阅读

使用 Amazon SageMaker AI 与 MLflow 监控判别式机器学习模型

机器学习模型在生产环境中会因数据漂移和模型漂移而性能下降。本文介绍如何结合开源 Evidently 库、Amazon SageMaker AI 和 MLflow,实现模型监控方案,包括生成监控报告、在 MLflow 中组织和比较结果、通过管道扩展以及触发漂移通知。

来源AWS Machine Learning Blog作者: Sandeep Raveesh-Babu

机器学习模型在训练完成后,其效果和精度会随着时间推移而下降。消费者行为变化、新产品发布、传感器技术升级以及经济和政治环境的变动,都会改变模型在训练时学到的模式和概率分布。通过主动监控生产环境中部署的模型在准确性和基线统计方面的变化,可以在问题变得严重之前进行干预。模型监控可与人工智能可观测性工具结合,跟踪延迟、应用可用性等指标,以识别整个系统中的问题。

本文聚焦于用于分类和回归的判别式机器学习模型。对于生成式人工智能模型,请参阅《Production-Ready Real-Time Monitoring Solution for LLMs on Amazon SageMaker AI Endpoint inference》。导致判别式模型质量下降的因素主要分为两类:

  • 数据漂移:指输入数据统计属性的变化。可能是上游数据源的意外变更(如某列从整数变为浮点数),也可能是全新产品线发布等复杂情况。可通过计算训练数据集的基线统计,并与生产环境随时间收集的数据的统计进行比较来衡量。
  • 模型漂移:指模型预测精度的变化,原因是模型学到的概率模式不再符合新数据。例如,经济好转导致消费者行为变化。可通过收集真实标签计算模型质量指标,并与训练时的指标对比来衡量。

Amazon SageMaker AI 是一项全托管机器学习服务,支持构建、训练、部署和管理判别式与生成式模型。但有时需要更定制化的方案,例如经济有效地管理整个建模生命周期、监控托管服务不支持的独特用例,或将监控集成到其他 UI 或可观测性管道。因此,本文介绍一种基于开源 Evidently Python 库和 Amazon SageMaker AI 与 MLflow 的模型监控架构,用于计算数据漂移和模型漂移。结果可集成到首选仪表板,用于向相关利益者发送警报,或触发自动模型重训练管道。

方案概述

该方案演示了如何从模型训练到部署实现模型监控。图 2 展示了批量推理用例的工作流,包括在 Slack 中告警以及在 MLflow 中可视化结果。工作流包括以下步骤:

  1. 训练作业:使用 Amazon S3 中的输入数据训练模型,同时计算模型指标并存储到 MLflow。基线数据集单独存储于 S3,用于生产监控。
  2. 批量转换:对生产工作负载进行推理,结果存入 S3。
  3. 处理作业:使用 Evidently 预设计算数据漂移和模型质量指标。注意 Evidently 计算模型指标,但不直接计算模型漂移(即指标差异),但可通过自定义代码扩展。
  4. 所有监控指标和 Evidently 报告存储于 MLflow,可追踪运行、比较结果、可视化报告。
  5. 可选:检测到漂移时,通过 Amazon SNS 发送邮件告警。

对于实时端点,类似架构但启用数据捕获,使用 Lambda 函数代替处理作业。实时端点方案也可用于 Amazon SageMaker Hyperpod,在端点、负载均衡器或模型 Pod 级别启用数据捕获。

实践指南

以下步骤基于批量转换方案。完整仓库包含实时端点示例。前提条件:SageMaker AI 域、Studio 中的 MLflow 应用、JupyterLab 空间(ml.t3.medium 足够)、克隆仓库。打开笔记本 predictive_ml_experimentation_data_model_monitoring_evidently.ipynb(使用 SageMaker Python SDK v3)。

模型训练与推理:示例使用 UCI 银行营销数据集(二分类:客户是否订阅定期存款)。清洗数据后,使用 XGBoost 训练模型,日志和指标发送到 MLflow,模型对象注册到 MLflow 模型注册表。训练数据集存为 S3 中的基线数据集,模型指标存于 MLflow 供后续模型漂移计算。

计算数据漂移与模型质量:Evidently 提供多种预设,如 DataDriftPreset、DataSummaryPreset。笔记本创建辅助函数将报告(HTML 和 JSON)保存到 MLflow 作为工件,并将特定漂移值提取为指标,方便比较和告警。每次数据漂移计算作为一次 MLflow 运行,可添加模型名称、训练作业名称等参数。模型质量使用 ClassificationPreset 计算准确率、精确率、召回率、F1 等。也可定制报告,例如对不平衡标签侧重精确率、召回率和 AUC。

在 MLflow 中可定制视图、比较运行。图 9 展示了多次数据漂移、模型质量和综合质量运行与原始训练运行并列,可查看漂移列数量、精度下降等。图 10 显示模型生命周期(包括实验、训练、部署、监控)的指标趋势。

管道扩展:第二个笔记本 batch_monitoring_pipeline.ipynb 展示如何通过管道扩展推理和监控。管道包含 Transform 步骤(输入数据通过模型推理)和 Processing 步骤(计算监控指标),可定期调度。

该方案实现了全面的模型监控,确保生产环境中的模型保持预期性能。