

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 監控
<a name="monitoring"></a>

當模型已在生產中並提供商業價值時，請執行持續檢查，以識別何時必須重新訓練模型或對其採取動作。

您的監控團隊應該主動採取行動，而不是反應，以更了解環境的資料行為，並識別資料偏離的頻率、速率和突發性。團隊應該在資料中識別新的邊緣案例，這些案例可能會在訓練集、驗證集和其他邊緣案例配量中代表性不足。他們應該存放服務品質 (QoS) 指標、使用警示在發生問題時立即採取行動，並定義擷取和修改目前資料集的策略。這些實務從記錄模型的請求和回應開始，以提供故障診斷或其他洞見的參考。

理想情況下，資料轉換應在處理期間記錄於幾個關鍵階段：
+ 在任何類型的預處理之前
+ 在任何類型的特徵存放區擴充之後
+ 在模型的所有主要階段之後
+ 在模型輸出上任何類型的失真函數之前，例如 `argmax`

下圖說明這些階段。

![\[記錄資料轉換的模型\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/ml-operations-planning/images/logging-model.png)


您可以使用 [SageMaker AI Model Monitor](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-capture.html) 自動擷取輸入和輸出資料，並將其存放在 Amazon Simple Storage Service (Amazon S3) 中。您可以將日誌新增至[自訂服務容器](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html)，以實作其他類型的中繼記錄。

從模型記錄資料後，您可以監控分佈偏離。在某些情況下，您可以在推論後立即取得地面實況 （正確標記的資料）。常見的範例是預測要向使用者顯示之最相關廣告的模型。一旦使用者離開頁面，您就可以判斷他們是否按一下廣告。如果使用者已按一下廣告，您可以記錄該資訊。在此簡單範例中，您可以使用可在訓練和部署中測量的指標，輕鬆量化模型的成功程度，例如準確性或 F1。如需有關您已標記資料之案例的詳細資訊，請參閱 SageMaker AI 文件中的[監控模型品質](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality.html)。不過，這些簡單的案例並不常見，因為模型通常設計為最佳化數學上方便的指標，這些指標僅代表實際的業務成果。在這種情況下，最佳實務是在生產環境中部署模型時監控業務成果。

考慮檢閱排名模型的情況。如果 ML 模型的定義業務成果是在網頁頂端顯示最相關且實用的評論，您可以新增按鈕來衡量模型的成功，例如「這麼做有幫助嗎？」 每次檢閱。測量此按鈕的點擊率可能是業務成果指標，可協助您測量模型在生產中的表現。

若要監控 SageMaker AI 中輸入或輸出標籤的偏離，您可以使用 SageMaker AI Model Monitor [的資料品質](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-quality.html)功能，同時監控輸入和輸出。您也可以[建置自訂容器](https://aws.amazon.com/blogs/machine-learning/bring-your-own-container-to-project-model-accuracy-drift-with-amazon-sagemaker-model-monitor/)，為 SageMaker AI Model Monitor 實作自己的邏輯。

監控模型在開發時間和執行時間接收的資料至關重要。工程師不僅應監控結構描述變更的資料，還應監控分佈不相符的資料。偵測結構描述變更比較簡單，而且可由[一組規則實作](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-interpreting-violations.html)，但[分佈不相符](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-bias-drift.html)通常較為棘手，尤其是因為需要您定義閾值來量化何時發出警示。在已知受監控分佈的情況下，通常最簡單的方法是監控分佈的參數。在常態分佈的情況下，即平均值和標準差。其他關鍵指標，例如遺失值的百分比、最大值和最小值也很有用。

您也可以建立持續監控任務，以取樣訓練資料和推論資料，並比較其分佈。您可以為模型輸入和模型輸出建立這些任務，並根據時間繪製資料，以視覺化任何突然或逐漸偏離。下圖說明此項目。

![\[監控漂移的訓練和推論資料\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/ml-operations-planning/images/detect-drift.png)


為了更了解資料的偏離描述檔，例如資料分佈的顯著變更頻率、速率或頻率，我們建議您持續部署新的模型版本並監控其效能。例如，如果您的團隊每週部署新的模型，並觀察到模型效能每次都大幅改善，他們可以判斷應該至少在一週內交付新的模型。