Share via


取得拡張生成とインデックス

重要

この記事で説明する機能の一部は、プレビューでのみ使用できる場合があります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

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

RAG とは

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

RAG のしくみ

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

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

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

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

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

Azure AI では、RAG パターンで使用するインデックス アセットが提供されます。 インデックス アセットには、インデックスの格納場所、インデックスへのアクセス方法、インデックスを検索できるモード、インデックスにベクトルがあるかどうか、ベクトルに使用される埋め込みモデルなどの重要な情報が含まれています。Azure AI インデックスでは、プライマリかつ優先されるインデックス ストアとして Azure AI Search が使用されます。 Azure AI Search は、検索インデックスに格納されているベクトル データとテキスト データに対する情報取得をサポートする Azure リソースです。

次のステップ