View a markdown version of this page

Amazon SageMaker Model Monitor の可用性の変更 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SageMaker Model Monitor の可用性の変更

注記

Amazon SageMaker Model Monitor は新規顧客に公開されなくなりました。既存のお客様は、引き続き通常どおりサービスを使用できます。 は Model Monitor のセキュリティと可用性の向上に AWS 引き続き投資しますが、新機能を導入する予定はありません。

オープンソースの SageMaker AI モニタリングソリューション + Amazon QuickSight + Amazon CloudWatch

オープンソースの Amazon SageMaker AI モニタリングソリューション、Amazon QuickSight ガバナンスダッシュボード、および Amazon CloudWatch の組み合わせは、Amazon SageMaker Model Monitor に代わるものです。

オープンソースの Amazon SageMaker AI モニタリングソリューション (aws-samplesGitHub 組織で公開) は、包括的なデータおよびモデル品質モニタリングのための高度にスケーラブルでカスタマイズ可能な基盤を提供します。 AWS マネージドサービス (Amazon SageMaker AI、Amazon Athena AWS Lambda、Amazon EventBridge、Amazon SQS、Amazon SNS、Amazon QuickSight) とオープンソースの ML ツール (SageMaker AI MLflow Apps と Evidently AI) を組み合わせて構築されています。ソリューションは 内で完全に実行 AWS アカウント され、少量のバッチワークロードから高スループットのリアルタイムエンドポイントにスケールされます。バッチ推論、リアルタイムエンドポイント、LLM 評価、GPU リソースオブザーバビリティを対象とし、独自のデータセット、モデル、ドリフトしきい値に合わせて調整します。

Amazon QuickSight による推論モニタリングは、リアルタイムおよび予測モニタリング用の本稼働推論パイプラインの上にガバナンスレイヤーを追加します。予測とデータ品質のメトリクスを継続的に追跡し、遅延したグラウンドトゥルースを処理し、エグゼクティブダッシュボードのドリフトとモデルパフォーマンスの傾向を視覚化します。このソリューションは、統計ドリフト分析用の SageMaker AI MLflow Apps と Evidently AI を Athena Iceberg データレイク、スケジュールされた分析用の EventBridge トリガー Lambda、SNS アラート、QuickSight ダッシュボードと組み合わせています。

Amazon CloudWatch は、呼び出しレイテンシー、モデルエラー、CPU/GPU 使用率、異常検出アラームを使用したカスタムメトリクスなど、SageMaker エンドポイントの拡張メトリクスによるシステムレベルと推論レベルのモニタリングを提供します。

Amazon SageMaker Model Monitor をオープンソースソリューション、QuickSight、CloudWatch に置き換える

このセクションでは、オープンソースの Amazon SageMaker AI モニタリングソリューション (SageMaker AI MLflow Apps + Evidently AI)、Amazon QuickSight ガバナンスダッシュボード、Amazon CloudWatch を使用して、既存の Amazon SageMaker Model Monitor デプロイを置き換える方法について説明します。 SageMaker MLflow Amazon QuickSight Amazon CloudWatch このソリューションは、Amazon SageMaker AI にデプロイされたモデルのデータ品質モニタリング、モデル品質モニタリング、バイアスドリフト検出、特徴量属性ドリフト検出、システムパフォーマンスモニタリングの同等かつ拡張された機能をサポートします。

Model Monitor の削除

新しいモニタリングスケジュールの Model Monitor を中止する

ワークフローに SageMaker Python SDK ModelQualityMonitorModelBiasMonitorまたは CreateMonitoringSchedule API の DefaultModelMonitor、、、または ModelExplainabilityMonitor クラスを使用したモニタリングスケジュールの作成が含まれている場合は、以下の「置き換えの設定」セクションで説明されている代替方法に移行します。

既存のモニタリングスケジュールを削除する

