LESSON 30分

ストーリー

田中VPoE
ガイドラインと教育を整備しても、AIインシデントはゼロにはならない。重要なのは、発生した時にいかに迅速かつ適切に対応できるかだ
あなた
従来のITインシデント対応と何が違うんですか?
田中VPoE
AIインシデントは原因の特定が難しい。「なぜその回答が生成されたのか」の再現が困難な場合がある。また、バイアスやハルシネーションなどAI特有の問題カテゴリがある
あなた
AI専用のインシデント対応フローが必要なんですね

AIインシデントの分類

インシデントカテゴリ

カテゴリ説明深刻度
データ漏洩機密・個人情報の意図しない出力他顧客の情報を含む回答CRITICAL
有害出力差別的・攻撃的・不適切な生成差別的なレコメンドHIGH
ハルシネーション事実と異なる情報の生成存在しない商品の案内MEDIUM-HIGH
バイアス特定グループへの不公平な処理性別による価格差異HIGH
サービス障害AI機能の停止・劣化レスポンス遅延、エラー率増MEDIUM
セキュリティプロンプトインジェクション等システムプロンプトの漏洩HIGH

インシデント対応フロー

5フェーズの対応プロセス

Phase 1: 検知・報告(0-1時間)
├── 自動検知(アラートシステム)
├── ユーザー報告(インシデント報告フォーム)
└── 初期トリアージ(深刻度判定)

Phase 2: 初動対応(1-4時間)
├── インシデント対応チーム招集
├── 影響範囲の特定
├── 必要に応じてサービス停止/制限
└── ステークホルダーへの第一報

Phase 3: 調査・分析(4-48時間)
├── 監査ログの確認
├── 入出力データの分析
├── 根本原因の特定
└── 再現テスト

Phase 4: 是正・復旧(1-7日)
├── 修正の実装(プロンプト/フィルター/モデル)
├── テストと検証
├── サービス復旧
└── 影響を受けたユーザーへの対応

Phase 5: 事後対応(1-2週間)
├── インシデントレポート作成
├── 再発防止策の策定
├── プロセス・ガイドラインの更新
└── 関係者への共有・教育

深刻度別の対応SLA

深刻度初動影響評価是正完了エスカレーション
CRITICAL30分以内2時間以内24時間以内CTO + 法務即時
HIGH1時間以内4時間以内48時間以内AI倫理委員会
MEDIUM4時間以内24時間以内1週間以内AI推進チーム
LOW翌営業日3営業日以内2週間以内担当チーム

インシデント対応チームの構成

RACI マトリクス

活動インシデント対応リーダーエンジニアAI倫理担当法務広報
検知・トリアージARIII
初動対応ARCCI
技術調査CA,RCII
影響評価ACRCI
是正実装CA,RCII
外部対応判断CICAR
レポート作成ARRCI

AIインシデントの調査手法

監査ログベースの調査

class IncidentInvestigator:
    """AIインシデントの調査支援"""

    def __init__(self, audit_service, log_service):
        self.audit = audit_service
        self.logs = log_service

    def investigate(self, incident_id: str, time_range: tuple) -> dict:
        """インシデントを調査"""
        # 1. 該当時間帯のログを取得
        related_logs = self.audit.find_by_timerange(*time_range)

        # 2. エラーパターンの分析
        error_patterns = self._analyze_error_patterns(related_logs)

        # 3. 影響を受けたユーザーの特定
        affected_users = self._identify_affected_users(related_logs)

        # 4. 根本原因の候補特定
        root_causes = self._identify_root_causes(related_logs)

        return {
            "incident_id": incident_id,
            "total_affected_requests": len(related_logs),
            "affected_users": len(affected_users),
            "error_patterns": error_patterns,
            "root_cause_candidates": root_causes,
            "timeline": self._build_timeline(related_logs)
        }

    def _analyze_error_patterns(self, logs: list) -> list:
        """エラーパターンを分析"""
        patterns = {}
        for log in logs:
            if log.error_occurred:
                key = f"{log.error_type}:{log.model_name}"
                patterns[key] = patterns.get(key, 0) + 1
        return sorted(
            [{"pattern": k, "count": v} for k, v in patterns.items()],
            key=lambda x: x["count"], reverse=True
        )

    def _identify_affected_users(self, logs: list) -> set:
        """影響を受けたユーザーを特定"""
        return {log.user_id for log in logs if log.error_occurred or log.confidence_score < 0.5}

    def _identify_root_causes(self, logs: list) -> list:
        """根本原因の候補を特定"""
        causes = []
        # モデル変更の確認
        model_versions = {log.model_version for log in logs}
        if len(model_versions) > 1:
            causes.append("モデルバージョンの変更")
        # プロンプト変更の確認
        prompt_ids = {log.prompt_template_id for log in logs}
        if len(prompt_ids) > 1:
            causes.append("プロンプトテンプレートの変更")
        # 入力データの変化
        # (信頼度スコアの急落を検知)
        scores = [log.confidence_score for log in logs]
        if scores:
            avg = sum(scores) / len(scores)
            if avg < 0.7:
                causes.append("入力データの品質変化またはモデル劣化")
        return causes

    def _build_timeline(self, logs: list) -> list:
        """イベントタイムラインを構築"""
        events = []
        for log in sorted(logs, key=lambda x: x.timestamp):
            if log.error_occurred:
                events.append({
                    "time": log.timestamp.isoformat(),
                    "event": f"エラー: {log.error_type}",
                    "user": log.user_id
                })
        return events

インシデントレポートのテンプレート

セクション内容
概要インシデントの要約、深刻度、影響範囲
タイムライン発生→検知→初動→調査→是正の時系列
影響分析影響を受けたユーザー数、データ、サービス
根本原因技術的原因と組織的原因の分析
是正措置実施した対策と効果の確認
再発防止策短期・中期・長期の再発防止策
教訓今後に活かすべき教訓

まとめ

要素ポイント
分類AI特有のインシデントカテゴリを定義
対応フロー5フェーズ(検知→初動→調査→是正→事後)
SLA深刻度に応じた対応時間の基準
調査手法監査ログベースの体系的調査
レポート根本原因分析と再発防止策を含む

チェックリスト

  • AIインシデントの6つのカテゴリを理解した
  • 5フェーズの対応プロセスを設計できる
  • 深刻度別のSLAを策定できる
  • 監査ログを活用した調査手法を把握した
  • インシデントレポートの構成を理解した

次のステップへ

次は継続的改善の仕組みを学び、ガバナンス全体のPDCAサイクルを確立します。


推定読了時間: 30分