データを検索可能にする

完了

独自のデータを使用して正確な回答を生成するコパイロットを作成する場合は、データを効率的に検索できる必要があります。 Azure AI Studio でコパイロットを構築すると、Azure AI 検索との統合を使用して、チャット フロー内の関連コンテキストを取得できます。

Azure AI 検索は、プロンプト フローを使用した言語モデル アプリケーションを構築するときに含めることができる取得コンポーネントです。 Azure AI 検索を使用すると、独自のデータを取り込み、データのインデックスを作成し、インデックスにクエリを実行して必要な情報を取得できます。

インデックスのクエリを実行してグラウンディング データを取得する過程を示す図。

"ベクター" インデックスの使用

テキストベースのインデックスを使用すると検索効率が向上しますが、通常は、データ ソース内のテキスト トークンを表す "埋め込み" を含む "ベクトル" ベースのインデックスを使用すると、より優れたデータ取得ソリューションを実現できます。

埋め込みは、検索エンジンが関連情報を簡単に見つけるために使用できる特別な形式のデータ表現です。 より具体的には、埋め込みは浮動小数点数のベクトルです。

たとえば、次の内容を含む 2 つのドキュメントがあるとします。

  • "子供たちは公園で楽しく遊びました。"
  • "子どもたちは楽しそうに遊び場を走り回っていました。"

これら 2 つのドキュメントには、異なる単語が使用されているにもかかわらず、意味的に関連するテキストが含まれています。 ドキュメント内のテキストのベクトル埋め込みを作成することで、テキスト内の単語間の関係を数学的に計算できます。

キーワードがドキュメントから抽出され、多次元空間にベクトルとしてプロットされると想像してください。

ベクター埋め込みの図。

ベクトル間の距離は、2 つのベクトル間の角度のコサイン (コサイン類似度とも呼ばれます) を測定することで計算できます。 言い換えれば、コサイン類似度は、ドキュメントとクエリ間の意味論的な類似度を計算します。

ベクトルを使用して単語とその意味を表すことで、データが異なる形式 (テキストまたは画像) と言語で保存されている場合でも、データ ソースから関連するコンテキストを抽出できます。

ベクトル検索を使用してデータを検索できるようにするには、検索インデックスを作成するときに埋め込みを作成する必要があります。 検索インデックスの埋め込みを作成するには、Azure AI Studio で利用可能な Azure OpenAI 埋め込みモデルを使用できます。

埋め込みを含むベクター インデックスを示す図。

ヒント

Azure OpenAI Service の埋め込みの詳細については、こちらを参照してください。

検索インデックスの作成

Azure AI 検索では、検索インデックスによって、コンテンツを検索可能にするためのコンテンツの整理方法が記述されます。 たくさんの本がある図書館を想像してみてください。 図書館内を検索して、関連する本を簡単かつ効率的に入手できるようにする必要があります。 図書館を検索可能にするには、本に関する関連データを含むカタログを作成し、本を簡単に見つけられるようにします。 図書館のカタログは、検索インデックスとして機能します。

インデックスの作成にはさまざまなアプローチがありますが、Azure AI 検索を Azure AI Studio に統合すると、言語モデルに適したインデックスを簡単に作成できます。 データを Azure AI Studio に追加した後、Azure AI 検索を使用し、埋め込みモデルを使用して Azure AI Studio にインデックスを作成できます。 インデックス資産は Azure AI 検索に保存され、チャット フローで使用されるときに Azure AI Studio によってクエリが実行されます。

Azure AI Studio でのインデックスの作成を示すスクリーンショット。

検索インデックスを構成する方法は、所有するデータと、言語モデルで使用するコンテキストによって異なります。 たとえば、キーワード検索を使用すると、検索クエリと完全に一致する情報を取得できます。 セマンティック検索はさらに一歩進んでおり、セマンティック モデルを使用して、正確なキーワードではなくクエリの意味と一致する情報を取得します。 現在、最も高度な手法は、データを表す埋め込みを作成するベクトル検索です。

ヒント

ベクトル検索の詳細については、こちらを参照してください。

インデックスの検索

インデックスで情報を照会するには、いくつかの方法があります。

  • キーワード検索:入力として指定された特定のキーワードまたは用語に基づいて、関連するドキュメントまたは文を識別します。
  • セマンティック検索:キーワードの完全一致のみに依存するのではなく、クエリの意味を理解し、意味的に関連するコンテンツと照合することで、ドキュメントまたは文を取得します。
  • ベクトル検索:テキスト (ベクトル) の数学的表現を使用して、セマンティックな意味またはコンテキストに基づいて類似のドキュメントまたは文を検出します。
  • ハイブリッド検索:他の検索手法の一部またはすべてを組み合わせます。 クエリは並行して実行され、統合された 1 つの結果セットで返されます。

Azure AI Studio で検索インデックスを作成する際、言語モデルと組み合わせて使用するのに最も適したインデックスを構成するようガイドされます。 検索結果を生成 AI アプリケーションで使用すると、ハイブリッド検索により最も正確な結果が得られます。

ハイブリッド検索は、キーワード (およびフルテキスト) とベクトル検索を組み合わせたもので、オプションでセマンティック ランキングが追加されます。 ハイブリッド検索と互換性のあるインデックスを作成した場合、完全一致が利用可能な場合 (キーワードを使用) は正確な情報が取得され、概念的に類似した情報しか見つからない場合 (ベクトル検索を使用) でも関連した情報が取得されます。

ヒント

ハイブリッド検索の詳細については、こちらを参照してください。