CRAG (Corrective RAG) 2024(シーラグコレクティブラグ2024)
Yan ら 2024年 RAG 改良手法。検索結果の正確性を評価→不正確時は Web 検索フォールバック・知識精緻化
概要
CRAG(Corrective Retrieval Augmented Generation)は 2024年1月にカリフォルニア大学 Riverside の Shi-Qi Yan・Jia-Chen Gu・Yun Zhu・Zhen-Hua Ling ら 4名 + 中国科技大学(USTC)の研究チームが arXiv:2401.15884 で発表した RAG 改良手法(論文「Corrective Retrieval Augmented Generation」)。
従来 RAG は検索結果の正確性に関わらず全てを LLM に渡していたが、CRAG は Retrieval Evaluator(軽量モデル)で検索結果の正確性を 3 段階(Correct / Incorrect / Ambiguous)に評価し、Incorrect 時は Web 検索(Google/Bing API)にフォールバック、Ambiguous 時は両者をマージする革新的アプローチ。
最大の優位性は Self-RAG (2023) と異なり 学習不要のプラグアンドプレイで、既存 RAG パイプラインに 1 モジュール追加するだけで動作する点。PopQA・ARC-Challenge・PubHealth・Bio で Self-RAG を上回り、特に Web フォールバック効果で「最新情報・専門外領域」での精度大幅向上。LangChain・LangGraph に 2024-04 公式統合された。
主な特徴・仕組み
- Retrieval Evaluator: T5-large 0.7B(軽量)で検索結果の正確性を 3 段階評価
- 3 状態判定: Correct(信頼度 > 0.7)/ Incorrect(信頼度 < -0.7)/ Ambiguous(中間)
- Correct: 検索結果を知識精緻化(重要文だけ抽出して LLM に渡す、ノイズ除去)
- Incorrect: Web 検索フォールバック(Google/Bing/Tavily API)で新規検索
- Ambiguous: 内部検索 + Web 検索の両者をマージして LLM に渡す
- 学習不要: Retrieval Evaluator は事前学習済モデル、ファインチューン不要
- プラグアンドプレイ: 既存 RAG パイプラインに 1 モジュール追加で動作
- 計算コスト: 標準 RAG +50%(Evaluator 推論 + 場合により Web 検索)
- 性能: PopQA 59.5%(Self-RAG 54.9%)・ARC 67.2%(Self-RAG 60.1%)
- OS バージョン: 論文 v1 (2024-01)・LangChain 0.1.5+ 公式統合
スペック比較表
| 項目 | CRAG (2024) | Self-RAG (2023) | HyDE (2022) | 標準 RAG |
|---|---|---|---|---|
| 検索結果評価 | あり (T5 評価器) | あり ([IsRel]) | なし | なし |
| Web フォールバック | あり | なし | なし | なし |
| 学習必要 | なし | あり (fine-tune) | なし | なし |
| プラグアンドプレイ | あり | なし | あり | - |
| PopQA 性能 | 59.5% | 54.9% | 50.0% | 48.3% |
| 計算コスト | 標準+50% | 標準 2-3x | 標準+10-20% | baseline |
具体例・対応製品
- LangChain CRAG (2024-04): 公式統合、CorrectiveRagChain クラス
- LangGraph CRAG Tutorial (2024-05): 状態機械実装、9 ノード構成
- LlamaIndex Corrective RAG (2024-06): LlamaIndex 標準パイプライン
- CRAG Llama 3 (HuggingFace 2024-07): Llama 3 8B + CRAG 実装、コミュニティ人気
- CRAG with Tavily Web Search (2024-04): LangChain 公式 Web 検索統合
選び方・注意点
- Self-RAG との比較: CRAG が学習不要 + 性能 +5-10% 上回り、プラグアンドプレイで運用容易、新規構築なら CRAG 一択
- Web 検索 API 必要: Google ($5/1000 query)・Bing ($3/1000)・Tavily ($30/月) 等、コスト発生
- Evaluator 信頼度閾値調整: 厳格 (+0.9/-0.9) = Web 検索多発でコスト増・甘い (+0.3/-0.3) = 元来通り近い
- Web 検索レイテンシ: 標準 RAG +1-3 秒、低レイテンシ要件には不向き
- 多言語対応: Retrieval Evaluator (T5-large) が英語中心、日本語クエリは精度低下リスク
- GraphRAG 併用: GraphRAG + CRAG で更に高精度(ドキュメントグラフ + Web フォールバック)
- Tavily 推奨: Google API より RAG 特化、専用 RAG 検索 API
関連用語との違い
| 用語 | 違い |
|---|---|
| CRAG (2024) | 検索結果評価 + Web フォールバック・学習不要 |
| Self-RAG (2023) | 動的検索判断 + 自己評価・fine-tune 必要 |
| HyDE (2022) | 仮想ドキュメント生成・学習不要 |
| GraphRAG (2024) | ドキュメントをグラフ構造化 |
| LightRAG (2024) | グラフ + ベクトル軽量版 |
よくある質問(FAQ)
Q1: Web 検索フォールバックの効果は? A: 最新情報(今日のニュース・最新 React 18 仕様)・専門外領域(社内 ドキュメントに記載なし)で大きく効果。実測で正解率 +15-25% 向上、特に時事的・最新 API 質問で顕著。コストとレイテンシのトレードオフ。
Q2: Retrieval Evaluator はどうやって閾値決める? A: 論文では +0.7 / -0.7 を標準閾値として推奨。サービス特性で調整:(1) 内部知識ベース充実なら +0.5 / -0.5(緩め、Web 検索抑制)(2) 一般質問対応なら +0.7 / -0.7(標準)(3) 最新性重視なら +0.9 / -0.9(厳格、Web 検索多用)。
Q3: LangGraph と LangChain どちらで実装? A: 単純な CRAG なら LangChain(CorrectiveRagChain で1行)、複雑なフロー(multi-step・条件分岐・ループ)なら LangGraph 推奨。LangGraph 公式 Tutorial(9ノード状態機械)が学習リソース充実。
まとめ
- UC Riverside 2024年1月発表・RAG 改良手法
- Retrieval Evaluator で 3 段階評価 + Web フォールバック
- 学習不要・プラグアンドプレイで運用容易
- PopQA 59.5% で Self-RAG 凌駕・最新情報対応
- LangChain・LangGraph 公式統合・現代 RAG 標準