LESSON 30分

ストーリー

田中VPoE
評価フレームワークで品質を測定できるようになった。次は本番環境での継続的なモニタリングだ
あなた
一度評価して終わりではないんですね
田中VPoE
当然だ。ドキュメントは日々更新される、ユーザーの質問パターンは変化する、LLMのAPIが更新される — RAGの品質は時間とともに劣化しうる。これを「ドリフト」と呼ぶ
あなた
モデルドリフトのRAG版ですね
田中VPoE
そうだ。品質が閾値を下回ったら即座にアラートが飛ぶ仕組みを構築する。「気づいたら精度が落ちていた」では手遅れだ

モニタリング指標の設計

リアルタイム指標

指標閾値取得方法アラート条件
レイテンシ P50/P95/P99P95 < 5秒リクエストログP95 > 5秒が5分間継続
エラー率< 1%HTTPステータスコード1%超過が3分間継続
検索結果ゼロ件率< 10%検索結果カウント10%超過
Rerankスコア平均> 0.5Rerankerの出力0.5未満が30分間継続
LLM応答拒否率< 5%「情報が見つかりません」の回答率5%超過
ユーザーフィードバックThumbs Up > 70%UI上のフィードバックボタン70%未満が1日継続

バッチ評価指標

指標頻度閾値対応
Faithfulness(RAGAS)週次> 0.85プロンプト改善、検索パイプライン調整
Answer Relevance(RAGAS)週次> 0.80クエリ変換の改善
Context Precision週次> 0.75Reranking調整
Context Recall週次> 0.80検索パイプライン、チャンキング改善

品質劣化の検知

ドリフトの種類

ドリフト種類原因検知方法
データドリフトドキュメントの更新・追加・削除によりインデックスが古くなるドキュメント更新日とインデックス日の差分監視
クエリドリフトユーザーの質問パターンが変化するクエリクラスタリングの変化を監視
モデルドリフトLLM/EmbeddingモデルのAPIバージョン更新モデルバージョンの変更検知、A/Bテスト
品質ドリフト上記の複合要因で回答品質が徐々に低下RAGAS指標の経時変化

ドリフト検知のアーキテクチャ

ドリフト検知パイプライン:

[リアルタイム]
リクエストログ → CloudWatch Metrics → アラート(Slack)

ユーザーフィードバック → 集計 → ダッシュボード

[バッチ]
週次スケジュール → 評価データセットでRAGAS実行 → 結果記録

前回結果と比較 → 閾値チェック → 劣化検知 → アラート

トレンドグラフ → ダッシュボード

ログ設計

RAGリクエストログ

RAGリクエストログの構造:

{
  "request_id": "req-20261201-001",
  "timestamp": "2026-12-01T10:30:00Z",
  "user_id": "user-123",

  // クエリ情報
  "query": "RAGの検索精度を上げるには?",
  "query_rewritten": "RAGシステムの検索精度向上手法",
  "filters_applied": {"doc_type": "技術文書"},

  // 検索結果
  "retrieval": {
    "vector_results": 20,
    "bm25_results": 20,
    "fused_results": 15,
    "reranked_results": 5,
    "top_score": 0.89,
    "min_score": 0.42
  },

  // 生成結果
  "generation": {
    "model": "claude-3-5-sonnet",
    "input_tokens": 2500,
    "output_tokens": 450,
    "sources_cited": 3
  },

  // パフォーマンス
  "latency": {
    "query_processing_ms": 310,
    "retrieval_ms": 180,
    "reranking_ms": 350,
    "generation_ms": 1800,
    "total_ms": 2640
  },

  // フィードバック
  "feedback": {
    "thumbs_up": true,
    "comment": null
  }
}

ダッシュボード設計

主要パネル

パネル表示内容更新頻度
リクエスト数時間帯別のリクエスト数推移リアルタイム
レイテンシP50/P95/P99のトレンドリアルタイム
エラー率エラー率のトレンドリアルタイム
ユーザー満足度Thumbs Up率の日次推移日次
RAGAS指標4指標の週次推移週次
コストAPI利用料の日次推移日次
検索品質Top-1スコアの分布日次
頻出クエリよく聞かれる質問Top-10日次

アラートルール

レベル条件通知先
Criticalエラー率 > 5% or レイテンシ P99 > 30秒Slack #alert + PagerDuty
Warningエラー率 > 1% or Thumbs Up < 70%Slack #rag-monitoring
InfoRAGAS指標が前週比5%以上低下Slack #rag-monitoring

「モニタリングなしの本番運用は、計器のない飛行機で飛ぶようなものだ。必ず品質の可視化を先に整備してからリリースしろ」 — 田中VPoE


まとめ

ポイント内容
リアルタイム指標レイテンシ、エラー率、検索ゼロ件率、ユーザーフィードバック
バッチ評価RAGAS指標の週次評価でトレンドを監視
ドリフト検知データ/クエリ/モデル/品質の4種類のドリフトを監視
ログ設計クエリ、検索結果、生成結果、パフォーマンス、フィードバックを記録

チェックリスト

  • リアルタイム指標とバッチ評価指標の違いを理解した
  • 4種類のドリフトの原因と検知方法を理解した
  • RAGリクエストログに含めるべき情報を理解した
  • ダッシュボードとアラート設計の原則を理解した

次のステップへ

次は「RAG運用設計」を学びます。インデックス更新戦略、スケーリング、コスト管理など、安定運用のための設計を行いましょう。


推定読了時間: 30分