クイック スタート: Azure ポータルでのマルチモーダル検索

Note

Azure AI 検索は、Azure ポータル、REST API、およびAzure SDKから使用できます。 また、Foundry IQ は、エンタープライズ コンテンツを、Microsoft Foundry ポータルのエージェントの再利用可能なアクセス許可に対応したナレッジ ベースに変換するマネージド ナレッジ レイヤーです。

このクイック スタートでは、Azure portal の データのインポート ウィザードを使用して 、マルチモーダル検索を開始します。 ウィザードを使用すると、テキストと画像の両方を抽出、チャンク、ベクター化、および検索可能なインデックスに読み込むプロセスが簡略化されます。

このクイック スタートでは、azure-search-sample-data リポジトリのマルチモーダル PDF を使用します。 ただし、さまざまなファイルを使用しても、このクイック スタートを完了できます。

Tip

テキストが多いドキュメントがありますか? Quickstart: vector search in the Azure portal を参照して、オプションの画像サポートを使用してコンテンツをチャンクおよびベクター化します。

Prerequisites

サポートされている抽出方法

コンテンツ抽出の場合は、Azure AI 検索による既定の抽出、または Foundry Tools のドキュメント インテリジェンスAzureによる拡張抽出のいずれかを選択します。

Method Description
既定の抽出 PDF 画像からのみ場所のメタデータを抽出します。 別のAzure リソースは必要ありません。
強化された抽出 複数の種類のドキュメントのテキストと画像から場所のメタデータを抽出します。 統合するには、Azure AI マルチサービス アカウント1が必要です。

1 料金計算のため、Azure AI 検索 スキルセットにマルチサービス アカウントを関連付ける必要があります。 ウィザードでは、検索サービスとマルチサービス アカウントが ドキュメント レイアウト スキルでサポートされている同じリージョンに存在する必要があります。

サポートされている埋め込みメソッド

コンテンツを埋め込む場合は、次のいずれかの方法を選択します。

  • 画像の言語化: LLM を使用して画像の自然言語の説明を生成し、埋め込みモデルを使用してプレーン テキストと言語化された画像をベクター化します。

  • マルチモーダル埋め込み: 埋め込みモデルを使用して、テキストと画像の両方を直接ベクター化します。

ポータルでは、メソッドごとに次のモデルがサポートされています。 デプロイの手順については、 後のセクションで説明します。

プロバイダー 画像言語化のモデル マルチモーダル埋め込みのモデル
Azure AI マルチサービス アカウント1 埋め込みモデル: Azure Vision multimodal Azure Vision マルチモーダル
Microsoft Foundry ハブ ベースのプロジェクト LLMs:
  • phi-4
  • gpt-4o
  • gpt-4o-mini
  • gpt-5
  • gpt-5-mini
  • gpt-5-nano
モデルの埋め込み:
  • text-embedding-ada-002
  • text-embedding-3-small
  • text-embedding-3-large
  • Cohere-embed-v3-english 2
  • Cohere-embed-v3-多言語 2
  • Cohere-embed-v3-english 2
  • Cohere-embed-v3-多言語 2
Microsoft Foundry プロジェクト LLMs:
  • phi-4
  • gpt-4o
  • gpt-4o-mini
  • gpt-5
  • gpt-5-mini
  • gpt-5-nano
モデルの埋め込み:
  • text-embedding-ada-002
  • text-embedding-3-small
  • text-embedding-3-large
Azure OpenAI リソース3,4 LLMs:
  • gpt-4o
  • gpt-4o-mini
  • gpt-5
  • gpt-5-mini
  • gpt-5-nano
モデルの埋め込み:
  • text-embedding-ada-002
  • text-embedding-3-small
  • text-embedding-3-large

1 料金計算のため、Azure AI 検索 スキルセットにマルチサービス アカウントを関連付ける必要があります。 ウィザードでは、検索サービスとマルチサービス アカウントが、Azure Vision マルチモーダル 埋め込みスキル (プレビュー) でサポートされている同じリージョンに存在する必要があります。

