Self-RAGとは?検索するタイミングと回答の根拠を自己評価する仕組み

Self-RAGの検索と自己評価を表すアイキャッチ

Self-RAGの検索と自己評価を表すアイキャッチ

Self-RAGは、外部資料を検索する必要があるかを判断し、資料の関連性や生成した回答の裏付けも自己評価する、LLMの学習・生成の枠組みです。 正式名称はSelf-Reflective Retrieval-Augmented Generation。Asai氏らが提案し、ICLR 2024で発表されました。

例えば、図書館の開館時間を聞かれたとき、案内ページを取得するだけでは十分とは限りません。そのページが対象の図書館について書かれているか、回答に書いた時刻が実際に載っているかを分けて確かめる必要があります。

Self-RAGは、こうした判断を表す特殊なトークン(モデルが扱う記号)を文章とともに出せるよう学習します。「自分の回答を確認して」と頼むだけの方法とは、学習と生成制御まで含む点で異なります。著者公式ページ、Self-RAG原論文

通常のRAGに、どのような課題がある?

RAG(検索拡張生成)は、LLM(大規模言語モデル)に外部資料を渡して回答させる方法です。基本的な構成では、質問に近い資料を検索し、その内容と質問をモデルへ渡します。

ところが、検索結果が質問に似ていることと、回答の根拠になることは別です。開館時間を尋ねているのに図書館のイベント案内ばかり取得したり、資料にない時刻を回答へ加えたりする場合があります。

また、「この文章を柔らかい表現に直して」のように、与えられた文章だけで処理できる依頼では、外部検索を加える必要がない場合もあります。

比較軸 検索してから生成する基本的なRAG 原論文のSelf-RAG
検索のタイミング 最初に検索するなど、構成側で決める 生成の途中でも必要性を判断する
資料の扱い 検索結果を回答の材料にする 資料の関連性も評価する
回答の評価 別途、評価処理を設計できる 裏付けや有用性の自己評価を生成へ組み込む
導入上の負担 既存モデルと検索器を組み合わせやすい 評価トークンを学習したモデルと生成制御が必要

比較対象は入門的なRAGの構成です。現在のRAGシステム全般に検索制御や検証がない、という意味ではありません。基礎はRAGの仕組みで解説しています。

Self-RAGの流れ:検索・生成・自己評価

Self-RAGは、回答を小さな区切りごとに生成します。原論文の実験では一文を区切りとして扱っていますが、手法そのものが文だけに限定されるわけではありません。

検索する場合の概念的な流れは、次のようになります。

  1. 追加の資料が必要かを判断する。 質問と、それまでに生成した内容を手掛かりにします。
  2. 検索して、資料ごとの関連性を評価する。 外部の検索器が候補資料を取得します。
  3. 資料を使って回答の続きを生成する。 複数の資料に対応する候補を処理します。
  4. 裏付けと有用性を評価し、候補を選ぶ。 生成の確率と自己評価を使って続きを選択します。

検索が不要なら、その分岐では外部資料を新たに取得せず生成します。長い回答では、次の区切りに進んだときに検索が必要になる場合もあります。著者公式ページ:Retrieve・Generate・Critique

追加検索する場合と省く場合の処理分岐

*原論文の概念を基にした独自図です。追加検索しない分岐を含む簡略図です。関連性は候補生成前にも評価され、図では候補選択に用いる評価をまとめています。*

「自己評価に失敗したら必ず何度も検索し直す」という固定の手順ではありません。検索の判断と、資料ごとに作った回答候補の評価・選択を組み合わせる仕組みです。

四つの自己評価を、図書館の例で考える

原論文では、reflection tokens(検索や品質の判断を表す特殊な記号)を四種類に分けています。次の表は役割を日本語で整理したものです。

種類 判断すること 出力の意味
Retrieve 外部資料を検索するか 検索する・しない・取得済み資料の利用を続ける
ISREL 資料が質問に関連するか 関連あり・関連なし
ISSUP 回答中の検証すべき主張を資料が裏付けるか 全体を支持・一部を支持・支持なし
ISUSE 回答が依頼への応答として役立つか 1〜5の段階評価

ISUSEは、資料そのものの正確さを採点するものではありません。質問に対する回答の有用性を、資料による裏付けとは分けて評価します。Self-RAG会議版・Table 1

関連する資料でも、回答を支持するとは限らない

以下は実在の施設案内ではなく、仕組みを説明するための架空例です。

質問:青葉図書館は日曜日、何時まで開いていますか?

取得した資料 内容 質問との関係
開館案内 日曜日は10時〜17時、月曜日は休館 閉館時刻を直接確認できる
イベント案内 土曜日に読み聞かせ会を開催 同じ図書館の資料でも、日曜の閉館時刻への直接の答えがない

開館案内を使って「日曜日は17時までです」と答えれば、回答と資料の時刻は一致します。一方、「日曜日は18時までです」と答えた場合、資料は質問に関連していても、その回答を裏付けていません。

同じ関連資料でも回答の時刻が違えば裏付けの有無が変わる

*原論文の概念を基にした独自図です。施設と回答は説明用の架空例です。*

ここで分けたいのが、ISRELによる「資料の関連性」と、ISSUPによる「資料と回答の対応」です。同じ資料でも、生成した回答が変われば裏付けの判定は変わります。

