Self-RAG (2023)(セルフラグ2023)
Asai ら Washington/AI2 2023年 RAG 改良手法。LLM が検索要否を動的判断・retrieve token + critique で自己評価しながら生成
概要
Self-RAG は 2023年10月にワシントン大学(Seattle)・AI2(Allen Institute for AI、Paul Allen 創設)の Akari Asai・Zeqiu Wu・Yizhong Wang・Avirup Sil・Hannaneh Hajishirzi ら 5名が arXiv:2310.11511 で発表した RAG 改良手法(論文「Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection」、ICLR 2024 Oral 採択)。
従来 RAG は「常に検索 → 必ず使う」固定フローだったが、Self-RAG は LLM が 検索要否を動的判断・検索結果の関連性を自己評価・生成結果の正確性を自己批判する 3 段階のリフレクション機構を導入。特殊トークン(retrieve token: 検索すべきか / IsRel: 関連性 / IsSup: 出典根拠 / IsUse: 有用性)を学習して、LLM が自律的に検索と生成を制御する画期的アプローチ。
PopQA・PubHealth・TriviaQA・ASQA・ARC 等 6 タスクでChatGPT-3.5+RAG を上回る性能達成。「LLM が自分の弱さを認識して検索する」という人間的な振る舞いを実現した点で AI Agent 系統研究の重要マイルストーンとなった。
主な特徴・仕組み
- 4 種特殊トークン:
[Retrieve]検索要否・[IsRel]関連性・[IsSup]出典根拠・[IsUse]有用性 - 動的検索判断: LLM が
[Retrieve=Yes/No]出力 → No なら直接生成・Yes なら検索実行 - 並列セグメント生成: 1 クエリで複数検索結果を並列処理 → 自己評価でベスト選択
- 学習方式: GPT-4 で生成した 100K の Self-RAG 学習データで Llama 2 7B/13B を fine-tune
- 性能: PopQA 54.9%(ChatGPT+RAG 50.5%)・ASQA 31.7%(ChatGPT+RAG 30.6%)
- モデルサイズ: Llama 2 7B / 13B の Self-RAG 版を公開
- 推論コスト: 標準 RAG 比 2-3 倍(複数候補生成 + 自己評価)
- 可制御性: 推論時に検索頻度・自己評価厳格性を hyperparameter で調整可
- OS バージョン: 論文 v1 (2023-10)・v2 (2024-03 ICLR camera-ready)
スペック比較表
| 項目 | Self-RAG (2023) | HyDE (2022) | 標準 RAG | CRAG (2024) |
|---|---|---|---|---|
| 検索動的判断 | あり | なし | なし (常時) | あり |
| 結果自己評価 | あり ([IsRel/IsSup]) | なし | なし | あり |
| 学習必要 | あり (fine-tune) | なし | なし | なし (Plug-and-play) |
| 推論コスト | 高 (2-3x) | 中 (+1 LLM call) | 低 | 中 |
| 採用例 | LangGraph, LlamaIndex | LangChain, LlamaIndex | 標準 | LangChain |
具体例・対応製品
- selfrag/selfrag-llama2-7b (HuggingFace 2023-10): 公式 Llama 2 7B Self-RAG モデル
- selfrag/selfrag-llama2-13b (HuggingFace 2023-10): 公式 Llama 2 13B Self-RAG モデル
- LangGraph Self-RAG (2024-04): LangChain の状態機械フレームワークで実装
- LlamaIndex Self-RAG Pipeline: LlamaIndex 標準サポート
- Self-RAG Mistral (コミュニティ 2024-02): Mistral 7B + Self-RAG 学習データの fine-tune 版
選び方・注意点
- fine-tune が必要: HyDE のようなプラグアンドプレイ不可、専用学習データで再学習必須
- 公式モデル使用推奨: selfrag/selfrag-llama2-7b/13b が標準、独自 fine-tune は学習コスト大
- 検索頻度トレードオフ: 検索頻度高(厳格)= 精度向上 + コスト増、低(緩い)= コスト減 + 精度低下
- LangGraph 推奨: 状態機械フレームワークで Self-RAG を表現すると複雑なフロー管理が楽
- 公開モデル制約: Llama 2 base のため Llama 3 / Mistral / Qwen 等の最新モデルでは独自 fine-tune 必要
- コスト見合い: 標準 RAG の 2-3 倍推論コスト、低レイテンシ要件には不向き
- 2024 後継研究: CRAG (2024) は学習不要で同等効果、Self-RAG の代替として注目
関連用語との違い
| 用語 | 違い |
|---|---|
| Self-RAG (2023) | 動的検索判断 + 自己評価・fine-tune 必要 |
| HyDE (2022) | 仮想ドキュメント生成・学習不要 |
| CRAG (2024) | 検索結果評価 + Web フォールバック・学習不要 |
| GraphRAG (2024) | ドキュメントをグラフ構造化 |
| LightRAG (2024) | グラフ + ベクトル軽量版 |
よくある質問(FAQ)
Q1: なぜ動的検索判断が重要? A: 「フランスの首都は?」のような汎用知識クエリは LLM 単独で正答可、検索すると逆にノイズで精度低下する場合あり。一方「最新の React 18 機能」は検索必須。LLM 自身が「これは知っている / 知らない」を判断できれば最適な検索戦略を取れる。
Q2: 4 種トークン学習はどうやる?
A: GPT-4 で「ドキュメント X を引用して質問 Y に回答した時、[IsRel=Yes/No] [IsSup=Yes/No] [IsUse=5/3/1] のラベルを付ける」というアノテーションを 100K サンプル生成 → そのラベル付きデータで Llama 2 を SFT。手動アノテーション不要で大規模学習可能。
Q3: CRAG (2024) との違いは? A: Self-RAG は学習で動的判断を獲得(fine-tune 必要)、CRAG は別途 retrieval evaluator モデルで判断(学習不要・プラグアンドプレイ)。性能は同等、コスト・運用性で CRAG が勝つシナリオ多い。
まとめ
- ワシントン大・AI2 2023年10月発表・ICLR 2024 Oral
- 4 種特殊トークンで動的検索判断 + 自己評価
- Llama 2 7B/13B 版公開・PopQA で ChatGPT+RAG 凌駕
- LangGraph・LlamaIndex 標準サポート
- AI Agent 系統研究の重要マイルストーン