この記事では、LLMが長い文章を理解できる時代においてもRAG(検索拡張生成)がどれほど役立つかを改めて調べた研究を紹介します。
研究チームは、検索で見つける情報の「量」と「品質」の関係が、ひっくり返したU字のような形になることを見つけました(どういう意味かわからない方は後述の説明をご覧ください)。
この研究で分かったのは、現在のLLMが理解できる文章の長さを最大限しようせずとも、もっと少ない言葉で質の高い答えを作れる「ちょうどいい」ポイントがあるということです。効率よく情報を探し、必要な部分だけをうまく使うことが大切だということを教えてくれています。
参照論文情報
- タイトル:In Defense of RAG in the Era of Long-Context Language Models
- 著者:Tan Yu, Anbang Xu, Rama Akkiraju
- 所属:NVIDIA
背景
LLMは日進月歩で発展し、最近では長い文章を理解する能力が強くなってきました。GPT-4oやClaude-3.5、Llama3.1などの新しいモデルは、128,000語もの長い文章を扱えます。さらに、Gemini-1.5-proは100万語もの文章を一度に処理できます。
この発展の影響で、RAGが本当に必要なのか疑問視されるようになってきました。RAGは、LLMが短い文章しか扱えなかった頃(例えば4,096語まで)には特に、多くの情報を扱うために欠かせない方法でした。
最近の調べでは、長い文章を理解できるLLMの方がRAGよりも良い答えを出す場合があることが分かっています。
しかし今回NVIDIAの研究者らは、「LLMに長すぎる文章を与えると、かえって大切な情報を見逃して、答えの質が下がるかもしれない」と考えました。つまり、ただ長い文章を与えれば良いわけではなく、必要な情報をうまく探して、的確に使うことの方が大切なのではないかと考えたのです。
こうした理由から、長い文章を扱う時のRAGの役立ち方を、もう一度よく調べる必要が出てきました。そして、検索した文章の順番を保ったまま使う新しいRAGの仕組みを作ることで、長い文章を扱うLLMの問題点を解決できるのではないかと考えられました。
この研究は、急速に進歩するLLM技術の中で、情報をうまく探して、的確に使うことの大切さを見直し、RAGの新しい可能性を探ることを目指しています。長い文章を理解できるLLMの時代でも、しっかりと設計されたRAGシステムが重要な役割を果たせる可能性を示すことが、この研究の目的となっています。
以下で実験内容と結果を詳しく紹介します。
順序保持型のRAG
今回研究者らは、前述したようにロングコンテキストLLMの問題点を解決するためのRAGアプローチを考案しました。「検索した文章の順番を保ったまま使う」順序保持型のRAGです。研究者らはこれをOP-RAG(Order-Preserve RAG)と呼んでいます。
長い文章の分け方
まず、長い文章を同じ長さのN個の部分(チャンク)に分けます。それらのチャンクは {ci}Ni=1 と書きます。iという番号は、そのチャンクが元の文章のどの順番で出てきたかを示しています。
質問との関連性を計算する
次に、与えられた質問に対して、各チャンクがどれくらい関連しているかを計算します。これは、質問とチャンクを数値の並び(埋め込み)に変換し、その類似度を調べることで行います。
si = cos(emb(質問), emb(チャンクi))
ここで、cos(・,・) は類似度を計算する関数、emb(・) は文章を数値の並びに変換する関数です。
上位kチャンクの選び方と順序の保持
質問との類似度が高い上位k個のチャンクを選びます。これらのチャンクの番号を J = {ji}ki=1 と表します。ここで大切なのは、これらのチャンクを元の文章での順番のまま並べることです。つまり、
jl > jm ⇔ l > m
というルールを守ります。
従来のRAGとの違い
下の図には、従来のRAGと新しいOP-RAGの違いが示されています。従来のRAGでは、チャンクを類似度の高い順に並べていましたが、新しい方法では元の文章での順番を守ります。
今回考案のアプローチOP-RAGを使用すれば、文章の流れが保たれ、より自然で正確な答えが期待できます。長い文章の構造や流れを大切にすることで、情報のつながりをより適切に扱えるようになります。
このやり方は、単に関連性の高い部分を集めるだけでなく、情報の間のつながりも考えるので、より洗練された答えを作れると考えられました。
実験
OP-RAGの性能を調べるために実験が行われました。
データセット
実験には、長い文章に対する質問応答を評価するために特別に作られた∞Bench(インフィニティベンチ)というテストの中のEN.QAとEN.MCデータセットが使われました。それぞれの説明を簡単に記載します。
EN.QA
- 351の質問と答えのペアで構成
- 平均して150,374語の長い文章を含む
- F1スコアという指標で評価
EN.MC
- 224の質問と答えのペアで構成
- 各質問に4つの選択肢がある
- 平均して142,622語の長い文章を含む
- 正確度(Accuracy)という指標で評価
なお、LongBenchという別のテストもありますが、文章の長さが平均20,000語未満で、最新のLLMを評価するには短すぎるため今回は使用されませんでした。
さまざまな条件での実験
文章の長さの影響
文章が長くなると、最初は性能が上がります。より多くの関連情報を含む可能性が高くなるためだと考えられています。
しかし、さらに長くなると、答えの質が下がりました。関係のない情報も増えてノイズになるためです。
モデル別の詳細としては、Llama3.1-8Bモデルは16,000語の長さで最高の性能を出し、Llama3.1-70BモデルはEN.QAで48,000語、EN.MCで32,000語の長さで最高の性能でした。
大きなモデルの方が遅れて最高点に達するのは、関係ある情報とない情報をより上手に区別できるからだと考えられています。
OP-RAGと従来のRAGの比較
今回の提案手法と従来型のRAGはどのような違いが出たでしょうか。
取り出す情報の数が少ない場合は、新しい方法はわずかに良い程度でした。しかし取り出す情報の数が多い場合、新しい方法が大きく上回ることがわかりました。
例えばEN.QAデータセットにおいて128チャンクの取り出し時、従来のRAGは38.40 F1スコアでOP-RAGは44.43 F1スコアでした。
また、EN.MCデータセットで192チャンクを取り出した時、従来のRAGは81.22の正確度で、OP-RAGは88.65の正確度でした。
主な結果
新しい方法(OP-RAG)を2つのベースラインと比べました。
vs. RAGを使わないロングコンテキストLLM
こちらは、多くの言葉を入力として使います(効率が悪くてコストが高い)。一方でOP-RAGは入力の言葉を大幅に減らしつつ、答えの質を上げました。
例えばLlama3.1-70Bモデルを使った場合、RAGなしのロングコンテキストLLMは117,000語で34.26 F1スコア(EN.QA)、一方でOP-RAGは48,000語で47.25 F1スコア(EN.QA)でした。
vs. SELF-ROUTE(モデルが自分で考えて、RAGかロングコンテキストLLMのどちらかを選ぶ方法)
こちらと比べても、OP-RAGは、より少ない言葉数でかなり高い性能を達成しました。
※SELF-ROUTEに関してはこちらの記事(RAGとLong-Contextの比較、そしてハイブリッドで活用する新しい方法)が参考になります。
以上の実験結果は、新しく提案されたOP-RAGが、効率よく情報を探して使うことで、長すぎる文章をすべて読み込むやり方よりも良い性能を示すことを証明しています。
まとめ
この記事では、LLMが長い文章を扱えるようになった今の時代に、RAGがどのように役立つかを新しく調べた研究を紹介しました。
研究者たちは、LLMに長すぎる文章を与えると、かえって答えの質が下がるかもしれないと考えました。そこで、順序保持検索拡張生成(OP-RAG)という新しい方法を提案しました。
実験の結果、OP-RAGは長い文章に対する質問応答で、これまでの方法よりも良い成績を上げることが分かりました。
この研究から分かったのは、単に長い文章をそのまま使うのではなく、必要な情報をうまく探し出して、的確に使うことが大切だということです。つまり、LLMが長い文章を扱えるようになっても、RAGのような方法はまだまだ重要だということを示しています。
- 参照論文URL:https://arxiv.org/abs/2409.01666
■サポートのお願い
AIDBを便利だと思っていただけた方に、任意の金額でサポートしていただけますと幸いです。