スケジュールのモニタリングは、定期的なスケジュールで処理ジョブインスタンス (例: ml.m5.xlarge) をスピンアップします。これらを削除すると、継続的なコンピューティングコストが削減されます。

SageMaker Python SDK の使用:

import sagemaker from sagemaker.model_monitor import DefaultModelMonitor session = sagemaker.Session() # List all monitoring schedules schedules = session.sagemaker_client.list_monitoring_schedules() # Delete each schedule for schedule in schedules['MonitoringScheduleSummaries']: schedule_name = schedule['MonitoringScheduleName'] print(f"Deleting monitoring schedule: {schedule_name}") session.sagemaker_client.delete_monitoring_schedule( MonitoringScheduleName=schedule_name )

の使用 AWS CLI:

# List all monitoring schedules aws sagemaker list-monitoring-schedules # Delete a specific monitoring schedule aws sagemaker delete-monitoring-schedule \ --monitoring-schedule-name "my-data-quality-monitor"
注記

モニタリングスケジュールを削除しても、まだ停止していない場合はスケジュールが停止します。これにより、モニタリングスケジュールのジョブ実行履歴は削除されません。

置き換えの設定

モニタリングソリューションの選択

オープンソースの Amazon SageMaker AI モニタリングソリューションリポジトリは、SageMaker AI MLflow Apps と Evidently AI 上に構築された 7 つの本番環境対応のモニタリングソリューションを提供します。推論パターンと運用上のニーズに一致するものを選択します。これらはすべてオープンソースで、 内で実行され AWS アカウント、データセット、モデル、ドリフトのしきい値に合わせてカスタマイズされるように設計されています。

ソリューション 推論タイプ デプロイメント モニタリングの焦点 適しているチーム
予測 ML バッチモニタリングパイプライン バッチ変換 ノートブック 2 個 (実験 + SageMaker Pipeline) データ + モデル品質ドリフト 定期的なバッチ予測
ML エンドポイントの予測モニタリング リアルタイムエンドポイント (データキャプチャ) ノートブック + CDK Lambda データ + モデル品質ドリフト CDK でスケーリングされたリアルタイムエンドポイント
Evidently AI + SNS によるリアルタイム推論モニタリング リアルタイムエンドポイント (データキャプチャ) ワークショップノートブック (リファレンス) データ + モデル品質ドリフト 既存のエンドポイントでの軽量 E メールアラート
QuickSight ダッシュボードによるリアルタイム推論モニタリング リアルタイムエンドポイント ノートブック + スクリプト (Athena Iceberg レイク) ドリフト + パフォーマンス + 遅延グラウンドトゥルース 本番ガバナンスダッシュボード (以下のメタモニタリングを参照)
LLM 推論モニタリング リアルタイムエンドポイント (データキャプチャ) CDK (Step Functions + Lambda) 生成 AI 評価 (安全性、関連性、流暢性など) LLM の安全性と品質のモニタリング
Grafana を使用した SageMaker リソースオブザーバビリティ リアルタイムエンドポイント 単一ノートブック (Amazon Managed Grafana) GPU/CPU/memory + コスト マルチモデルコストと容量の最適化
Grafana を使用した LLM Quality Observability リアルタイムエンドポイント ノートブック (マネージド Grafana + CloudWatch) 安全性、関連性、トーン、複合品質 LLM 出力品質回帰検出

モニタリングソリューションの開始方法

Model Monitor のデータおよびモデル品質モニタリングを置き換えるために推奨される開始点は、予測 ML バッチモニタリングパイプライン (バッチ/バッチ変換ワークロードの場合) と予測 ML エンドポイントモニタリングソリューション (リアルタイムエンドポイントの場合) です。どちらも UCI Bank Marketing データセットをすぐに使用するので、独自のモデルに適応させる前にエンドツーエンドで実行できます。

