AI・機械学習
上級

CRAG(Corrective Retrieval-Augmented Generation)(コレクティブアールエージー)

検索結果の品質をLLMが事後評価し、低品質な文書を除外・修正してから回答を生成するRAG改良手法。2024年にYan et al.が提案し、検索結果の信頼性を自動で担保する。

0 回閲覧
0 いいね
2026/6/20 更新
関連タグ
RAG
CRAG
検索拡張生成
品質評価
LLM

CRAG(Corrective Retrieval-Augmented Generation)とは

CRAGは、RAGパイプラインにおける検索結果の品質問題を解決するフレームワークである。2024年にShiqi Yan et al.が論文「Corrective Retrieval Augmented Generation」で提案した。通常のRAGは検索で取得した文書をそのままLLMに渡すが、検索結果が不正確・無関係な場合でもLLMはそれを根拠として使ってしまい、ハルシネーションの原因になる。CRAGは検索結果を3段階(Correct/Incorrect/Ambiguous)で評価し、不正確な場合はWeb検索にフォールバックすることで回答品質を保証する。

主な特徴・仕組み

  • 検索結果の3段階評価: 軽量な評価モデル(T5-large等)で検索結果のクエリ関連性をスコアリング
    • Correct(信頼度 > 0.7): そのまま利用
    • Incorrect(信頼度 < 0.3): 検索結果を破棄し、Web検索(Google/Bing API)にフォールバック
    • Ambiguous(0.3〜0.7): 検索結果とWeb検索結果を併用
  • Knowledge Refinement: Correct判定の文書からも不要な情報を除去し、クエリに関連する部分のみを抽出
  • Web検索フォールバック: 内部ナレッジベースでカバーできないクエリに対し、リアルタイムWeb情報で補完
  • プロンプトベース適用: Self-RAGと異なりファインチューニング不要。GPT-4o・Claude Sonnet 4.6・Llama 3等どのモデルにも適用可能
  • 評価モデルコスト: T5-largeベース評価器は1クエリあたり約50ms。LLM本体の推論時間に比べて無視できるレベル
  • ベンチマーク: PopQA・Biography・PubHealthで従来RAGを+3〜8%上回る精度
  • LangGraph実装: LangGraphの公式テンプレート「Corrective RAG」として提供されており、導入容易

処理フロー

ステップ処理判定
1クエリ入力—
2ベクトルDB検索(Top-K文書取得)—
3評価モデルで関連性スコアリングCorrect / Incorrect / Ambiguous
4aCorrect → Knowledge Refinement不要情報除去
4bIncorrect → Web検索フォールバックGoogle/Bing API
4cAmbiguous → 両方を統合内部+Web
5精製された文書でLLM回答生成—

スペック比較

手法ファインチューニング検索評価フォールバック導入難度精度向上
通常RAG不要なしなし★☆☆ベースライン
HyDE不要なしなし★★☆+5〜15%
Self-RAG必須あり(内蔵)なし★★★+10〜20%
CRAG不要あり(外部評価器)Web検索★★☆+3〜8%

選び方・注意点

  • クローズドモデルで使える: GPT-4o・Claude等のAPI経由モデルでも適用可能。Self-RAGが使えない環境での第一選択肢
  • Web検索API費用: フォールバック時にGoogle Custom Search API($5/1,000クエリ)やBing Search API($7/1,000クエリ)のコストが発生
  • 評価モデルの精度: T5-largeベースの評価器は汎用的だが、専門ドメイン(医療・法律)ではドメイン特化の評価器が推奨
  • レイテンシ: 評価ステップ+潜在的なWeb検索で、通常RAGより200〜800ms増加
  • プライバシー: Web検索フォールバックはクエリを外部APIに送信するため、機密情報を含むクエリには不適

関連用語との違い

CRAGの核心は「検索後の品質保証」にある。HyDEが検索クエリの改善、Self-RAGが検索要否の自律判断にフォーカスするのに対し、CRAGは「検索はするが結果が悪ければ別ソースから補完する」という実用的なアプローチ。Web検索フォールバックは内部ナレッジベースの不足を補うため、企業導入時に「ナレッジベースが完璧でなくても動く」安心感を提供する。

よくある質問(FAQ)

Q1: CRAGとSelf-RAGはどちらを選ぶべき? A: ファインチューニング環境があり最高精度を求めるならSelf-RAG。API経由のクローズドモデルで手軽に導入したいならCRAG。CRAGはプロンプトエンジニアリングのみで実装でき、導入のハードルが低い。

Q2: Web検索フォールバックを無効化できる? A: 可能。CRAGの評価ステップのみ使い、Incorrect判定の場合は「情報不足で回答できません」と返す設定にできる。機密環境ではこの設定が推奨。

Q3: LangGraphでCRAGを実装するのにどのくらいかかる? A: LangGraph公式テンプレート「Corrective RAG」を使えば、ベクトルDB(Chroma/Pinecone)とWeb検索API(Tavily)の設定込みで約2〜3時間で動作するプロトタイプが構築できる。本番化にはエラーハンドリング・ロギング・評価パイプラインの追加で1〜2日程度。

まとめ

  • CRAGは検索結果を3段階評価し、低品質な結果をWeb検索でフォールバックするRAG改良手法
  • ファインチューニング不要でGPT-4o・Claude等のクローズドモデルにも適用可能
  • LangGraphの公式テンプレートとして提供されており導入容易
  • Self-RAGが使えない環境での実用的な代替として、企業RAGシステムに広く採用
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/5/31