Retrieval-Augmented Generation for Large Language Models: A Survey
論文紹介:
大規模言語モデル[LLMs]は幻覚,知識の更新の欠如,透明性やトレーサビリティ欠如といった課題に直面している.これらの課題を克服する有望な方法として浮上しているのが,Retrieval-Augmented Generation[RAG]である.RAGは,こうした課題を外部データベースから知識を取り入れることで克服する有望な方法である.この論文は,RAGの進化を詳細に調査し,ナイーブRAG[Naive RAG],アドバンストRAG[Advanced RAG],モジュラーRAG[Modular RAG]を含む RAG パラダイムの進化について詳細に検討.検索,生成,拡張の手法を含む RAG フレームワークの 3 つの基盤を綿密に精査.
Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, Haofen Wang.Retrieval-Augmented Generation for Large Language Models: A Survey.arXiv:2312.10997 [cs.CL]
ナイーブRAG
ナイーブRAGは最も初期のRAG[Retrieval-Augmented Generation]手法であり,Retrieve-Readフレームワークとして知られる.この手法は以下の3つのステップで構成:
- インデックス作成[Indexing]
様々な形式の生データ[PDF, HTML, Word, Markdownなど]をクリーニングし,プレーンテキスト形式に変換.このテキストを小さなチャンクに分割,埋め込みモデルを使用してベクトル表現に変換し,ベクトルデータベースに保存. - 検索[Retrieval]
ユーザーのクエリをベクトル表現に変換.コーパス内のチャンクベクトルと類似度スコアを計算.最も類似度の高い上位$K$個のチャンクを選び出し,これをクエリの拡張コンテキストとして使用. - 生成[Generation]
クエリと選択されたドキュメントを統合してプロンプトを作成.大規模言語モデル[LLM]に応答を生成させる.
ナイーブRAGには以下の欠点がある.
- 検索の精度と再現率の課題:誤ったチャンクを選択することや重要な情報を見逃すことがある.
- 生成の問題:ハルシネーション[実際には存在しない情報を生成すること],関連性の欠如,有毒またはバイアスのある出力のリスク.
アドバンストRAG
アドバンストRAGはナイーブRAGの欠点を克服するために特定の改良を導入.特に検索の質を向上させるために以下の戦略が採用されている.
- プレリトリーバルプロセス[Pre-retrieval process]:
インデックス構造と元のクエリを最適化.データの粒度を細かくし,メタデータを追加するなどしてインデックスの質を向上.クエリをリライトや変換によりクエリ自体を最適化. - ポストリトリーバルプロセス[Post-retrieval process]:
検索された情報を効果的に統合.再ランキングやコンテキスト圧縮を行うことにより,重要な情報を強調し,LLMが処理するコンテキストの焦点を絞る.
モジュラーRAG
モジュラーRAGはアドバンストRAGのさらなる進化形であり,以下の特徴を有する.
- 新しいモジュールの導入:
- 検索モジュール:検索エンジン,データベース,知識グラフなどのデータソースを使用し直接検索.
- メモリモジュール:LLMのメモリを利用して検索をガイドし,メモリプールを作成.
- ルーティングモジュール:様々なデータソースを通じて最適な経路を選択し,要約や特定のデータベース検索を行う.
- 新しいパターンの採用:
- モジュールの置き換えや再構成により,特定の課題に対応.
- クエリリライト,LLM生成コンテンツの利用など,柔軟な検索戦略を統合.
INDEX