論文紹介：RAG or Long-Context LLMs?

# はじめに
LLM導入時にオリジナルのナレッジを学習させる手段として、RAGが主流となって久しいが、最新のLLMは非常に長い文脈を直接処理できるため、ある程度の分量ならRAGを介さずプロンプトに長文の情報を直接入力して応答生成する方法も可能になりつつある。
このような方法、Long-Context（以下LCと略記）プロンプトとRAGを比較した論文を目にしたので、内容を纏めてみた。論文には、比較だけでなく双方の利点を組み合わせた"Self-Route"というアプローチも提案されていた。
|項目|内容|
|---|---|
|論文|Retrieval Augmented Generation or Long-Context LLMs?　A Comprehensive Study and Hybrid Approach
|著者|Google Deep Mind社4名＋ミシガン大 1名|
|発行|24/7/23|
|公開URL|https://www.arxiv.org/abs/2407.16833|
# （補足：取組背景）
1. 自身の関与した複数のコンサル案件でRAGとの接点はあったものの、必ずしも有効とは思えないケースもあり、LCも一案では？という漠然とした思いがあった。（RAG不要ですむなら、LLMの実業務適用のハードルはかなり下がる筈で、それに越したことはない）
2. そんな中、Google Discoverが前述の論文に言及した記事 “RAGよりも高性能で安い、生成AIの精度を高める「メニーショットICL」の威力” を自分に推奨
https://xtech.nikkei.com/atcl/nxt/column/18/00692/103100144/
・記事曰く、RAG構築・運用コスト（概ね数百万円以上）を考慮すると、LC活用はパフォーマンス、コストとも有利な場合が多そう。
・記事内では、LCプロンプトをMany-Shot ICL(In-context learning)と表現
# 本論文の構成
|章|タイトル|内容|
|---|---|---|
|1|Introduction|・LLMはRAGにより最小コストで大量の情報にアクセス可能だが、最新のLLMがLCを直接理解可能となった今、LCとRAGのパフォーマンス、コスト両面での比較は有意義|
|2|Related Works|・関連研究|
|3|Benchmarking RAG vs LC LLM|・比較の前提（データセット、モデル、評価指標等）<br>・比較結果 → LCは殆どのケースでRAGを上回るパフォーマンスを実現|
|4|Self-route|・RAGとLCのハイブリッド案検討に至った背景<br>・ハイブリッド案(Self-route）の概要<br>・LCやRAGとの比較結果 →「Self-route」はLCとほぼ同等なパフォーマンスを実現しながら、コストを大幅に削減|
|5|Analysis|比較を通して発見された様々な興味深い事実<br>・チャンク数の影響<br>・RAGが回答できない典型例<br>・合成データの影響 etc.|
|6|Conclusion|・LC はパフォーマンスに優れるものの、RAG はコストが低く、入力がモデルの入力上の制約を大幅に超える場合に有利な中、モデルの自己判断でクエリを動的にルーティングするSelf-routeは、双方のいいとこ取りとなり、高いパフォーマンスを低コストで実現|

以上の中から3～5章を中心にまとめてみた。

# 3章：Benchmarking RAG vs LC LLM
### 3.1/3.2 比較の前提（Datasets and Metrics/ Modeles and Retrievers)
|項目|内容|
|---|---|
|使用データセット|Long-Bench, ∞Bench からの9セット<br>・ともに複数言語の合成文書、実文書両方をカバーした最近のLLM評価用データセットの集合<br>・英語、実文書、クエリベースのタスクを主なスコープとして選択（Table6参照）|
|評価指標|・自由回答形式の QA タスクの F1値<br>・複数選択形式の QA タスクの精度<br>・要約タスクの ROUGE スコア<br>※ROUGE: Recall-Oriented Understudy for Gisting Evaluation|
|使用モデル<br>（入力トークン数）|・Gemini-1.5-Pro　(100万トークン)<br>・GPT-4O　　　　(12.8万トークン)<br>・GPT-3.5-Turbo 2 (1.6万トークン)|
|使用リトリーバー|Contreiver, Dragon|

![table6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/1094e3f3-1093-0e6d-99d9-525a3e17f261.jpeg)
※処理に関する補足
・Promptの{context}に入力される長文を、300 語ごとのチャンクに分割し、質問文とのコサイン類似度の上位 k個のチャンクを選択（default k=5）
・チャンクは類似度スコアで順序付けの上、各チャンクの先頭にチャンクindexを付加（各チャンクの長文の中での順番も、文章の流れを把握する情報として活用）

### 3.3 比較結果（Benchmarking results）
3モデルとも殆どのデータセットでLCがRAGを上回った。特にGPT-4o、Gemini-1.5-Proで顕著。(詳細はTable 1a参照）
・例外として、GPT-3.5-Turboでは ∞Benchの2種のデータセットでRAGがLCを上回った（Table 1aの赤点線部分）。
・これは、GPT-3.5-Turboの入力トークンサイズ（16k）と比べ、∞Benchの2種のデータセットが大幅に長かった（平均147k）ことに起因すると考えられる。

【窪田補足】論文には言及がないが、上記の他、GPT-3.5-TurboとMultiFieldQA、GPT-4oとQasperの組合せでもRAGがLCを上回った（Table 1aの赤太字で点線のない部分）。さらに論文では「平均でLCはRAGを、Gemini-1.5-Proで7.6%、GPT4oで13.1%、GPT-3.5-Turboで3.6%上回る」と書かれているが、Table 1aの数値で差分を計算すると12.4%、16.1%、1.7%と微妙に異なっている。結論の方向性に影響する程の差ではないが、気になる。

![Table1a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/f5f30af9-825f-7898-2367-b7741c571561.jpeg)
![figure1a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/9216a596-fd0b-586d-7f64-6d108c40ef9b.jpeg)
【窪田補足】上記は論文に掲載された数値をExcelに入力した数表とその内容の折れ線グラフ（論文の中の数表は、別章で使われる数値も一緒に纏められて煩雑なため、この章で使われる数値のみを抜粋し、フォント・背景色等も工夫してあらためて作成した）

# 4章：Self-Route
### 4.1 ハイブリッド案検討に至った背景（Motivation）
先述のようなパフォーマンス差に拘らず、RAGとLCの予測内容は実は大半が一致していた。
・Fig.2参照：RAGとLCの予測スコアの差分(S RAG – S LC)の分布を見ると、63%が差分=0に集中
→殆どの問いでRAGを活用し、LCでしか正しい予測が出せない問いにだけLCを使えば、RAGの低コストとLCの高パフォーマンスをある程度両立できそう
![figure 2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/5fa455e2-7348-7ceb-e796-9854670753cd.jpeg)

### 4.2 ハイブリッド案概要（Self-route）
次の2つのステップに分かれる。
Step1：①通常のRAG～②RAGで得た情報だけでの回答可否の判断～③a YESならRAGで得た情報だけで回答生成／③b NOならStep2へ遷移
Step2：関連する全文、即ちLong-Contextをもとに回答生成（全文の入手経路は論文内に記載なく不明）
【窪田補足】論文内に図がなく、論文記載をもとに自分で作成したため、前述の様に不明点もあり、また解釈違い等による不備が含まれる可能性もある。
![Self-Route.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/c6ad9d36-5dcd-5be3-73cf-dbe36775f98d.jpeg)

### 4.3 LCやRAGとの比較結果（Results）
Self-routeの正答率はRAGを大幅に上回り、LCに匹敵する結果を達成（詳細は Table 1b参照）

【窪田補足】論文ではさらに具体的に「LCと比較すると、GPT-4oでは -0.2%、Gemini-1.5-Proでは-2.2%とわずかに低下しつつも、GPT-3.5-Turboでは1.7%向上」と書かれているが、Table 1bの数値で差分を計算すると　+0.2%、-2.3%、3.2%と微妙に異なっている。

![Table1b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/3ea77660-63b0-31a1-4cdb-86afb65643c8.jpeg)

RAGの回答可能率（Self-routeでRAG抽出のチャンクだけで回答可となった率）はどのモデルでも高く、たいていはRAGだけで回答可能という前述4.1の内容を裏付けている。またそのため、必要トークン数は大幅に削減され、トークン%（LCの場合のトークン数を100とした時のSelf-routeのトークン数）は100よりかなり低い値となり、トークン数での従量制となっている現在のLLM課金体系では、大幅なコスト削減に繋がる。（詳細はTable 1c参照）

【窪田補足】論文では「3つのモデルとも一貫して50％以上をRAGにルーティングし、特にGemini-1.5-Proでは、回答可能率は 81.74% に達する」とまで書かれているが、Table 1cを見ると、実際には50％未満のケースもいくつかあり（特にGPT-4oで顕著）、Gemini-1.5-Proの回答可能率は平均76.78%。その他、「GPT-4oは61%、Gemini-1.5-Proは38.6%のトークンしか使用しない」という記述もあるが、Table 1cの記載は61.4%と38.85%。これらも結論の方向性に影響する誤植ではないが、やや多すぎる印象。
![Table1c.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/1e4dd896-4c3e-7f95-7dca-c235c84c9a6f.jpeg)

# 5章：Analysis
### 5.1 チャンク数の影響（Ablations of k）
 
**正答率（Performance）**
RAG、Self-routeとも、kが大きいほど向上（Fig 3a参照）　※k値：RAGで取得するチャンク数
・より多数のチャンクがLLMに送られ、状態としてはLCに近づく
・但し、Self-route の利点は kが小さいほど顕著
　例：k=1では Self-route はRAGの約2倍の正答率を発揮
　　　k>50では Self-route, RAG, LLCはほぼ同等の正答率

**計算コスト（Token Percentage）** =LCを100％とした時の他の方法でのトークン量
 Self-routeは k=5で最小になる　（Fig 3b参照）
・kの増加は基本的にはトークン量、即ちコストの増加につながるが、k<5の間は、kの増加に連れRAGで回答可能なケースが増え、LC（=全文入力ケース）が減る分、コストが減少
・但しkが5を超えると、LC（=全文入力ケース）の減少のペースを kの増加によるトークン量増加のペースが上回り、コスト増に転じる

最小コストになる k値は、データセット毎に異なる
・平均すると k=5で最小コストになるが、多段階推論が不要なデータセット (NarrativeQA, QMSum等) では、k=1で最小コストになる。（※大抵、1チャンクでも回答に十分な情報が含まれ、チャンク増によりRAGで回答可能となるケースの増加が限定的になるということかと解釈）
   
![figure3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/dec89786-adc0-bd69-79fb-885dfa24c49f.jpeg)

### 5.2 RAGが回答できない典型例（Why Does RAG fail?）
Self-routeのStep1（RAG-and-Route Step）で「回答不可」と判断された問いの内容を人が確認したところ、次の4種類に大別された。
|ケース|内容|例（Few-Shot Promptで使用）|
|---|---|---|
|A|多段階推論が必要な問い<br>(multi-step)|「You Can という曲の演奏者の国籍はどこですか?」<br>→演奏者、さらに演奏者の国籍という 2ステップの推論が必要<br>（「映画 Wine Of Morning の監督はどこで働いていますか?」「Miss Sara Sampsonの著者が書いた別の著名な作品は?」も同様）|
|B|一般的すぎる問い<br>(general)|「グループは Dave が去ることをどう思いましたか?」<br>→グループには複数の人がいて異なる考えを持つ可能性があり回答不可|
|C|長くて複雑な問い<br>(complex)|「ジュリー・モーガンは、オンライン調査で、子どもの権利、保護、要求の正当性に関する評価について話しているときに何を詳しく説明しましたか?」|
|D|明示的でない問い<br>(implicit)|「ケルバーの船の後ろの影の原因は何ですか?」<br>→ストーリー全体を包括的に理解しないと回答不可<br>「この記事には何語ありますか?」<br>→完全な記事がないと回答不可|

これらを使ったFew-Shot promptで「回答不可」の全ケースを、A～D、E.その他のどれかに分類し、データセット別の分布としてまとめると、「回答不可」の傾向がデータセットの特徴を如実に反映していた。（Fig4参照）
![figure 4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/7867d455-182a-94d8-599d-505e6289f50b.jpeg)

### 5.4 合成データの影響（Result on synthetic data）
実在の文章ではなくデータセット用に作為的に作られた文章が、意図せずRAGとLC のパフォーマンス比較に影響を与える可能性が確認された。（Table 3参照）

データセット：∞Bench の「PassKey」
内容：needle-in-a-haystack test（針山の中の針探しテスト）
特徴：パスキーを含む文（例：「パスキーは 123456 」）が無関係なテキストのチャンク内に存在

オリジナルの問い：「パスキーは何ですか？」
変更パターン1：「テキスト内に隠されている特別なトークンは何ですか？」
変更パターン2：チャンクに 2 つのパスキーが存在。「 1 番目と 2 番目、どちらのパスキーが大きい？」

![table3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628688/aefffd29-4ebd-b03b-3051-f83f826d5f8a.jpeg)

# 感想
**1. 計算コストのみの考慮に違和感**
パフォーマンス（精度）面でLCがRAGを上回ることはある程度予想通りとはいえ、様々なデータセットやモデルを使って明示してもらえたのは有意義だったが、コスト面では計算コストしか考慮せずにRAGが大幅にベターと断じてハイブリッドを志向する態度にやや違和感。ハイブリッドにすれば、計算コストが減らせても、RAGの構築・運用コストは従来どおり発生する筈で、LC単体と比べコストが改善されるとは考えにくい。今後、LLMの更なる普及で料金（計算コスト）のさらなる低減が見込まれるなら、LCの方がさらに有利になる可能性もありそう。
　
**2. 論文自体に誤植が多い**
Deep Mindという著名企業の研究者の論文としては意外だが、各章で追記したとおり、数表の数字と文中の数字との不整合がいくつも散見された。結論の大きな方向性への影響はないにせよ、特に注目の集まる領域の論文でもあり、明らかな不備はご修正いただきたいところ。（論文の更新版を出した際、数表だけ差し替え、本文の中の数値の記載の確認を怠ったような類かと推測。）
　
**3. 合成データの影響が興味深い**
5章に記載された比較の周辺の分析は全編興味深かったが、特に「合成データの影響」、即ち大意を変えない些細な文章変更によるRAGの精度の大幅な変化は、人に気づかれないでAIを欺く点で画像認識のAdversarial Examplesに近いものを感じる。RAGやLLMの思わぬ癖や傾向の可視化、形式知化の領域はまだまだ奥が深そう。
　
**4. GPTsが大活躍**
論文自体の感想ではないが、今回GPTsの1つである「論文要約GPTs」が、和訳してもわかりにくい箇所の理解を深めるのに大変重宝したので、記載しておきたい。論文全文を読み込ませ、理解に自信のない箇所の自分の解釈等を伝えて正否判断や補足説明を求めると、頼りになる先輩のように的確な説明をしてくれた。