予測 ML バッチモニタリングパイプライン (2 つのノートブック、順番に実行):

  1. Experimentation (predictive_ml_experimentation_data_model_monitoring_evidently.ipynb): は、MLflow 追跡を使用して XGBoost モデルをトレーニングし、バッチ変換推論を実行してから、Evidently DataDriftPresetClassificationPreset、および を実行しDataSummaryPreset、すべてのメトリクスと HTML/JSON レポートを MLflow アプリに記録します。

  2. Pipeline Automation (batch_monitoring_pipeline.ipynb): TransformStepと Evidently ProcessingStep、アラートの SNS トピック、EventBridge スケジュールを使用して、ワークフローを SageMaker Pipeline に運用します。セクション 2 で、、baseline_s3_uriproduction_s3_urimlflow_app_namemlflow_experiment_name (ノートブック 1 と一致)、notification_emailschedule_expression ( など) を設定しますrate(1 day)。初回実行前に SNS E メールサブスクリプションを確認します。ドリフトしきい値は に存在します scripts/monitoring_processor.py (デフォルト: 機能の 30% を超えるとアラート)。

予測 ML エンドポイントモニタリング (ノートブック、スケール用のオプションの CDK): を開きml_experimentation_with_data_model_monitoring_evidently_realtime.ipynb、セクション 2 mlflow_app_nameで設定して、セクション 1~8 を実行します。これにより、モデルをトレーニングし、データキャプチャを使用してリアルタイムエンドポイントをデプロイし、ベースラインとClassificationPresetグラウンドトゥルースDataDriftPresetに対して Evidently を実行します。

スケーリングするには、CDK を使用して 2 つの Docker ベースの Lambda 関数 (データドリフトとモデル品質) をデプロイします。からcdk/、 を実行しnpm install、セクション 9 (ENDPOINT_NAME、、BUCKET、、、CAPTURE_PREFIXGROUND_TRUTH_KEY、、FEATURE_COLUMNS、オプション SNS_TOPIC_ARN) に出力された変数PREFIXBASELINE_KEYをエクスポートしてからMLFLOW_TRACKING_URIMLFLOW_EXPERIMENT、 を実行します bash scripts/deploy.sh (cdk bootstrap自動的に実行されます)。

バケットで S3 EventBridge 通知を有効にし、S3 トリガーを追加します。 s3:ObjectCreated:* の下の でのデータドリフト${PREFIX}/data-capture/、 の下のモデル品質${PREFIX}/data/ground_truth/です。

aws s3api put-bucket-notification-configuration \ --bucket <your-sagemaker-bucket> \ --notification-configuration '{"EventBridgeConfiguration": {}}'

メトリクスがしきい値を下回ると、モデル品質の Lambda は SNS 経由でアラートを送信します (デフォルト: F1 0.70、精度 0.80、ROC AUC 0.75、THRESHOLD_F1THRESHOLD_ACCURACY、 で上書き)THRESHOLD_ROC_AUC

メトリクスがしきい値を下回ると、モデル品質の Lambda は SNS 経由でアラートを送信します (デフォルト: F1 0.70、精度 0.80、ROC AUC 0.75、THRESHOLD_F1THRESHOLD_ACCURACY、 で上書き)THRESHOLD_ROC_AUC

既存のエンドポイントの軽量な代替方法として、Evidently AI + SNS によるリアルタイム推論モニタリングソリューションでは、単一のFrameworkProcessor処理ステップ (EvidentlyMonitoring) に加えて EventBridge スケジューラと SNS トピックが追加され、データレイクやダッシュボードはありません。これは、amazon-sagemaker-from-idea-to-production ワークショップのノートブック 06 のセクション 8 への紹介です。アラートは、 が DriftThreshold (デフォルト 0.05) CriticalFeatures drifted_columns_shareを超えるか、ドリフトが設定されている場合に発生します。

データ品質モニタリングの置き換え

Model Monitor のデータ品質モニタリングは、ライブ推論データをトレーニングデータベースラインと比較することで、入力機能の統計的ドリフトを検出します。スケジュールされた処理ジョブで実行されている Deequ ベースのエンジンを使用して、統計 (平均、標準偏差、最小値、最大値、一意の数) を計算し、制約 (データ型、完全性、値の範囲) をチェックします。

