セクション6 基礎 — AI ソリューションのモニタリング
📘 対象:新人エンジニア。4種類のドリフト、Model Monitoring、Explainable AI の入門。
1. なぜ ML はモニタリングが必須か
訓練時に高精度だったモデルも、本番環境では時間とともに性能が劣化する。原因は:
- 入力データの分布が変わる
- 入力と出力の関係そのものが変わる
- 訓練と推論で前処理が微妙にずれている
- 外部環境(季節・トレンド・市場)が変化する
→ 継続的に観測しないと、知らないうちに損失を生む
2. ドリフトの4種類(試験頻出)
2.1 Training-Serving Skew(訓練・サービングずれ)
- 定義:訓練時のデータ前処理と、推論時の前処理が 異なる
- 例:訓練は pandas で z-score 正規化、推論時は別コードで誤った正規化
- 見つけ方:訓練データと推論リクエストの統計を比較
- 対策:TFT / Feature Store で前処理を統一
2.2 Data Drift(データドリフト)
- 定義:入力 X の分布が 時間とともに変化
- 例:ユーザー年齢層の高齢化、新商品カテゴリの登場
- 見つけ方:ベースライン分布と最近の分布を統計的比較(KL ダイバージェンス、L-infinity)
- 対策:再訓練、データ拡張
2.3 Concept Drift(コンセプトドリフト)
- 定義:入力 X と出力 Y の 関係 P(Y|X) が変化
- 例:同じ顧客特徴でも、コロナ後で購買行動が変わる
- 見つけ方:継続的な精度測定(ラベル付きデータが必要)
- 対策:再訓練、特徴量見直し、モデルアーキテクチャ変更
2.4 🆕 Feature Attribution Drift
- 定義:各特徴量の モデルへの寄与度(SHAP値など)の分布が変化
- 例:以前は "年齢" が重要だったが、最近は "地域" が支配的に
- 見つけ方:Explainable AI で特徴量重要度を継続計測
- 対策:再訓練、特徴量エンジニアリング見直し
2.5 4種類の比較表
| Training-Serving Skew | Data Drift | Concept Drift | Feature Attribution Drift | |
|---|---|---|---|---|
| 変化する対象 | 前処理コード | 入力 X の分布 | P(Y|X) の関係 | 特徴量寄与度 |
| ラベル必要? | × | × | ○ | × |
| 検知タイミング | 即時 | 継続 | ラベル取得時 | 継続 |
| 対策 | TFT/Feature Store | 再訓練 | 再訓練+特徴量見直し | 再訓練+特徴量見直し |
3. Agent Platform Model Monitoring
3.1 何ができるか
- 本番 Endpoint へのリクエストをサンプリング
- 訓練データ(ベースライン)と推論データの分布を比較
- ドリフト・スキューを検知してアラート
3.2 監視対象メトリクス
- 入力特徴量のドリフト:数値・カテゴリ
- 予測値の分布変化
- 特徴量重要度のドリフト(Explainable AI 連携)
- 🆕 LLM 用メトリクス:BLEU/ROUGE/Perplexity 等の継続評価
3.3 設定の基本
from google.cloud import aiplatform
monitor = aiplatform.ModelDeploymentMonitoringJob.create(
display_name="churn-monitor",
endpoint=endpoint,
objective_configs=[
aiplatform.model_monitoring.ObjectiveConfig(
training_dataset=training_dataset,
skew_detection_config=skew_config,
drift_detection_config=drift_config,
explanation_config=explanation_config,
),
],
sample_rate=0.5, # 50% サンプリング
monitor_interval=3600, # 1時間ごと
)
3.4 アラート設計
- 閾値超過時に Cloud Monitoring へ通知 → Slack / Email / PagerDuty
- ドリフト検知時に Pub/Sub → 自動再訓練パイプライン起動
4. Explainable AI
4.1 何のためにあるか
- 「このモデルはなぜこう予測したのか」を説明
- 規制対応(金融・医療)、デバッグ、信頼性確保、Feature Attribution Drift 検知
4.2 主な3手法
| 手法 | 仕組み | 強み | 弱み |
|---|---|---|---|
| Sampled Shapley | ランダムサンプリングで Shapley 値近似 | 表形式データに強い | 計算量大 |
| Integrated Gradients | 入力空間の勾配積分 | DNN / 画像に強い | DNN 限定 |
| XRAI | 画像のリージョン重要度 | 画像分類 | 画像限定 |
4.3 適用パターン
- テーブルデータ → Sampled Shapley
- 画像 → Integrated Gradients / XRAI
- テキスト → Integrated Gradients
4.4 設定例
explanation_metadata = aiplatform.explain.ExplanationMetadata(
inputs={
"features": aiplatform.explain.ExplanationMetadata.InputMetadata(input_tensor_name="input_1"),
},
outputs={
"score": aiplatform.explain.ExplanationMetadata.OutputMetadata(output_tensor_name="output_1"),
},
)
explanation_params = aiplatform.explain.ExplanationParameters(
sampled_shapley_attribution={"path_count": 25}
)
model = aiplatform.Model.upload(
...,
explanation_metadata=explanation_metadata,
explanation_parameters=explanation_params,
)
5. 責任ある AI(Responsible AI)の基礎
5.1 公平性(Fairness)
- 属性(性別・人種・年齢など)による精度差を見る
- Equalized Odds:偽陽性率と偽陰性率が属性間で同じ
- Demographic Parity:陽性予測率が属性間で同じ
- TFMA / Model Evaluation でスライス別評価
5.2 プライバシー
- PII 除去:DLP で前処理
- 差分プライバシー (DP):訓練データへのノイズ追加
- 連合学習:データを集約せず端末で学習
5.3 説明責任 (Accountability)
- Model Registry でバージョン管理
- ML Metadata で系統管理
- 監査ログ (Cloud Audit Logs)
5.4 透明性 (Transparency)
- Model Cards:モデルの目的・データ・性能・制限事項を記述
- Data Cards:データセットの由来・偏り・前処理を記述
6. 🆕 Model Armor(LLM セキュリティ)
6.1 何をするか
LLM 特有のセキュリティリスクを WAF のように防御:
- プロンプトインジェクション 検知
- PII 漏洩 検知(入出力両方)
- 有害コンテンツ フィルタリング
- ジェイルブレイク(安全機構を回避するプロンプト)の検知
- データ漏洩(システムプロンプトや機密情報の漏洩)防止
6.2 構成
[User Request]
↓
[Model Armor: 入力チェック]
├─ プロンプトインジェクション
├─ PII 含む
├─ 有害指示
└─ ジェイルブレイク
↓ (合格)
[LLM (Gemini など)]
↓
[Model Armor: 出力チェック]
├─ PII 含まれていないか
├─ 有害コンテンツ
└─ 機密情報の漏洩
↓ (合格)
[Response to User]
6.3 既存ツールとの組合せ
- Sensitive Data Protection (旧 DLP):構造化された PII 検出は引き続き有効
- Safety Filters:Gemini 標準のセーフティフィルタ
- Regex:単純なパターンマッチ
- Model Armor:LLM 特化の高度な脅威検知
7. 生成 AI のモニタリングと評価
7.1 自動評価メトリクス
- BLEU:参照と n-gram 一致(翻訳)
- ROUGE:要約評価
- METEOR:BLEU の改良
- Perplexity:言語モデルの当てはまり
- BertScore:意味的類似度
7.2 🆕 LLM-as-a-judge
- Gemini を評価者にして他モデル出力をスコアリング
- 主観的品質・指示遵守・有害性を評価
- 詳細は §2 で扱った
7.3 Gen AI Evaluation Service
- Agent Platform 内蔵の生成 AI 評価サービス
- 自動メトリクス + LLM-as-a-judge + 人手評価を統合
- データセット・評価結果が ML Metadata に記録
7.4 継続評価のセット
- リクエスト / レスポンスの サンプリング保存
- 定期的に評価バッチ実行
- 閾値割れでアラート
8. 観測の3層
[Infrastructure 層] Cloud Monitoring (CPU/メモリ/レイテンシ/QPS)
[Application 層] Cloud Logging (リクエスト/レスポンスログ)
[ML 層] Agent Platform Model Monitoring (ドリフト/精度)
すべて Cloud Operations Suite に統合。アラートポリシーで Slack/PagerDuty 連携。
9. このセクションで覚えるキーワード
- Training-Serving Skew / Data Drift / Concept Drift / 🆕 Feature Attribution Drift:4種ドリフト
- Agent Platform Model Monitoring:ドリフト・スキュー検知
- Explainable AI:Sampled Shapley / Integrated Gradients / XRAI
- 🆕 Model Armor:LLM 向けセキュリティ
- 🆕 Gen AI Evaluation Service:生成 AI 評価サービス
- Sensitive Data Protection (旧 DLP):PII 検出
- Model Cards / Data Cards:透明性ドキュメント
- Cloud Monitoring / Cloud Logging / Cloud Audit Logs:観測の標準
次は 02_応用.md で Model Armor 設定、Gen AI 評価の実装、責任ある AI の運用を扱います。