次の方法で共有


検索拡張生成とインデックス

この記事では、生成 AI での取得拡張生成 (RAG) およびインデックスの重要性と必要性について説明します。

RAG とは

最初に、いくつかの基本について説明します。 ChatGPT などの大規模言語モデル (LLM) は、それらがトレーニングされた時点で使用可能だったパブリック インターネット データでトレーニングされます。 トレーニングされたデータに関連する質問に、答えることができます。 パブリック データでは、すべてのニーズを満たすには不十分な場合があります。 プライベート データに基づいた回答が得られる質問を行いたい場合があります。 または、パブリック データが最新ではない可能性があります。 この問題のソリューションが、取得拡張生成 (RAG) です。これは、LLM を使用して独自のデータで回答を生成する AI の中で使用されるパターンです。

RAG のしくみ

RAG は、LLM でユーザーのデータを使用して、そのデータに固有の回答を生成するパターンです。 ユーザーが質問すると、ユーザー入力に基づいてデータ ストアが検索されます。 その後、ユーザーの質問は、一致する結果と組み合わされ、プロンプト (AI または機械学習モデルへの明示的な指示) を使用して LLM に送信され、目的の回答が生成されます。 このプロセスは、次のような図で示すことができます。

RAG パターンのスクリーンショット。

エージェンティック RAG: 検索に関する最新のアプローチ

従来の RAG パターンでは、1 つのクエリを使用してデータから情報を取得します。 ただし、最新の エージェント検索 は、大規模な言語モデルを使用して複雑なユーザー クエリを複数の集中サブクエリにインテリジェントに分割し、並列で実行し、チャット完了モデル用に最適化された構造化された応答を返す RAG アーキテクチャの進化を表します。

エージェント検索は、従来の RAG よりもいくつかの利点を提供します。

  • コンテキスト対応クエリの計画 - 会話履歴を使用してコンテキストと意図を理解する
  • 並列実行 - 複数のフォーカスされたサブクエリを同時に実行してカバレッジを向上させる
  • 構造化された応答 - 結果と共に、グラウンド データ、引用、実行メタデータを返します
  • 組み込みのセマンティック ランク付け - 結果の最適な関連性を保証します
  • オプションの回答の合成 - LLM で作成された回答をクエリ応答に直接含めることができます

エージェントは エージェント検索 を使用して、精度とコンテキストの理解を向上させます。

インデックスとは、およびそれが必要な理由

RAG では、データを使用して、ユーザーの質問に対する回答が生成されます。 RAG が適切に機能するためには、簡単かつコスト効率の高い方法でデータを検索して LLM に送信する方法を見つける必要があります。 インデックスによってこの問題が解決されます。 インデックスは、データを効率的に検索できるデータ ストアです。 このインデックスは、RAG で非常に役立ちます。 ベクトル (埋め込みモデルを使用して数値シーケンスに変換されたテキストまたはデータ) を作成すると、インデックスを LLM 用に最適化できます。 通常、適切なインデックスには、キーワード検索、セマンティック検索、ベクター検索、またはこれらの機能の組み合わせなどの効率的な検索機能があります。 この最適化された RAG パターンは、次のような図で示すことができます。

インデックス付きの RAG パターンのスクリーンショット。

Azure AI では、RAG パターンで使用するインデックス アセットが提供されます。 インデックス資産には、次のような重要な情報が含まれています。

  • インデックスはどこに格納されますか?
  • インデックスにアクセスする方法
  • インデックスを検索できるモードは何ですか?
  • インデックスにはベクトルがありますか?
  • ベクターに使用される埋め込みモデルは何ですか?

Azure AI インデックスでは、プライマリおよび推奨されるインデックス ストアとして Azure AI Search が使用されます。 Azure AI Search は、エージェント検索を使用する場合に、検索インデックスやその他のクエリ ターゲットに格納されているベクターデータとテキスト データに対する情報取得をサポートする Azure リソースです。