オプション 1: Evidently AI を使用したオープンソースソリューション

モニタリングソリューションは、Evidently AI の を使用して、機能ドリフトを検出DataDriftPresetし、すべての機能の PSI (母集団安定性インデックス) と KS 統計を計算します。トレーニングベースラインは参照データセットとして、最近の推論データは現在のデータセットとして読み取られます。バッチソリューションとエンドポイントソリューションはさらに実行DataSummaryPresetされ、Model Monitor の制約チェックと密接に一致するデータ品質の問題 (欠損値、外れ値、整合性チェック) を表面化します。ドリフトスコアは設定可能なしきい値と比較され、トレーニングメトリクスとともに SageMaker AI MLflow アプリに記録され、インタラクティブな HTML レポートとして表示されます。

この置換は高度にスケーラブルで完全にカスタマイズ可能です。

  • スケーラブル: コンピューティングはアイドル状態のときにゼロにスケールします。EventBridge でトリガーされた Lambda は、スケジュールに従ってドリフト分析を実行し、Athena Iceberg テーブルパーティショニングは、データ量が増えるにつれてスキャンコストを低く保ちます。大量のデプロイは、リザーブドキャパシティなしで直線的にスケーリングされます。

  • カスタマイズ可能: ドリフトプリセット、機能ごとのしきい値、ルックバックウィンドウ、スケジュールを中央の を介して制御しますconfig.yaml。PSI を超えてドメイン固有のドリフトテストを追加できます (承認レートシフトなどのビジネス KPIs など)。

  • 統合リネージ: ドリフトメトリクスは、同じ SageMaker AI MLflow アプリのトレーニングメトリクスと共に配置され、完全なモデルリネージとドリフトの傾向分析を提供します。

詳細なセットアップ手順については、オープンソースの Amazon SageMaker AI モニタリングソリューションを参照してください。QuickSight ベースのリアルタイムソリューションは、以下の推論メタモニタリングセクションで説明されています。

オプション 2: Amazon CloudWatch カスタムメトリクス + 異常検出

完全なモニタリングパイプラインなしで軽量なデータ品質モニタリングを行うには、カスタムメトリクスを CloudWatch に発行し、異常検出アラームを使用します。詳細な手順については、CloudWatch 異常検出の使用」を参照してください。

モデル品質モニタリングの置き換え

Model Monitor のモデル品質モニタリングは、S3 のグラウンドトゥルースラベルをエンドポイント予測とマージし、スケジュールに従ってメトリクス (精度、精度、再現率、F1、AUC、RMSE、MAE) を計算することで、予測精度を追跡します。

オプション 1: Evidently AI を使用したオープンソースソリューション

モニタリングソリューションは、Evidently AI の ClassificationPreset を使用してROC-AUC、グラウンドトゥルースが利用できるたびに、、精度、再現率、F1、混同行列を計算します。このソリューションには、遅延グラウンドトゥルースと推論 ID による予測を照合するパターンが含まれており、モデル品質のモニタリングを困難にする実際のラベルレイテンシーに対処します。

オプション 2: CloudWatch カスタムメトリクス

グラウンドトゥルースが利用可能になったら、モデル品質メトリクスを CloudWatch に発行します。

バイアスドリフトモニタリングの置き換え

Model Monitor のバイアスドリフトモニタリングは、保護された属性間のバイアスベースラインとライブ予測を比較することで、公平性メトリクスの経時的な変化を検出します。

Evidently AI を使用したセグメントスライスメトリクス、MLflow と QuickSight にログ記録

