AI・機械学習
上級

Self-RAG(Self-Reflective Retrieval-Augmented Generation)(セルフアールエージー)

LLMが自律的に「検索が必要か」「検索結果は関連しているか」「生成した回答は根拠に基づいているか」を判断するRAGフレームワーク。2023年にAsai et al.が提案し、不要な検索を省いて効率と精度を両立させる。

0 回閲覧
0 いいね
2026/6/20 更新
関連タグ
RAG
Self-RAG
リフレクション
検索拡張生成
LLM

Self-RAGとは

Self-RAG(Self-Reflective Retrieval-Augmented Generation)は、LLMが検索の必要性・検索結果の品質・生成回答の根拠性を自律的に判断するRAGの発展形である。2023年にAkari Asai et al.が論文「Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection」で提案した。従来のRAGは全クエリに対して検索を実行するが、「日本の首都は?」のような常識的な質問には検索不要である。Self-RAGはこの無駄を排除し、必要な時だけ検索する適応的なRAGを実現する。

主な特徴・仕組み

  • 4つのリフレクショントークン: LLMの語彙に追加される特殊トークン
    • [Retrieve]: 検索が必要か判定(Yes/No)
    • [IsRel]: 検索結果がクエリに関連しているか判定(Relevant/Irrelevant)
    • [IsSup]: 生成テキストが検索結果に基づいているか判定(Fully Supported/Partially/No Support)
    • [IsUse]: 最終回答がユーザーにとって有用か判定(5段階スコア)
  • 学習方法: GPT-4で生成したリフレクショントークン付きデータでLlama 2 / Llama 3をファインチューニング
  • 適応的検索: 全クエリの約40〜60%で検索をスキップし、レイテンシとAPI コストを削減
  • ベンチマーク性能: PopQA・PubHealth・ASQA等で従来RAGを+5〜10%上回る精度(Asai et al. 2023)
  • 推論時制御: リフレクショントークンの閾値を調整することで、精度重視/速度重視のバランスを制御可能
  • ベースモデル: 公式実装はLlama 2-7B/13B。コミュニティではMistral 7B/Llama 3-8Bへの適用例あり
  • トレーニングコスト: 7Bモデルで約8xA100 GPU × 24時間(推定$500〜1,000)
  • 商用利用: モデルウェイトはApache 2.0ライセンスで公開

処理フロー

ステップ処理リフレクショントークン
1クエリ入力—
2検索要否判定[Retrieve] Yes/No
3a検索実行(Yesの場合)—
3b直接生成(Noの場合)—
4検索結果の関連性評価[IsRel] Relevant/Irrelevant
5関連文書のみで回答生成—
6根拠性チェック[IsSup] Fully/Partially/No
7有用性スコアリング[IsUse] 1-5
8最高スコアの回答を出力—

ベンチマーク比較

モデル/手法PopQAPubHealthASQA
Llama 2-13B(RAGなし)14.749.221.6
Llama 2-13B + RAG38.252.129.4
Self-RAG (Llama 2-13B)54.972.433.9
ChatGPT + RAG42.854.330.1

選び方・注意点

  • ファインチューニングが必須: 通常のプロンプトエンジニアリングでは実現不可。リフレクショントークンの学習にGPU環境が必要
  • ベースモデルの制約: 公式実装はLlama系のみ。GPT-4oやClaude等のクローズドモデルにはリフレクショントークンを追加できない
  • 推論コスト: リフレクションステップの追加で通常LLM推論より20〜30%トークン消費増
  • 適用ドメイン: 事実性が重要なQA(医療・法律・技術文書)で効果大。創作・対話ではオーバースペック
  • 代替アプローチ: クローズドモデルを使う場合はCRAG(Corrective RAG)の方が導入しやすい

関連用語との違い

Self-RAGは「いつ検索するか」と「結果をどう評価するか」の両方をモデル内部で判断する点で、常に検索する通常RAGや検索結果を事後評価するCRAGと異なる。HyDEが「検索精度の改善」に特化するのに対し、Self-RAGは「検索の要否判断+品質保証」の総合フレームワーク。GraphRAGとは検索対象が異なり(文書 vs グラフ)、併用も可能。

よくある質問(FAQ)

Q1: Self-RAGはAPI経由のGPT-4oでも使える? A: 使えない。リフレクショントークンはモデルのファインチューニングで追加する必要があり、API経由のクローズドモデルには適用不可。同様のコンセプトをプロンプトで近似する「Prompt-based Self-RAG」の研究はあるが、精度は本来のSelf-RAGに劣る。

Q2: Self-RAGの学習データはどう作る? A: GPT-4にクエリ・文書ペアを与え、4種のリフレクショントークンを付与させた合成データ(約15万件)で学習する。論文公開のデータセット(selfrag/selfrag_train_data)がHugging Faceで利用可能。

Q3: 本番環境での推論速度はどの程度? A: Llama 2-7BベースでA100 GPU上、1クエリあたり約800ms〜1.5秒(検索スキップ時は300ms程度)。vLLM・TensorRT-LLMでの高速化で50%程度のレイテンシ削減が可能。

まとめ

  • Self-RAGはLLMにリフレクショントークンを学習させ、検索の要否と品質を自律判断させるRAG発展形
  • 全クエリの40〜60%で検索をスキップし効率化しつつ、事実性ベンチマークで従来RAGを上回る
  • ファインチューニング必須のためクローズドモデルには適用不可、オープンモデル(Llama系)専用
  • 事実性が重要なQAドメインで最も効果を発揮する
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/5/31