この記事では、生成 AI での取得拡張生成 (RAG) およびインデックスの重要性と必要性について説明します。
RAG とは
最初に、いくつかの基本について説明します。 ChatGPT などの大規模言語モデル (LLM) は、それらがトレーニングされた時点で使用可能だったパブリック インターネット データでトレーニングされます。 トレーニングされたデータに関連する質問に、答えることができます。 パブリック データでは、すべてのニーズを満たすには不十分な場合があります。 プライベート データに基づいた回答が得られる質問を行いたい場合があります。 または、パブリック データが最新ではない可能性があります。 この問題のソリューションが、取得拡張生成 (RAG) です。これは、LLM を使用して独自のデータで回答を生成する AI の中で使用されるパターンです。
RAG のしくみ
RAG は、LLM でユーザーのデータを使用して、そのデータに固有の回答を生成するパターンです。 ユーザーが質問すると、ユーザー入力に基づいてデータ ストアが検索されます。 その後、ユーザーの質問は、一致する結果と組み合わされ、プロンプト (AI または機械学習モデルへの明示的な指示) を使用して LLM に送信され、目的の回答が生成されます。 このプロセスは、次のような図で示すことができます。
インデックスとは、およびそれが必要な理由
RAG では、データを使用して、ユーザーの質問に対する回答が生成されます。 RAG が適切に機能するためには、簡単かつコスト効率の高い方法でデータを検索して LLM に送信する方法を見つける必要があります。 インデックスによってこの問題が解決されます。 インデックスは、データを効率的に検索できるデータ ストアです。 このインデックスは、RAG で非常に役立ちます。 ベクトル (埋め込みモデルを使用して数値シーケンスに変換されたテキストまたはデータ) を作成すると、インデックスを LLM 用に最適化できます。 通常、適切なインデックスには、キーワード検索、セマンティック検索、ベクター検索、またはこれらの機能の組み合わせなどの効率的な検索機能があります。 この最適化された RAG パターンは、次のような図で示すことができます。
Azure AI では、RAG パターンで使用するインデックス アセットが提供されます。 インデックス資産には、次のような重要な情報が含まれています。
- インデックスはどこに格納されますか?
- インデックスにアクセスする方法
- インデックスを検索できるモードは何ですか?
- インデックスにはベクトルがありますか?
- ベクターに使用される埋め込みモデルは何ですか?
Azure AI インデックスでは、プライマリおよび推奨されるインデックス ストアとして Azure AI Search が使用されます。 Azure AI Search は、検索インデックスに保存されているベクター データとテキスト データに対する情報取得をサポートする Azure リソースです。