保護属性セグメント (、、 などregion) ごとにパフォーマンスと結果のメトリクスを計算し、トレーニングベースラインと比較することでgenderage_bandバイアスを追跡します。モデル品質ClassificationPresetに使用されるのと同じ Evidently がセグメントごとに実行され、結果のセグメントごとのメトリクス (選択率、真偽正率、精度/再現率) が SageMaker AI MLflow アプリに記録され、QuickSight ガバナンスダッシュボードに表示されます。

データおよびモデル品質モニターと同じ EventBridge + Lambda パターンを使用して、独自の公平性しきい値 (選択率の最大許容ギャップやセグメント間の真陽性率など) を定義し、ギャップがしきい値を超えたときに Amazon SNS 経由でアラートを送信します。すべてがオープンソースであり、アカウントで実行されるため、モニタリングされる属性と適用する公平性の定義を制御します。

Amazon QuickSight による推論メタモニタリング (リアルタイムおよび予測モニタリング)

予測モデルは、本番環境でサイレントに低下する可能性があります。不正ハンドラーは誤検知の急増を経験し始め、ローン担当者はフラグを立てるべきアプリケーションを確認し、プランナーは過大評価された需要による過剰なインベントリを経験します。メタモニタリングは、チームに本番モデルのパフォーマンスに関する継続的なフィードバックを提供し、モデルの品質やデータドリフトが現れたらすぐにアラートを送信して、モデルをプロアクティブにアップグレードできるようにします。

このソリューションは、 AWS マネージドサービス (Amazon SageMaker AI、Amazon Athena、 AWS Lambda、Amazon SQS、Amazon SNS、Amazon EventBridge、Amazon QuickSight) とオープンソースの ML ツール (SageMaker AI MLflow Apps、Evidently AI) を組み合わせて、本番環境に対応したモニタリングシステムを作成します。モニタリングソリューションリポジトリでは、QuickSight Dashboards によるリアルタイム推論モニタリングソリューションであり、完全なリファレンス実装は sample-mlops-bestpractices であり、実例としてクレジットカード不正検出モデル (XGBoost) を使用しています。トレーニングパイプライン、推論モニタリング、ガバナンスダッシュボードにまたがる 11 ステップのアーキテクチャを実装し、3 つのガイド付きノートブックがワークフローを推進します。

前提条件:

  • MLflow 追跡サーバーを持つ SageMaker AI ドメイン。

  • S3、Athena、Lambda、SQS、SNS、EventBridge のアクセス許可を持つ SageMaker 実行ロール (リポジトリには、正確なインライン IAM ポリシーと create_or_update_sagemaker_role / create_lambda_roleヘルパーが含まれます)。

  • データストレージ用の S3 バケット。

  • Python 3.12 以降とuvパッケージマネージャー (スクリプト/CLI パスの場合)、ガバナンスダッシュボードの QuickSight Enterprise サブスクリプション。

セットアップパスを選択します。

オプション A (新規ユーザーに推奨): SageMaker ドメインがない場合は、 に CloudFormation テンプレートをデプロイしますcloudformation/。SageMaker ドメイン、ユーザープロファイル、JupyterLab スペース、MLflow 追跡サーバー、S3 バケット、サポート VPC をプロビジョニングし、リポジトリを自動クローンし、初回起動.env時に入力された を書き込みます。

オプション B (既存のドメイン): MLflow 追跡サーバーを持つ SageMaker ドメインがすでにある場合は、JupyterLab でリポジトリのクローンを作成し、.env手動で入力します。

セットアップ

モニタリングの準備をするためのトレーニングをセットアップします。SageMaker Studio の 3 つのノートブックからすべてをドライブすることも、同等の CLI コマンドを使用することもできます (各ノートブックセルは CI/CD の python main.py ... コマンドにマッピングされます)。エンドツーエンドのサンプルを実行する場合、 を編集する必要はありませんconfig.yaml。デフォルトの入力.envと使用が機能します。モデルが既にデプロイされている場合は、トレーニングパイプラインを独自のステップに適応させ、推論エンドポイントが予測レコードを Amazon SQS にプッシュすることを確認します。