2 ウィザードでは、このモデルのサーバーレス API デプロイのみがサポートされます。 Azure CLIを使用して、サーバーレス展開 (プレビュー) をプロビジョニングできます。

3 Azure OpenAI リソースのエンドポイントには、 などの https://my-unique-name.openai.azure.comが必要です。 Azure ポータルでリソースを作成した場合、このサブドメインはリソースのセットアップ中に自動的に生成されました。

4 Azure Microsoft Foundry ポータルで作成された (埋め込みモデルにアクセスできる) OpenAI リソースはサポートされていません。 Azure ポータルで Azure OpenAI リソースを作成する必要があります。

非推奨を含む最新のモデルのライフサイクルに関するガイダンスについては、モデルの提供終了と非推奨を参照してください。

パブリック エンドポイントの要件

ウィザードでアクセスできるように、上記のすべてのリソースでパブリック アクセスが有効になっている必要があります。 そうでないと、ウィザードは失敗します。 ウィザードの実行後、セキュリティのために統合コンポーネントでファイアウォールとプライベート エンドポイントを有効にすることができます。 詳細については、 インポート ウィザードでの接続のセキュリティ保護に関するページを参照してください。

プライベート エンドポイントが既に存在し、無効にできない場合は、仮想マシン上のスクリプトまたはプログラムからそれぞれのエンド ツー エンド フローを実行することもできます。 仮想マシンはプライベート エンドポイントと同じ仮想ネットワーク上にある必要があります。 統合ベクター化のためのPythonコード サンプル。 同じGitHubリポジトリには、他のプログラミング言語のサンプルがあります。

アクセスを構成する

開始する前に、コンテンツと操作にアクセスするためのアクセス許可があることを確認してください。 このクイック スタートでは、認証にMicrosoft Entra IDを使用し、承認にはロールベースのアクセスを使用します。 ロールを割り当てるには、 所有者 または ユーザー アクセス管理者 である必要があります。 ロールの使用が困難な場合は、代わりにキー ベースの認証を使用してください。

このセクションで識別される 必要なロール と 条件付きロール を構成します。

必要な役割

すべてのマルチモーダル検索シナリオでは、Azure AI 検索とAzure Storageが必要です。

条件付きロール

次のタブでは、マルチモーダル検索のウィザードと互換性のあるリソースについて説明します。 選択した 抽出方法 と 埋め込み方法に適用されるタブのみを選択します。

マルチサービス アカウントを使用すると、コンテンツ抽出用のドキュメント インテリジェンスAzure、コンテンツ埋め込み用の Azure Vision など、複数のAzure サービスにアクセスできます。 検索サービスでは、Document Layout スキル および Azure Vision マルチモーダル 埋め込みスキルを呼び出すアクセス権が必要です。

マルチサービス アカウントの場合:

  • Cognitive Services ユーザーを検索サービスのマネージド ID に割り当てます。

サンプル データの準備

このクイック スタートでは、マルチモーダル PDF のサンプルを使用しますが、独自のファイルを使用することもできます。 無料の検索サービスを利用している場合は、20 個未満のファイルを使用して、エンリッチメント処理の無料クォータ内に留めます。

このクイック スタートのサンプル データを準備するには:

  1. Azure portal で Azure Storage アカウントに移動します。

  2. 左側のウィンドウで、[ データ ストレージ>Containers] を選択します。

  3. コンテナーを作成し、サンプル PDF をコンテナーにアップロードします。

  4. PDF から抽出された画像を格納する別のコンテナーを作成します。

モデルを準備する

Note

Azure Vision を使用している場合は、この手順をスキップします。 マルチモーダル埋め込み機能はマルチサービス アカウントに組み込まれており、モデルのデプロイは必要ありません。

ウィザードには、コンテンツ埋め込み用のオプションがいくつか用意されています。 画像の言語化には、テキストと画像のコンテンツをベクター化するために画像と埋め込みモデルを記述する LLM が必要ですが、直接のマルチモーダル埋め込みには埋め込みモデルのみが必要です。 これらのモデルは、Azure OpenAI と Foundry を通じて利用できます。

