MCP HubMCP Hub
Retour aux compétences

monitor-model-drift

pjt222
Mis à jour Yesterday
4 vues
17
2
17
Voir sur GitHub
Autreai

À propos

Cette compétence met en œuvre une surveillance complète de la dérive des modèles en utilisant Evidently AI, des tests statistiques (PSI, KS) et des métriques personnalisées pour détecter la dérive des données et la dérive conceptuelle dans les systèmes de ML en production. Elle configure des flux de travail automatisés d'alerte et de reporting pour détecter la dégradation avant que les métriques commerciales ne soient impactées. Utilisez-la lorsque les modèles en production présentent des baisses de performances inexpliquées, lorsque les nouvelles distributions de données diffèrent des données d'entraînement, ou lorsque les exigences réglementaires imposent une surveillance des modèles.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add pjt222/agent-almanac -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternatif
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/monitor-model-drift

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation

モデルドリフトのモニタリング

完全な設定ファイルとテンプレートについてはExtended Examplesを参照。

統計テストと自動化されたモニタリングを使用して、本番MLモデルのデータドリフトとコンセプトドリフトを検出し、アラートを発報する。

使用タイミング

  • 本番MLモデルが原因不明のパフォーマンス劣化を経験している時
  • 新しいデータ分布がトレーニングデータと異なる時
  • 入力特徴に季節的または時間的なシフトがある時
  • ビジネスメトリクスに影響する前にプロアクティブなアラートが必要な時
  • モデルモニタリングの規制要件がある時(例: SR 11-7、EU AI Act)
  • ドリフト比較が必要な複数のモデルバージョンがデプロイされている時

入力

  • 必須: 本番モデルの予測と特徴(直近30-90日分)
  • 必須: リファレンスデータセット(トレーニングまたはバリデーションデータ)
  • 必須: グランドトゥルースラベル(遅延がある場合がある)
  • 任意: 特徴重要度スコアまたはSHAP値
  • 任意: アラート用のビジネスメトリクス閾値
  • 任意: トレンド分析用の過去のドリフトレポート

手順

ステップ1: Evidently AIのインストールと設定

適切な依存関係を持つモニタリングフレームワークを設定する。

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install Evidently and dependencies
pip install evidently pandas scikit-learn prometheus-client

# Create monitoring directory structure
mkdir -p monitoring/{reports,config,alerts}

設定ファイルを作成する:

# monitoring/config/drift_config.py
from evidently.metric_preset import DataDriftPreset, TargetDriftPreset
from evidently.metrics import (
    DatasetDriftMetric,
    DatasetMissingValuesMetric,
    ColumnDriftMetric,
)

# ... (see EXAMPLES.md for complete implementation)

期待結果: モデルの許容度に一致する閾値を持つ設定ファイルが作成されていること。

失敗時: 保守的な閾値(PSI > 0.2、KS p値 < 0.01)から始め、偽陽性率に基づいてチューニングする。

ステップ2: データドリフト検出の実装

複数の統計テストを使用したドリフト検出パイプラインを作成する。

# monitoring/drift_detector.py
import pandas as pd
import numpy as np
from scipy.stats import ks_2samp, chi2_contingency
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset
from evidently.metrics import ColumnDriftMetric, DatasetDriftMetric
from datetime import datetime, timedelta
# ... (see EXAMPLES.md for complete implementation)

期待結果: ドリフト検出が正常に実行され、特徴ごとの統計を含むJSONレポートを生成し、ドリフトした特徴を特定すること。

失敗時: 欠損値を確認する(補完または除去)、リファレンスと現在のデータが同じカラムを持つことを確認する、データセット間でデータ型が一致することを検証する。

ステップ3: Evidentlyレポートの生成

人間のレビューとデバッグのための視覚的なHTMLレポートを作成する。

# monitoring/generate_reports.py
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset, TargetDriftPreset
from evidently.metrics import (
    ColumnDriftMetric,
    DatasetDriftMetric,
    DatasetMissingValuesMetric,
)
# ... (see EXAMPLES.md for complete implementation)

期待結果: monitoring/reports/にHTMLレポートが生成され、分布比較を示すインタラクティブなチャートと共にブラウザで閲覧可能であること。

失敗時: 出力ディレクトリへの書き込み権限を確認し、Evidentlyバージョンが >= 0.4.0であることを確認し、データフレームに十分な行(100以上を推奨)があることを確認する。

ステップ4: コンセプトドリフト検出の実装

コンセプトドリフト(特徴とターゲット間の関係の変化)を検出するための予測パフォーマンスのモニタリング。

# monitoring/concept_drift.py
import pandas as pd
import numpy as np
from sklearn.metrics import roc_auc_score, mean_squared_error, accuracy_score
from typing import Dict, List
import json


# ... (see EXAMPLES.md for complete implementation)

期待結果: モデルの精度/AUCが閾値を下回った時にパフォーマンスモニタリングが検出し、潜在的なコンセプトドリフトを通知すること。

失敗時: グランドトゥルースラベルが利用可能であることを確認する(遅延検証バッチジョブが必要な場合がある)、予測スコアが適切にキャリブレーションされていることを検証する(分類の場合0-1の範囲)、特徴のラベルリーケージを確認する。

ステップ5: 自動アラートの設定

ドリフト検出をアラートシステム(Slack、PagerDuty、メール)と統合する。

# monitoring/alerting.py
import requests
import json
from typing import Dict, List
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# ... (see EXAMPLES.md for complete implementation)

期待結果: ドリフトが検出された時にSlack/PagerDutyにアラートが送信され、ドリフトシェアとクリティカル特徴の関与に基づく重大度が設定されること。

失敗時: まずcurlでWebhook URLをテストし、PagerDuty統合キーに正しい権限があることを検証し、送信HTTPSのファイアウォールルールを確認し、一時的なネットワーク障害のためのリトライロジックを実装する。

