使用 Amazon SageMaker AI 與 MLflow 監控判別式機器學習模型
機器學習模型在生產環境中會因資料漂移和模型漂移而效能下降。本文介紹如何結合開源 Evidently 庫、Amazon SageMaker AI 和 MLflow,實現模型監控方案,包括生成監控報告、在 MLflow 中組織和比較結果、透過管道擴充套件以及觸發漂移通知。
機器學習模型在訓練完成後,其效果和精度會隨著時間推移而下降。消費者行為變化、新產品釋出、感測器技術升級以及經濟和政治環境的變動,都會改變模型在訓練時學到的模式和機率分佈。透過主動監控生產環境中部署的模型在準確性和基線統計方面的變化,可以在問題變得嚴重之前進行干預。模型監控可與人工智慧可觀測性工具結合,跟蹤延遲、應用可用性等指標,以識別整個系統中的問題。
本文聚焦於用於分類和迴歸的判別式機器學習模型。對於生成式人工智慧模型,請參閱《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 中視覺化結果。工作流包括以下步驟:
- 訓練作業:使用 Amazon S3 中的輸入資料訓練模型,同時計算模型指標並儲存到 MLflow。基線資料集單獨儲存於 S3,用於生產監控。
- 批次轉換:對生產工作負載進行推理,結果存入 S3。
- 處理作業:使用 Evidently 預設計算資料漂移和模型質量指標。注意 Evidently 計算模型指標,但不直接計算模型漂移(即指標差異),但可透過自定義程式碼擴充套件。
- 所有監控指標和 Evidently 報告儲存於 MLflow,可追蹤執行、比較結果、視覺化報告。
- 可選:檢測到漂移時,透過 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 步驟(計算監控指標),可定期排程。
該方案實現了全面的模型監控,確保生產環境中的模型保持預期效能。