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 步驟(計算監控指標),可定期調度。

該方案實現了全面的模型監控,確保生產環境中的模型保持預期性能。