ステップ6: モニタリングジョブのスケジューリング

ドリフト検出をスケジュール(毎日または毎週)で自動実行する。

# monitoring/scheduler.py
import schedule
import time
import logging
from datetime import datetime, timedelta
import pandas as pd

logging.basicConfig(
# ... (see EXAMPLES.md for complete implementation)

代替として、cronを使用:

# Add to crontab (crontab -e)
# Run daily at 2 AM
0 2 * * * cd /path/to/monitoring && /path/to/venv/bin/python scheduler.py >> logs/cron.log 2>&1

またはAirflow DAGを使用:

# airflow/dags/drift_monitoring_dag.py
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime, timedelta

default_args = {
    'owner': 'ml-team',
    'depends_on_past': False,
# ... (see EXAMPLES.md for complete implementation)

期待結果: モニタリングがスケジュール通りに自動実行され、レポートを生成し、ドリフトが閾値を超えた場合のみアラートを送信し、すべてのアクティビティをログに記録すること。

失敗時: スケジューラープロセスが実行中であることを確認する(ps aux | grep scheduler)、cronサービスがアクティブであることを検証する、データソースがアクセス可能であることを確認する、例外についてログを確認する、ジョブが実行されない場合のデッドマンズスイッチアラートを設定する。

バリデーション

  • PSIとKSテストの計算が既知のドリフトシナリオに対して期待値を生成する
  • Evidently HTMLレポートが正しくレンダリングされ、分布のオーバーレイを表示する
  • クリティカル特徴のドリフトが即座にアラートをトリガーする
  • コンセプトドリフト検出器が3日以内にパフォーマンス劣化を識別する
  • すべての設定チャネル(Slack、メール、PagerDuty)にアラートが配信される
  • スケジュールされたジョブが手動介入なしで7日以上実行される
  • 偽陽性率が < 5%(高い場合は閾値をチューニングする)
  • 100万行に対してドリフト検出が5分以内に完了する

よくある落とし穴

  • 古いリファレンスデータ: リファレンスデータセットを四半期ごとまたはモデル再トレーニング後に更新し、自然なデータの進化を反映する
  • サンプルサイズの不一致: 信頼性の高い統計のために、現在とリファレンスのデータセットが同様のサイズ(各1000行以上)であることを確認する
  • グランドトゥルースの欠如: コンセプトドリフトにはラベルが必要; リアルタイムラベルが利用できない場合は遅延ラベリングパイプラインを実装する
  • 季節性の混同: 週次/月次パターンが偽陽性をトリガーする可能性がある; 時間整列されたリファレンスウィンドウを使用するか、特徴の季節性を除去する
  • アラート疲労: 高い閾値から始めて、実際のモデル再トレーニング頻度に基づいて徐々に下げる
  • データ品質ドリフトの無視: 欠損値、外れ値、エンコーディングエラーを分布ドリフトとは別にモニタリングする
  • 集約メトリクスへの過度の依存: 特徴ごとの分析が重要; 集約ドリフトは個別の重要な特徴のシフトを隠す可能性がある
  • 予測分布の無視: グランドトゥルースなしでも、突然の予測分布のシフトは問題を示す

関連スキル

  • detect-anomalies-aiops - 運用メトリクスの時系列異常検出
  • deploy-ml-model-serving - モデルデプロイメントパターンとバージョニング
  • setup-prometheus-monitoring - インフラストラクチャメトリクスの収集
  • review-data-analysis - 統計分析の検証とピアレビュー

Dépôt GitHub

pjt222/agent-almanac
Chemin: i18n/ja/skills/monitor-model-drift
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Compétences associées

llamaguard

Autre

LlamaGuard est le modèle de Meta, doté de 7 à 8 milliards de paramètres, conçu pour modérer les entrées et sorties des LLM selon six catégories de sécurité comme la violence et les discours haineux. Il offre une précision de 94 à 95 % et peut être déployé avec vLLM, Hugging Face ou Amazon SageMaker. Utilisez cette compétence pour intégrer facilement le filtrage de contenu et des garde-fous de sécurité dans vos applications d'IA.

Voir la compétence

cost-optimization

Autre

Cette compétence de Claude aide les développeurs à optimiser les coûts du cloud grâce au redimensionnement des ressources, aux stratégies d'étiquetage et à l'analyse des dépenses. Elle fournit un cadre pour réduire les dépenses cloud et mettre en œuvre une gouvernance des coûts sur AWS, Azure et GCP. Utilisez-la lorsque vous devez analyser les coûts d'infrastructure, redimensionner les ressources ou respecter des contraintes budgétaires.

Voir la compétence

quantizing-models-bitsandbytes

Autre

Cette compétence quantifie les LLMs en précision 8 bits ou 4 bits à l'aide de bitsandbytes, permettant une réduction de 50 à 75 % de la mémoire utilisée avec une perte de précision minime. Elle est idéale pour exécuter des modèles plus volumineux sur une mémoire GPU limitée ou pour accélérer l'inférence, prenant en charge des formats comme INT8, NF4 et FP4. La compétence s'intègre à HuggingFace Transformers et permet l'entraînement QLoRA ainsi que l'utilisation d'optimiseurs en 8 bits.

Voir la compétence

dispatching-parallel-agents

Autre

Cette compétence Claude déploie plusieurs agents pour enquêter et résoudre simultanément 3 problèmes indépendants ou plus. Elle est conçue pour des scénarios impliquant des défaillances non liées qui peuvent être résolues sans état partagé ni dépendances. La capacité fondamentale est la résolution de problèmes en parallèle, en assignant un agent par domaine problématique indépendant afin de maximiser l'efficacité.

Voir la compétence