正しい情報でも、質問に答えていないことがある

同じ質問に「月曜日は休館です」と答えたとします。開館案内には確かにそう書かれています。しかし、日曜日の閉館時刻を知りたい人への回答としては不足しています。

この例は、資料に裏付けられているかだけでなく、依頼に役立つかを見る必要性を示しています。ただし、ここで示した判定は説明用です。実際のSelf-RAGモデルを動かして得た評価値ではありません。

自己評価は、どうやって学習する?

「自己評価」という名前から、回答時に別のAIが毎回採点していると想像するかもしれません。原論文では、教材を作る段階と、その教材から学習したモデルを使う段階を分けます。

まずCritic(評価用モデル)を学習し、資料や回答に評価トークンを付けるために使います。次に、その記号と検索資料を含む教材でGenerator(回答を生成するモデル)を学習します。Generatorは文章と評価記号の両方を、次のトークンを予測する学習によって出せるようになります。

利用時には、学習済みのGenerator自身が評価トークンを生成します。そのため、別のCriticを毎回呼び出すことを必須としません。外部資料を取得する検索器の役割は残ります。Self-RAG公式リポジトリ:Training

Criticによる教材作成とGeneratorの学習・利用の違い

*原論文の概念を基に、教材作成・学習と利用時の役割を分けた独自図です。*

汎用のチャットモデルへ「自己評価してください」と指示すれば、似た確認処理は設計できます。ただし、それだけで原論文の特殊トークンの学習や、確率を使った候補選択まで再現したことにはなりません。

検索頻度や、重視する評価を調整できる

Self-RAGは、学習済みモデルの振る舞いを、利用時の設定でも調整します。

調整対象 変えたいこと 注意点
検索判断のしきい値 どれくらい検索を行うか 検索を減らしすぎると、必要な根拠を取り逃す可能性がある
自己評価の重み 裏付けや有用性を候補選択でどれだけ重視するか 自己評価自体が誤る可能性は残る
残す回答候補の数 複数の続きをどれだけ比較するか 候補を増やすと生成・評価の計算も増える

公式の説明では、検索トークンの確率による制御と、区切りごとに候補を比較する生成方法が示されています。したがって、「検索しないことがあるから、常に通常のRAGより高速」という結論にはなりません。著者公式ページ:Inference

原論文では、どのような結果が出た?

ICLR 2024会議版のTable 2では、複数の質問応答・事実検証・長文生成の課題を評価しています。以下は、そのうち7B(約70億パラメータ)規模の二つのモデルを比較した抜粋です。

評価データと指標 検索ありLlama2-FT 7B Self-RAG 7B
PopQA:質問応答の正解率 48.7 54.9
PubHealth:事実検証の正解率 64.3 72.4

数値は正解率の百分率です。差はそれぞれ6.2ポイント、8.1ポイントになります。比較対象のLlama2-FTは、同じ指示・応答ペアを使い、検索や評価トークンを含めずに学習したモデルで、回答時に検索を追加した構成です。検索資料や評価条件によって結果は変わるため、導入先で同じ改善幅が得られるとは限りません。

この表は原論文の条件での結果です。本記事による再測定ではなく、現在のモデルとの性能比較でもありません。また、学習方法と生成制御を含む比較なので、改善幅を単一のトークンや検索回数だけの効果とはみなせません。Self-RAG会議版・Table 2、5.1節

Self-RAGでも、資料と評価の誤りは残る

Self-RAGの自己評価はモデルの予測です。資料が古い、検索で必要なページが見つからない、資料に書かれた内容自体が誤っているといった問題を、自動的に解決できるわけではありません。

先ほどの図書館の例でも、古い案内を使って「17時まで」と正しく読み取れたとして、現在も17時閉館かどうかは別に確認する必要があります。「資料に合っている」と「現実に正しい」を区別する理由です。

実際の用途で導入を検討するなら、私は次の点を確認します。

  • 検索に使う資料の更新日と、正本となる情報源
  • 根拠がない質問や、資料同士が矛盾する質問への応答
  • 回答の正しさと、引用先が主張を支持するかを分けた評価
  • 検索回数、生成候補数、応答時間の測定

これは運用時の確認観点であり、原論文の再現実験を実施した結果ではありません。

よくある疑問

Self-RAGは必ずWeb検索する?

外部の検索器と資料群を利用する枠組みであり、毎回Web全体を検索するという意味ではありません。対象資料と検索器の構成によって、探す範囲は変わります。検索自体を省く場合もあります。

GraphRAGとは何が違う?

このブログで扱ったGraphRAG論文は、文書から関係を抽出してグループごとの要約を用意し、資料全体を問う質問に答える設計が主題です。Self-RAGは、生成中の検索判断や資料・回答の自己評価を学習へ組み込むことに焦点があります。比較するなら、検索の前に何を用意するかと、回答中に何を判断するかを分けると理解しやすくなります。GraphRAGの解説

引用が付けば、回答を信用してよい?

引用先が存在しても、主張がそこに書かれているとは限りません。Self-RAGはその裏付けを評価しますが、自己評価の誤りもあり得るため、重要な回答では引用元の内容まで確認します。

参考資料

本記事の施設名・資料・回答例は説明用の創作です。図は概念を独自に再構成し、原論文の図版やコードは転載していません。

コメント

タイトルとURLをコピーしました