monitor-model-drift
について
このスキルは、Evidently AIと統計的検定(PSI、KS)を用いて、本番環境のMLシステムにおけるデータドリフトとコンセプトドリフトを検出する自動化されたモデルドリフト監視を実装します。説明できないモデルの劣化、データ分布の変化、季節変動によってトリガーされ、パフォーマンス低下を早期に捕捉するアラートワークフローを構築します。モデルの健全性を事前に監視し、規制上の監視要件を満たす必要がある場合にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/monitor-model-driftこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
察模型偏移
詳例見 Extended Examples。
以 Evidently AI、統計試(PSI、KS)、與自定度量察生產 ML 模型之數據偏與概念偏,並警之。
用時
- 生產 ML 模型現不明性能退化乃用
- 新數據分布異於訓練數據乃用
- 入特之季節或時域變化乃用
- 業務度量受影前先警乃用
- 監管要求模型察(如 SR 11-7、EU AI Act)乃用
- 多模型版本部署,須偏移較乃用
入
- 必要:生產模型預測與特(近 30-90 日)
- 必要:參照數據集(訓練或驗證集)
- 必要:真值標(或滯後)
- 可選:特要性分或 SHAP 值
- 可選:警業務度量閾
- 可選:歷史偏移報以察趨勢
法
第一步:裝並設 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-value < 0.01),依假陽率調之。
第二步:行數據偏察
建偏察管道,含多統計試。
# 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 報含每特統計,識偏移之特。
敗則: 察缺值(補或刪),確保參照與當前數據同列、類同。
第三步:生 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)
得: HTML 報生於 monitoring/reports/,瀏覽器可觀,互動圖示分布較。
敗則: 驗輸出目錄寫權,察 Evidently 版本 >= 0.4.0,確保數據幀有足夠行(建議 >100)。
第四步:行概念偏察
察預測性能以見概念偏(特與目之關係變)。
# 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),察特中標泄。
第五步:設自動警
合偏察與警系(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 防火牆規,加重試以容暫網失。
第六步:排察任務
自動偏察依期(每日或每週)。
# 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 報正渲,現分布疊
- 要害特偏即觸警
- 概念偏察於三日內測得性能退化
- 警送至諸配置道(Slack、郵、PagerDuty)
- 排程任務無人為干預行 7 日以上
- 假陽率 < 5%(高則調閾)
- 偏察百萬行於 5 分內畢
陷
- 參照數據陳舊:每季或模型重訓後更新參照集,反映自然數據演進
- 樣本量不匹:當前與參照集應有近量(各 >1000 行)以保統計可靠
- 缺真值:概念偏需標;若無實時標,行延後標管道
- 季節性混淆:週月模或觸假陽;用時對齊參照窗或去季化特
- 警疲:始以高閾,依實際模型重訓步調漸降
- 忽數據質量偏:分察缺值、離群、編碼錯,獨於分布偏
- 過信合計度量:每特察要;合計偏或掩個別要害特之變
- 忽預測分布:即無真值,預測分布驟變示問題
參
detect-anomalies-aiops- 操作度量之時序異察deploy-ml-model-serving- 模型部署模與版本setup-prometheus-monitoring- 基設度量收review-data-analysis- 統計分析驗與同行察
GitHub リポジトリ
関連スキル
evaluating-llms-harness
テストこのClaudeスキルは、lm-evaluation-harnessを実行し、MMLUやGSM8Kなど60以上の標準化学術タスクでLLMをベンチマークします。開発者がモデルの品質を比較し、トレーニングの進捗を追跡し、学術的な結果を報告するために設計されています。このツールはHuggingFaceやvLLMモデルを含む様々なバックエンドをサポートしています。
cloudflare-cron-triggers
テストこのスキルは、cron式を使用してWorkersをスケジュールするためのCloudflare Cron Triggersの実装に関する包括的な知識を提供します。定期的なタスクの設定、メンテナンスジョブ、自動化されたワークフローの構築を網羅し、無効なcron式やタイムゾーン問題といった一般的な課題への対処法も含みます。開発者はこれを使用して、スケジュールされたハンドラーの設定、cronトリガーのテスト、WorkflowsやGreen Computeとの連携を構成できます。
webapp-testing
テストこのClaude Skillは、Playwrightベースのツールキットを提供し、Pythonスクリプトを通じてローカルWebアプリケーションのテストを可能にします。フロントエンドの検証、UIデバッグ、スクリーンショット撮影、ログ表示を実現し、サーバーライフサイクルを管理します。ブラウザ自動化タスクにご利用いただけますが、コンテキストの汚染を避けるため、スクリプトのソースコードを読むのではなく直接実行してください。
finishing-a-development-branch
テストこのスキルは、開発者がテストの合格を確認し、構造化された統合オプションを提示することで、完成した作業を仕上げることを支援します。実装が完了した後のマージ、PR作成、ブランチの整理といったワークフローを案内します。コードが準備できてテスト済みの際に使用し、開発プロセスを体系的に完了させましょう。
