編集者注: 2023年以降、RAGはLLMベースの人工知能システムで最も広く利用されているアーキテクチャの一つとなっています。多くの製品が重要な機能においてRAGに大きく依存しているため、そのパフォーマンスの最適化、検索効率と精度の向上は喫緊の課題であり、現在のRAG関連研究における中核的な課題となっています。 この記事では、Naive RAG の 3 つのコアステップであるインデックス作成、検索、コンテンツ生成に多くの問題があると指摘しています。a) インデックス作成では、情報抽出が不完全で、チャンク化戦略が単純で、インデックス構造が最適化されておらず、埋め込みモデルの表現能力が弱い。b) 検索では、検索された情報がシステムに対するユーザーの要求とあまり関連性がなく、リコール率が低く、不正確なユーザー要求を処理できず、アルゴリズムが単純で、コンテキスト情報に冗長性がある。c) コンテンツ生成では、コンテキストの統合が不十分で、検索情報に大きく依存し、不正確または不適切なコンテンツが生成されるリスクがある。 この記事では、現在の Naive RAG システムのさまざまな欠点を指摘し、次の最適化対策とソリューションへの道を示します。これは、実際のアプリケーションで RAG の効率と精度を向上させる上で非常に重要です。
著者 | フロリアン・ジューン 編纂者:岳陽 検索拡張生成(RAG)は、外部知識源からの追加情報を統合することで大規模言語モデル(LLM)の能力を向上させる技術です。この技術により、LLMは錯覚を軽減しながら、より正確で文脈を考慮した応答を生成することができます。 2023年以降、RAGはLLMベースのソフトウェアシステムで最も人気のあるアーキテクチャとなりました。多くの製品が機能面でRAGに大きく依存しています。そのため、検索プロセスを高速化し、結果の精度を高めるためにRAGのパフォーマンスを最適化することが重要な課題となっています。 このシリーズの記事では、RAG 最適化手法に焦点を当て、読者が RAG で生成された結果の全体的な品質を向上させるのに役立ちます。 01 ナイーブ(最適化されていない)RAGの簡単な紹介図 1 に示すように、最適化されていない RAG ワークフローは次のとおりです。 図1: 最適化されていない従来のRAGワークフロー。画像は著者による。 図 1 に示すように、RAG の従来のワークフローには、主に次の 3 つのステップが含まれます。 - インデックス作成:インデックス作成プロセスは、このワークフローにおける最初の、そして最も重要なステップであり、オフラインで実行されます。まず、生データがクリーニングおよび抽出され、PDF、HTML、Wordなどの様々なファイル形式が標準化されたプレーンテキストに変換されます。言語モデルの文脈的制約に対応するため、このテキストはより小さく扱いやすいチャンクに分割されます。このプロセスはチャンキングと呼ばれます。次に、埋め込みモデルを使用して、これらのチャンクをベクトル表現に変換します。最後に、これらのテキストチャンクとそのベクトル埋め込みをキーと値のペアとして保存するためのインデックスが作成され、効率的でスケーラブルな検索機能を実現します。
- 検索:ユーザークエリ(RAGシステムに入力された質問)は、外部知識ソースから関連するコンテキストを取得するために使用されます。これを実現するには、ユーザークエリをエンコーディングモデルで処理し、意味的に関連する埋め込みを生成する必要があります。次に、ベクトルデータベースに対して類似度検索を実行し、最も近いk個のデータオブジェクトを取得します。
- コンテンツ生成:ユーザークエリと取得された追加コンテキストがプロンプトテンプレートに入力されます。最後に、取得ステップで生成された拡張プロンプト(ユーザーが要求したコンテンツと取得コンテキストを含むプロンプト)がLLMに入力されます。
02 ナイーブRAGの使用に関する問題点図2: ナイーブRAGの問題点(赤い破線で囲まれた部分)。画像は著者による。 図 2 に示すように、Naive RAG では 3 つのステップすべてでいくつかの問題があり (赤い破線で囲まれています)、最適化の余地がまだたくさんあります。 2.1 インデックス作成- 情報抽出プロセスは、PDF などの非構造化ファイル内の画像や表に含まれる有用な情報を効果的に処理できないため、不完全です。
- チャンキング処理では、様々なファイル形式の特性に基づいて最適な戦略を選択するのではなく、「万能」な戦略を採用しています。その結果、各テキスト断片には不完全な意味情報しか含まれません。さらに、既存の見出しなど、テキスト内に既に存在する重要な詳細が考慮されていません。
- インデックス構造が十分に最適化されていないため、検索機能が非効率的でした。
- 組み込みモデルはセマンティック表現能力が弱いです。
2.2 検索- 外部の知識ソースから取得された情報は、ユーザーのクエリとの関連性が低く、取得された情報の精度も低くなります。
- 再現率が低いと、関連するすべての段落を検索することができず、LLM が包括的な回答を生成する能力に影響を及ぼします。
- ユーザーのシステムへの要求が不正確であったり、埋め込まれたモデルの意味表現能力が弱かったりして、貴重な情報を取得できない場合があります。
- 検索アルゴリズムは、キーワード検索、セマンティック検索、ベクトル検索などの異なるタイプの検索方法やアルゴリズムを組み合わせないため、制限されています。
- 取得された複数のコンテキストに類似した情報が含まれている場合、情報の冗長性が発生し、生成された回答に重複したコンテンツが含まれます。
2.3 コンテンツ生成- 取得されたコンテキストは現在の生成タスクと効果的に統合されない可能性があり、その結果、出力に一貫性がなくなる可能性があります。
- 生成プロセスにおいて、拡張情報に過度に依存するリスクが高くなります。その結果、生成されたコンテンツは取得された情報を単に繰り返したものとなり、有益な情報を提供できなくなる可能性があります。
- LLM は、不正確、無関係、不適切、または偏った応答を生成する可能性があります。
これらの問題の原因は多面的である可能性があることに注意することが重要です。例えば、ユーザーへの最終的なレスポンスに無関係なコンテンツが含まれている場合、LLMの問題だけが原因ではない可能性があります。根本的な原因は、PDFからドキュメントコンテンツを正確に抽出できないことや、埋め込みモデルがセマンティクスを正確に捉えられないことなどにある可能性があります。 03 結論この記事では主に、Naive RAG に存在する問題について紹介します。 以降の記事では、これらの問題を軽減するための対策と解決策を示し、RAG のパフォーマンスを向上させて、実際のアプリケーションでの問題解決をより効果的にできるようにします。 この記事に誤りや不足がある場合はご指摘ください。 読んでくれてありがとう! —— フロリアン・ジューン 人工知能の研究者。主に大規模言語モデル、データ構造とアルゴリズム、NLP に関する記事を書いています。 終わり
|