選択した 埋め込み方法に必要なモデルをデプロイするには、 Foundry ポータルで「Microsoft Foundry Models をデプロイする」を参照してください。

ウィザードを起動する

  1. Azure portal で、Search サービスに移動します。

  2. [ 概要 ] ページで、[ データのインポート] を選択します。

    データをインポートしてベクター化するためのウィザードを開くコマンドのスクリーンショット。

  3. データ ソース (Azure Blob Storage または Azure Data Lake Storage Gen2 を選択します。

    ウィザードでデータ ソースを選択するためのオプションのスクリーンショット。

  4. [マルチモーダル RAG] を選択します。

    ウィザードの [マルチモーダル RAG] タイルのスクリーンショット。

ウィザードを実行する

ウィザードでは、いくつかの構成手順について説明します。 このセクションでは、各手順を順番に説明します。

データへの接続

Azure AI 検索には、コンテンツインジェストとインデックス作成のためにデータ ソースへの接続が必要です。 この場合、データ ソースは Azure Storage アカウントです。

データに接続するには:

  1. データへの接続 ページで、Azure サブスクリプションを選択します。

  2. サンプル データをアップロードしたストレージ アカウントとコンテナーを選択します。

  3. [ マネージド ID を使用して認証 する] チェック ボックスをオンにします。 ID の種類は システム割り当てのままにします。

    データ接続を設定するためのウィザード ページのスクリーンショット。

  4. 次へを選択します。

コンテンツを抽出する

選択した 抽出方法に応じて、ウィザードにはドキュメントのクラッキングとチャンクの構成オプションが用意されています。

既定のメソッドは 、ドキュメント抽出スキル を呼び出してテキスト コンテンツを抽出し、ドキュメントから正規化された画像を生成します。 次に 、抽出されたテキスト コンテンツをページに分割するために、テキスト分割スキルが呼び出されます。

ドキュメント抽出スキルを使用するには:

  1. [ コンテンツ抽出 ] ページで、[ 既定値] を 選択したままにします。

    コンテンツ抽出用に既定の方法が選択されているウィザード ページのスクリーンショット。

  2. 次へを選択します。

コンテンツを埋め込む

この手順では、選択した 埋め込み方法を 使用して、テキストと画像の両方のベクター表現を生成します。

ウィザードでは、1 つのスキルを呼び出して画像の説明テキスト (画像の言語化) を作成し、もう 1 つのスキルを呼び出してテキストと画像の両方のベクター埋め込みを作成します。

画像の言語化の場合、 GenAI Prompt スキル はデプロイされた LLM を使用して、抽出された各画像を分析し、自然言語の説明を生成します。

埋め込みの場合、Azure OpenAI Embedding スキル、AML スキル、または Azure Vision マルチモーダル 埋め込みスキル は、デプロイされた埋め込みモデルを使用して、テキスト チャンクと言語化された説明を高次元ベクトルに変換します。 これらのベクターを使用すると、類似性とハイブリッド取得が可能になります。

画像の言語化にスキルを使用するには:

  1. [ コンテンツの埋め込み ] ページで、[ 画像の言語化] を選択します。

    ウィザードの [画像の言語化] タイルのスクリーンショット。

  2. [ 画像の言語化 ] タブで、次の手順を実行します。

    1. 種類として、LLM プロバイダー (Azure OpenAI または Microsoft Foundry を選択します。

    2. Azure サブスクリプション、リソース、LLM デプロイを選択します。

    3. 認証の種類として、ハブベースのプロジェクトを使用していない場合は、[ システム割り当て ID ] を選択します。 それ以外の場合は、 API キーのままにします。

    4. これらのリソースの使用による課金への影響を認めるチェックボックスを選択します。

      画像を言語化するためのウィザード ページのスクリーンショット。

  3. [ テキスト ベクター化 ] タブで、次の手順を実行します。

    1. 種類として、モデル プロバイダーとして、Azure OpenAI、Microsoft Foundry、または Azure Vision in Foundry Tools を選択します。

    2. Azure サブスクリプション、リソース、埋め込みモデルのデプロイ (該当する場合) を選択します。

    3. 認証の種類として、ハブベースのプロジェクトを使用していない場合は、[ システム割り当て ID ] を選択します。 それ以外の場合は、 API キーのままにします。

    4. これらのリソースの使用による課金への影響を認めるチェックボックスを選択します。

      テキストと画像をベクター化するためのウィザード ページのスクリーンショット。

  4. 次へを選択します。

抽出されたイメージを格納する

次の手順では、ドキュメントから抽出された画像をAzure Storageに送信します。 Azure AI 検索では、このセカンダリ ストレージは knowledge ストアと呼ばれます。

抽出されたイメージを格納するには:

  1. Image output ページで、Azure サブスクリプションを選択します。

  2. イメージを格納するために作成したストレージ アカウントと BLOB コンテナーを選択します。

  3. [ マネージド ID を使用して認証 する] チェック ボックスをオンにします。 ID の種類は システム割り当てのままにします。

    抽出するイメージを格納するためのウィザード ページのスクリーンショット。

  4. 次へを選択します。

セマンティック 優先度付けを追加する

[ 詳細設定] ページでは、必要に応じて セマンティック ランク付けを 追加して、クエリの実行終了時に結果を再ランク付けできます。 再ランク付けによって、最も意味的な関連性が高いマッチが上位にきます。

新しいフィールドをマップする

[ 詳細設定] ページでは、必要に応じてインデックス スキーマにフィールドを追加できます。 既定では、ウィザードは次の表で説明するフィールドを生成します。

Field 対象 Description Attributes
content_id テキストと画像ベクトル 文字列フィールド。 インデックスのドキュメント キー。 取得可能、並べ替え可能、検索可能。
document_title テキストと画像ベクトル 文字列フィールド。 人間が判読できるドキュメントのタイトル。 取得可能で検索可能です。
text_document_id テキスト ベクトル 文字列フィールド。 テキスト チャンクの作成元の親ドキュメントを識別します。 取得可能でフィルター可能。
image_document_id 画像ベクトル 文字列フィールド。 画像の作成元である親ドキュメントを識別します。 取得可能でフィルター可能。
content_text テキスト ベクトル 文字列フィールド。 人間が判読できるテキスト チャンクのバージョン。 取得可能で検索可能です。
content_embedding テキストと画像ベクトル Collection(Edm.Single). テキストと画像のベクター表現。 取得可能で検索可能です。
content_path テキストと画像ベクトル 文字列フィールド。 ストレージ コンテナー内のコンテンツへのパス。 取得可能で検索可能です。
locationMetadata 画像ベクトル Edm.ComplexType. ドキュメント内のイメージの場所に関するメタデータが含まれています。 フィールドによって異なります。

生成されたフィールドまたはその属性は変更できませんが、データ ソースでフィールドが提供される場合はフィールドを追加できます。 たとえば、Azure Blob Storageはメタデータ フィールドのコレクションを提供します。

インデックス スキーマにフィールドを追加するには:

  1. [ インデックス] フィールドで、[ プレビューと編集] を選択します。

  2. [フィールドの追加] を選択します。

  3. 使用可能なフィールドからソース フィールドを選択し、インデックスのフィールド名を入力して、既定のデータ型をそのまま使用 (またはオーバーライド) します。

  4. スキーマを元のバージョンに復元する場合は、[リセット] を選択 します。

この手順の重要なポイントは次のとおりです。

  • インデックス スキーマは、チャンク されたデータのベクター フィールドと非ベクトル フィールドを提供します。

  • ドキュメント解析モードでは、チャンク (チャンクごとに 1 つの検索ドキュメント) が作成されます。

インデックス作成をスケジュールする

基になるデータが揮発性のデータ ソースの場合は、 インデックス作成をスケジュール して、特定の間隔または特定の日時の変更をキャプチャできます。

インデックス作成をスケジュールするには:

  1. [ 詳細設定] ページの [ インデックス作成のスケジュール] で、インデクサーの実行スケジュールを指定します。 このクイックスタートには Once をお勧めします。

    インデックス作成をスケジュールするためのウィザード ページのスクリーンショット。

  2. 次へを選択します。

ウィザードを終了する

最後の手順では、構成を確認し、マルチモーダル検索に必要なオブジェクトを作成します。 必要に応じて、ウィザードの前のページに戻り、構成を調整します。

ウィザードを完了するには:

  1. [ 確認と作成 ] ページで、ウィザードで作成するオブジェクトのプレフィックスを指定します。 共通のプレフィックスは、整理された状態を保つのに役立ちます。

    構成を確認して完了するためのウィザード ページのスクリーンショット。

  2. を選択してを作成します。

ウィザードで作成されたオブジェクト

ウィザードによる構成が完了すると、以下のオブジェクトが作成されます。

Object Description
データ ソース Azure Blob Storageへの接続を表します。
Index テキスト フィールド、ベクター フィールド、ベクター ライザー、ベクター プロファイル、およびベクター アルゴリズムが含まれます。 ウィザードのワークフロー中に既定のインデックスを変更することはできません。 インデックスは 最新のプレビュー REST API に準拠しているため、プレビュー機能を使用できます。
スキルの組み合わせ 次のスキルが含まれています。
インデクサー フィールド マッピングと出力フィールド マッピング (該当する場合) を使用して、インデックス作成パイプラインを駆動します。
ナレッジ ストア 抽出されたイメージを、ダウンストリーム処理またはマルチモーダル シナリオ用に Azure Storage に BLOB として格納します。

Tip

ウィザードで作成されたオブジェクトには、構成可能な JSON 定義があります。 これらの定義を表示または変更するには、左側のウィンドウから [検索管理 ] を選択します。ここでは、インデックス、インデクサー、データ ソース、スキルセットを表示できます。

ナレッジ ストアを表示するには、Azure Storage アカウントに移動し、イメージ出力用に指定したコンテナーを選択します。

結果をチェックする

このクイック スタートでは、テキストと画像の両方に対する ハイブリッド検索 をサポートするマルチモーダル インデックスを作成します。 直接マルチモーダル埋め込みを使用しない限り、インデックスはクエリ入力として画像を受け入れません。そのためには、同等のベクターライザーと連携するAML スキルまたはAzure Vision マルチモーダル埋め込みスキルが必要です。 詳細については、「 検索インデックスでベクターライザーを構成する」を参照してください。

ハイブリッド検索は、フルテキスト クエリとベクター クエリを組み合わせたものです。 ハイブリッド クエリを発行すると、検索エンジンはクエリとインデックス付きベクターの間のセマンティック類似性を計算し、それに応じて結果をランク付けします。 このクイック スタートで作成されたインデックスの場合、結果はクエリと密接に一致する content_text フィールドのコンテンツを表示します。

マルチモーダル インデックスに対してクエリを実行するには:

  1. Azure portal で、Search サービスに移動します。

  2. 左側のウィンドウで、[検索の管理] >[インデックス] を選択します。

  3. インデックスを選択します。

  4. [ クエリ オプション] を選択し、[ 検索結果のベクター値を非表示にする] を選択します。 この手順により、結果が読みやすくなります。

    検索エクスプローラーの [クエリ オプション] メニューのスクリーンショット。

  5. 検索するテキストを入力します。 この例では、energy を使用します。

  6. クエリを実行するには、[検索] を選択 します。

    検索エクスプローラーの [検索] ボタンのスクリーンショット。

    JSON の結果には、インデックス内の energy に関連するテキストと画像のコンテンツが含まれている必要があります。 セマンティック ランカーを有効にした場合、 @search.answers 配列は、関連性のある一致をすばやく識別するのに役立つ簡潔で信頼性の高い セマンティック回答 を提供します。

    "@search.answers": [
       {
          "key": "a71518188062_aHR0cHM6Ly9oYWlsZXlzdG9yYWdlLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsLXNlYXJjaC9BY2NlbGVyYXRpbmctU3VzdGFpbmFiaWxpdHktd2l0aC1BSS0yMDI1LnBkZg2_normalized_images_7",
          "text": "A vertical infographic consisting of three sections describing the roles of AI in sustainability:  1. **Measure, predict, and optimize complex systems**: AI facilitates analysis, modeling, and optimization in areas like energy distribution, resource allocation, and environmental monitoring. **Accelerate the development of sustainability solution...",
          "highlights": "A vertical infographic consisting of three sections describing the roles of AI in sustainability:  1. **Measure, predict, and optimize complex systems**: AI facilitates analysis, modeling, and optimization in areas like<em> energy distribution, </em>resource<em> allocation, </em>and environmental monitoring. **Accelerate the development of sustainability solution...",
          "score": 0.9950000047683716
       },
       {
          "key": "1cb0754930b6_aHR0cHM6Ly9oYWlsZXlzdG9yYWdlLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsLXNlYXJjaC9BY2NlbGVyYXRpbmctU3VzdGFpbmFiaWxpdHktd2l0aC1BSS0yMDI1LnBkZg2_text_sections_5",
          "text": "...cross-laminated timber.8 Through an agreement with Brookfield, we aim  10.5 gigawatts (GW) of renewable energy to the grid.910.5 GWof new renewable energy capacity to be developed across the United States and Europe.Play 4 Advance AI policy principles and governance for sustainabilityWe advocated for policies that accelerate grid decarbonization",
          "highlights": "...cross-laminated timber.8 Through an agreement with Brookfield, we aim <em> 10.5 gigawatts (GW) of renewable energy </em>to the<em> grid.910.5 </em>GWof new<em> renewable energy </em>capacity to be developed across the United States and Europe.Play 4 Advance AI policy principles and governance for sustainabilityWe advocated for policies that accelerate grid decarbonization",
          "score": 0.9890000224113464
       },
       {
          "key": "1cb0754930b6_aHR0cHM6Ly9oYWlsZXlzdG9yYWdlLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsLXNlYXJjaC9BY2NlbGVyYXRpbmctU3VzdGFpbmFiaWxpdHktd2l0aC1BSS0yMDI1LnBkZg2_text_sections_50",
          "text": "ForewordAct... Similarly, we have restored degraded stream ecosystems near our datacenters from Racine, Wisconsin120 to Jakarta, Indonesia.117INNOVATION SPOTLIGHTAI-powered Community Solar MicrogridsDeveloping energy transition programsWe are co-innovating with communities to develop energy transition programs that align their goals with broader s.",
          "highlights": "ForewordAct... Similarly, we have restored degraded stream ecosystems near our datacenters from Racine, Wisconsin120 to Jakarta, Indonesia.117INNOVATION SPOTLIGHTAI-powered Community<em> Solar MicrogridsDeveloping energy transition programsWe </em>are co-innovating with communities to develop<em> energy transition programs </em>that align their goals with broader s.",
           "score": 0.9869999885559082
       }
    ]
    

リソースをクリーンアップする

自分のサブスクリプションで作業する場合は、不要になったリソースを削除してプロジェクトを完了することをお勧めします。 リソースを動作させたままだと、お金がかかることがあります。

Azure ポータルで、左側のウィンドウから [すべてのリソース] または [リソース グループ を選択して、リソースを検索および管理します。 リソースを個別に削除することも、リソース グループを削除してすべてのリソースを一度に削除することもできます。

次のステップ

このクイック スタートでは、マルチモーダル検索に必要なすべてのオブジェクトを作成する データのインポート ウィザードについて説明しました。 各手順の詳細については、 マルチモーダル チュートリアルを参照してください。