Retrieval-augmented generation (RAG) — 検索拡張生成
Retrieval-Augmented Generation (RAG)(検索拡張生成)は、人工知能の分野における手法であり、生成言語モデル(LLM)に外部の情報源へのアクセスを提供し、応答の精度と信頼性を向上させるものです。言い換えれば、モデルは応答を生成する前に関連データの検索(例えば、文書データベース、ウェブサイト、DB内など)を実行し、見つかった情報を基に応答を形成します[1][2]。このアプローチは、最新の情報源からの知識の「補完」を保証し、LLM自体の「記憶」容量の制限や古い情報といった制約を克服するのに役立ちます[3]。RAGシステムは、生成された応答内で特定の文書を(例えば脚注の形で)参照できるため、透明性が向上し、ユーザーが事実を確認できるようになります[1]。その結果、モデルが誤った情報を自信を持って提示するハルシネーションのリスクが低減されます[1][3]。RAGはLLMの知識ベースを実質的に無制限に拡張し、モデルが再学習なしに最新のデータを利用できるようにします[4]。
手法の起源と発展
情報検索と自動応答生成を組み合わせるというアイデアは、現代のLLMが登場するずっと以前から存在していました。1970年代には既に、与えられた質問に対してテキストデータベースから回答を探すquestion-answeringシステムの開発が試みられていました[1]。1990年代にはウェブサービスAsk Jeevesが登場し、自然言語での回答検索を普及させました。そして2011年には、IBM Watsonシステムがテレビ番組「ジェパディ!」で人間の参加者に勝利し、AIの可能性を示しました[1]。
現代の発展段階は、ニューラルネットワーク言語モデルの導入に関連しています。Retrieval-Augmented Generationという独立したアプローチは、2020年にFacebook AI Research、ユニバーシティ・カレッジ・ロンドンなどの研究者グループによって、パトリック・ルイスの主導のもと提案されました[1]。NeurIPS 2020で採択された彼らの研究では、RAGモデルが記述されています。これは、外部の「非パラメトリックな」知識ストアへの微分可能なアクセスを持つ生成的なseq2seqモデル(例えばBART)です[5]。著者たちは、外部の知識ベースとして英語版ウィキペディア全体を使用し、それをベクトルインデックス(約2100万のテキスト断片)として表現しました。このインデックスに対しては、ニューラルアルゴリズムDense Passage Retrievalを用いて検索が行われます[5]。入力されたクエリに対して、RAGモデルはインデックスから最も適切な断片を取得し、それらを応答生成のコンテキストに追加します。このメカニズムにより、Natural QuestionsやWebQuestionsなどのオープンな知識ベースを持つタスクで、新たなstate-of-the-art(最先端)の結果を達成することができました[2]。RAGモデルの応答は、複数の情報源からの情報を統合するため、以前の生成的アプローチよりも具体的で事実に基づいていると評価されました[2]。まもなく、FacebookはRAGのソースコードをオープンソース化しました。モデルはHuggingFace Transformersライブラリと関連データセットに統合され、開発者が自身のプロジェクトでRAGを容易に利用できるようになりました[2]。2020年以降、RAGという手法は急速に人気を博しました。著者によれば、その不格好な略語にもかかわらず、このアプローチは広く普及し、何百もの科学論文を生み出し、多くの商用サービスの基盤となりました[1]。
RAGの動作原理
Retrieval-Augmented Generationの基本図:検索モジュール(左)が知識ベースから関連文書を取得し、その後、生成モデル(右)がユーザーのクエリと見つかった情報を基に応答を形成します[6]。このアプローチにより、LLMは応答を生成する際に最新の外部データに依拠することができます。図は、ユーザーのクエリがベクトルに変換され、類似のテキスト断片を検索するために使用される様子を示しています。その後、これらの断片がモデルのコンテキストに接続され、その知識を「拡張」し、応答の精度を高めます。
RAGシステムは通常、2つの主要コンポーネントで構成されます:検索モジュール(retriever)と応答生成モジュール(generator)です[6]。準備段階では、知識ベースのベクトルインデックスが構築されます。すべての文書(テキスト)が断片に分割され、埋め込みモデルによって数値ベクトルに変換され、後の検索のために専門のデータベースに保存されます[6]。ユーザーからのクエリが入力されると、同じ埋め込みモデルがクエリをベクトルにエンコードします。次に、ベクトル空間で最近傍の検索が実行され、知識インデックスから最も類似したtop K個の断片(例えばK=5)が選択されます[6]。これらの断片は、クエリのトピックに関する可能性のある事実を含む外部コンテキストと見なされます。
次の段階で、形成されたコンテキストが生成モデルによって使用されます。元の質問と見つかったテキスト断片がLLM(例えば、seq2seqのようなトランスフォーマーや指示指向モデル)に入力され、最終的な応答が生成されます[2]。このようにして、言語モデルは、学習した(パラメトリックな)知識だけでなく、提供された外部データにも依拠することになります。元のRAGの実装では、BARTという事前学習済みモデルがジェネレーターの役割を果たし、外部の「メモリ」はDPRメソッドでインデックス化されたWikipediaのコレクションで表現されていました[5]。
知識を統合するためのフュージョンアプローチ
RAGの重要な特徴は、モデルが複数の検索された文書からの情報を組み合わせる方法です。すべてのテキストを単純に連結するのではなく、RAGはlate fusion(「結果の後期融合」)として知られるアプローチを採用します。生成モデルは、得られたK個の各断片を並行して処理し、それぞれに対して信頼度スコア付きの仮説的な応答を形成し、その後、これらの選択肢を最終的な結論に集約します[2]。この方法により、RAGは、どの単一の情報源にも質問に対する直接的かつ完全な答えが含まれていない場合でも、応答を統合することができます。例えば、必要な情報が異なる記事に分散している場合、モデルは複数の文書からの「手がかり」を一つの応答にまとめることができます[2]。(使用する文書の数を増やすと、通常、応答の網羅性が向上する一方で、テキストの結束性がわずかに低下することが指摘されています[7]。)
実装のバリエーション
2020年の原論文では、RAGアーキテクチャの2つの修正案が提案されています[6]。RAG-Sequenceモードでは、生成モデルは固定された一連の検索された文書を受け取り、それらを使用して応答全体を一度に生成します。一方、RAG-Tokenモードでは、動的な更新が可能です。次のトークンを生成する各ステップで、モデルは必要に応じて再度検索を実行し、応答を уточ化 するために追加のテキスト断片を読み込むことができます。両アプローチは同等の高い品質レベルを示します。RAG-Sequenceはより単純で高速ですが、RAG-Tokenは理論的に長い応答でより多くの異なる情報を考慮することができます[6]。
RAGの利点
- 最新性と事実の正確性。外部データを接続することで、LLMはモデルのパラメータだけでなく、実際の情報に基づいてより正確で根拠のある応答を提供できます。これにより、モデルの応答に含まれる古い情報や単に作り話である情報のリスクが大幅に低減されます[3][1]。「知識のスナップショット」が固定されたモデルとは異なり、RAGはモデルの学習完了後に出現したイベントや事実に関する質問にも、最新のデータソースにアクセスすることで答えることができます[4]。
- 透明性とユーザーの信頼。RAGシステムは、応答の基になった情報源(記事、報告書、データベースなど)へのリンクを提供することができます[1]。実質的に、モデルは脚注付きの学術論文のように応答を形式化するため、各事実の信頼性を検証できます。引用された一次情報源の存在は、ユーザーからの信頼を高め、得られた情報の検証を容易にします。
- 特定分野への特化。Retrieval-Augmentationにより、言語モデル自体を変更することなく、狭い知識ドメインにモデルの動作を比較的簡単に適応させることができます。そのためには、LLMに必要なトピックに関する専門的な知識ベース(医学論文、法的文書、企業の技術マニュアルなど)を提供するだけで十分です。モデルは、そのパラメータにおいては汎用的でありながら、選択されたデータセットから事実を引用するため、その分野の専門家として機能し始めます[4][8]。例えば、RAGベースの法的アシスタントは、検索範囲を特定の法域のコーパス(特定の国の法律)に限定し、応答がその法律に準拠することを保証できます[8]。
- 知識の柔軟性と更新可能性。従来のモデルでは、新しい知識を追加したり誤った事実を修正したりするために、拡張されたデータセットで再学習(ファインチューニング)を行う必要があり、時間とリソースがかかりました。RAGはこの問題を解決します。モデルの知識を更新するには、外部データベースを更新するか、追加の情報源を接続するだけで、モデルはすぐに新しい情報を使い始めます[2]。これにより、システムの最新性を容易に維持できます。実際、データはモデルの動作を中断することなく、リアルタイムで「ホットスワップ」することも可能です[1]。
- 効率性とリソースの節約。RAGアプローチは、すべての情報をパラメータ内に網羅しようとする超大規模モデルの訓練よりも、多くの場合、より実用的です。検索を統合することで、ニューラルネットワーク内ですべての事実を記憶しようとすることなく、中規模のモデルで同等の結果を達成できます[6]。さらに、RAGパイプラインの導入は比較的簡単です。既製のツール(フレームワーク、ライブラリ)が存在し、開発者たちは基本的なRAGプロトタイプが文字通り数行のコードで構築できることを示しています[1]。したがって、RAGはAI導入の総コストを削減します。各タスクごとに新しいモデルを訓練する代わりに、検索メカニズムを構成し、適切なデータを提供するだけで十分です。
RAGの問題点と限界
明らかな利点にもかかわらず、Retrieval-Augmented Generationは、検索コンポーネントと言語モデル自体の両方から制約を受け継いでいます[9]。以下に、RAGシステムに固有の主要な問題点を挙げます。
- 検索品質への依存。得られる応答の正確さは、取得されたデータの関連性と信頼性に直接依存します。検索モジュールが質問に関係のない、または誤りを含む文書を返した場合、生成モデルはこれらの事実を「修正」することはできず、それらに基づいて応答を生成します[8]。したがって、外部知識ベースの品質と最新性がRAGの精度を直接決定します。文書の出力が関連性を保つように、インデックスを定期的に更新し、ランキングアルゴリズムを調整する必要があります。
- 高い複雑性とリソース消費。RAGシステムが機能するためには、LLM自体だけでなく、検索のためのインフラ(大規模データベースの保存と更新、インデックス作成、クエリ実行時間)も必要です。これらすべてが計算コストを増加させ、言語モデル単体と比較して応答速度を低下させる可能性があります[8]。最悪の場合、検索段階での遅延や非常に大量のデータの処理がシステムを遅くします。実際には、パイプラインを最適化する(例えば、知識ベースのサイズや検索の深さを制限して応答時間を許容範囲内に保つ)ことで、応答の品質とパフォーマンスのバランスを取る必要があります。
- データと保守に関する要件。RAGが効果的に機能するためには、高品質で構造化され、アクセス可能な外部データが必要です。外部の知識ベースが poorly organized であったり、ノイズを含んでいたりすると、検索モデルは有用な情報を見つけるのが困難になる可能性があります[8]。さらに、必要なデータが常にオープンであったり安価であったりするとは限りません。企業は独自のナレッジベースを作成し、維持する必要があります。これにより、追加のコストが発生し、データの最新性を保つための労力(例えば、新しい文書の追加、古い情報の整理)が必要になります。RAGの弱点は、知識ベースを最新の状態に保つための保守への依存です。
- 一部のLLMエラーの不可避性。RAGは作話(confabulation)の数を大幅に減らしますが、誤った応答を完全に排除することは常に可能ではありません[9]。生成モデルは、提供されたコンテキストが不十分であったり矛盾していたりする場合、特に論理的な誤りを犯したり、情報を不正確に一般化したりすることが依然としてあります[9]。実際、RAGはエラーの焦点を移します。あからさまな作り話(「ハルシネーション」)の代わりに、知識統合のエラーがより頻繁に発生します。例えば、モデルが重要な断片を見落としたり、異なる情報源を不正確に関連付けたりすることがあります。そのため、責任が伴う応用(医療、法律)では、システムの応答を検証し修正するために、依然として人間の関与が必要です。
RAGの応用
Retrieval-Augmented Generationの手法は、知識の抽出と利用に関連する多くのシナリオで応用されています。以下に、RAGが最も大きな利益を示す主要な分野を挙げます。
- 質疑応答システムとチャットボット。RAGにより、ユーザーの質問に高い精度で答え、情報源へのリンクを提供できる仮想アシスタントやチャットボットを作成できます。カスタマーサポートの分野では、このようなボットは企業の内部ナレッジベース(FAQ、ヘルプ記事)を参照し、顧客からの問い合わせに即座に応答することで、従業員の負担を軽減します[8]。従来のFAQシステムとは異なり、RAGボットは自然な言葉で応答を定式化し、同時にユーザーの問題に特有の最新データでそれを「裏付け」ます。
- 医療とヘルスケア。専門的な医療データベース(科学論文、臨床プロトコル、参考書)で補完された生成モデルは、医師や患者の知的アシスタントとして機能することができます。例えば、システムは珍しい診断に関する質問に、そのテーマに関する最新の研究を医学文献から見つけて答えることができます[8]。医療におけるRAGの重要な利点は、一次情報源(例えば臨床試験の結果)を引用できることであり、これは医師からの信頼を得るために必要です。このようなシステムは、意思決定支援、症状の確認、医学生の教育などに利用され、最新の医療知識へのアクセスを提供します。
- 法律と金融。法務実務や金融分析では、情報の正確性と検証可能性が特に重要です。RAGシステムは、専門家が必要なデータを迅速に見つけるのを助けることができます。例えば、弁護士はモデルを使って、現在の事件に関連する判例や法律の条項を見つけて引用でき、金融アナリストは最新の経済報告書や市場ニュースからの抜粋を迅速に得ることができます[8]。その際、モデルの各応答には特定の文書(規制文書、報告書、記事)へのリンクを含めることができ、これは業界標準に準拠し、専門家によるその後の手作業を容易にします。
- 科学研究とコンテンツ作成。ジャーナリスト、研究者、作家は、資料作成時の事実と情報源の検索を加速させるためにRAGを利用できます。例えば、モデルは「いくつかの信頼できる出版物から情報を集める」というリクエストに応じて、ファクトチェックや引用の選択にかかる時間を大幅に短縮できます[8]。RAGベースの研究アシスタントは、関連論文へのリンク、公開データベースからのデータ(例えば国際報告書の統計)、さらには下書きの翻訳を自動的に抽出し、著者が分析的な作業に集中できるようにします。このようなツールは、メディア、学術界、文献レビューの作成などで応用されています。
- 企業内ナレッジと文書検索。多くの組織では、価値ある情報のかなりの部分がテキスト文書(規則、マニュアル、報告書、通信、ログファイル)の形で保存されています。RAGは、言語を使ってこのような非構造化データを対話的に検索する方法を提供します。従業員は「リモートワーカーの休暇ポリシーについて何が書かれていますか?」と質問でき、モデルは社内文書の関連セクションを見つけ、それを引用し、要約した回答を定式化します[1]。これにより、作業効率が向上します。新入社員は質問への回答をより迅速に見つけ、サポート部門はインシデントデータベースを迅速に検索するツールを得て、経営陣は蓄積されたテキストデータを分析する方法を得ます。大手IT企業はすでに企業向けソリューションにRAGアプローチを導入しています。Microsoft、Google、IBM、AWSなどの技術は、LLMを組織のデータ検索と統合しています[1]。
展望と今後の研究
Retrieval-Augmented Generationの手法は活発に開発されており、今後数年間でその能力はさらに拡大することが期待されています。一つの方向性はマルチモーダルRAGであり、外部情報としてテキストだけでなく、画像、音声/動画、さらにはセンサーからのデータも利用できるようになります。実験では、言語モデルを視覚データベースでの検索と組み合わせることの有望性が示されており、これにより、例えば画像や動画の内容に関する質問に、説明や関連テキストに基づいて答えることが可能になります[2]。もう一つの重要な方向性は、複数の知識源の同時利用です。将来のRAGシステムは、異なるデータベース(例えば、Wikipedia、専門百科事典、ユーザーの個人的なメモ)からのデータを組み合わせ、これらすべての異種情報を考慮して応答を統合できるようになるでしょう[2]。
研究者たちはまた、RAGの信頼性と安全性を向上させるという課題に直面しています。外部データに含まれる可能性のある偏見や誤りの拡散を最小限に抑え、応答の一貫性を保証する必要があります。オリジナルのRAG開発チームは、すでにこの方向で対策を講じています。例えば、初期の知識ベースを比較的に検証され中立的な情報源であるWikipediaの記事に限定しました[2]。将来的には、モデルが確実に質の高いコンテキストを得られるように、特別なフィルターや文書選択手法を作成することが計画されています。さらに、研究は検索メカニズム自体の改善に集中しています。新しいランキングやセマンティックインデックス作成のアルゴリズムが開発されており、複雑または曖昧な表現でもクエリをより正確に理解し、関連情報を見つけることができます。
最後に、RAGを言語モデルの学習プロセスとより深く統合することに関心が寄せられています。すでに、検索メカニズムを出力段階だけでなく、LLMの事前学習やファインチューニングの際にも利用するアプローチが登場しています[10]。これにより、モデルの事実性がさらに向上し、重みに静的に記録された知識への依存が減少する可能性があります。2024年に発表されたレビューによると、コミュニティはRAGエコシステムの発展に大きな期待を寄せています。インフラの最適化(検索の高速化、メモリコストの削減)から、RAGシステムの品質を評価するための標準的なベンチマークの作成まで、多岐にわたります[3]。これらすべては、生成モデルをより正確で、普遍的で、安全にし、常に更新される外部知識を扱う能力を高めることを目的としており、これは次世代の信頼できる人工知能への重要な一歩です。
外部リンク
- Retrieval-Augmented Generation (RAG) とは — NVIDIAブログ
- Retrieval-Augmented Generation for Large Language Models: A Survey — arXivの科学的レビュー
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — RAGに関する原論文
- RAGとは?応用、限界、課題 — Bright Dataブログ
参考文献
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2004.04906.
- Guu, K. et al. (2020). REALM: Retrieval-Augmented Language Model Pre-Training. arXiv:2002.08909.
- Qu, Y. et al. (2020). RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2010.08191.
- Izacard, G.; Grave, E. (2021). Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering. arXiv:2007.01282.
- Borgeaud, S. et al. (2022). Improving Language Models by Retrieving from Trillions of Tokens. arXiv:2112.04426.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Mialon, G. et al. (2023). Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997.
- Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
- Yang, Z. et al. (2023). Re-ViLM: Retrieval-Augmented Visual Language Model for Zero and Few-Shot Image Captioning. arXiv:2302.04858.
- Barnett, S. et al. (2024). Seven Failure Points When Engineering a Retrieval Augmented Generation System. arXiv:2401.05856.
- Wang, Y. et al. (2024). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
脚注
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 “What Is Retrieval-Augmented Generation aka RAG”. NVIDIA Blogs. [1]
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 “Facebook open-sources RAG, an AI model that retrieves documents to answer questions”. VentureBeat. [2]
- ↑ 3.0 3.1 3.2 3.3 Mialon, Grégoire et al. “Retrieval-Augmented Generation for Large Language Models: A Survey”. arXiv. [3]
- ↑ 4.0 4.1 4.2 “Applied AI Software Engineering: RAG”. Pragmatic Engineer. [4]
- ↑ 5.0 5.1 5.2 Lewis, Patrick et al. “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”. arXiv. [5]
- ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 “How RAG Makes LLMs Smarter”. Exxact Blog. [6]
- ↑ “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”. arXiv. [7]
- ↑ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 “What Is RAG? Use Cases, Limitations, and Challenges”. Bright Data Blog. [8]
- ↑ 9.0 9.1 9.2 Lewis, Patrick et al. “Seven Failure Points When Engineering a Retrieval Augmented Generation System”. arXiv. [9]
- ↑ “Генерация, дополненная поиском”. Википедия. [10]