Azure AI Vision マルチモーダル埋め込みスキル

重要

この機能はパブリック プレビュー段階にあり、追加使用条件の下で提供されます。 この機能は、2024-05-01-Preview REST API でサポートされます。

Azure AI Vision マルチモーダル埋め込みは、Azure AI Vision のマルチモーダル埋め込みの API を使用して、画像またはテキスト入力用の埋め込みを生成するスキルです。

このスキルは、Azure AI Vision Multimodal embeddings API をサポートするリージョンに配置された検索サービスでのみサポートされます。 マルチモーダル埋め込みのリージョンの可用性を確認 します。 データは、モデルがデプロイされている geo で処理されます。

Note

このスキルは Azure AI サービスにバインドされており、1 日にインデクサーあたり 20 ドキュメントを超えるトランザクションには課金対象リソースが必要です。 組み込みスキルの実行は、既存の Azure AI サービスの従量課金制の価格で課金されます。

さらに、画像抽出は Azure AI Searchによって課金

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

データ制限

スキルの入力制限は、画像とテキストに関する Azure AI Vision ドキュメントにそれぞれ記載されています。 テキスト入力のデータ チャンク化が必要な場合は、テキスト分割スキルの使用を検討してください。

スキルのパラメーター

パラメーターの大文字と小文字は区別されます。

入力 説明
modelVersion (必須) 埋め込みを生成するために Azure AI Vision マルチモーダル埋め込みの API に渡されるモデル バージョン。 特定のインデックス フィールドに格納されるすべての埋め込みは、同じ modelVersion を使用して生成することが重要です。 このモデルのバージョン サポートについては、マルチモーダル埋め込みを参照してください

スキルの入力

入力 説明
text ベクター化する入力テキスト。 データ チャンクを使用している場合、ソースが /document/pages/* になる可能性があります。
image 複合型。 現在は "/document/normalized_images" フィールドでのみ機能し、imageActionnone 以外の値に設定されている場合に、Azure BLOB インデクサーによって生成されます。
url ベクトル化する画像をダウンロードする URL。
queryString ベクトル化する画像をダウンロードする URL のクエリ文字列。 URL と SAS トークンを別々のパスに格納する場合に便利です。

スキルの 1 つのインスタンスに対して構成できるのは、textimage、または url/queryString のいずれか 1 つだけです。 同じスキルセット内の画像とテキストの両方をベクトル化する場合は、スキルセット定義にこのスキルの 2 つのインスタンスを含めます。使用する入力の種類ごとに 1 つずつです。

スキルの出力

出力 説明
vector 入力テキストまたは画像の float の配列を埋め込む出力。

定義例

テキスト入力の場合は、次のフィールドを持つレコードを検討します。

{
    "content": "Microsoft released Windows 10."
}

スキル定義は次のようになります。

{ 
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill", 
    "context": "/document", 
    "modelVersion": "2023-04-15", 
    "inputs": [ 
        { 
            "name": "text", 
            "source": "/document/content" 
        } 
    ], 
    "outputs": [ 
        { 
            "name": "vector"
        } 
    ] 
} 

画像入力の場合、スキル定義は次のようになります。

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document/normalized_images/*",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "image",
            "source": "/document/normalized_images/*"
        }
    ],
    "outputs": [
        {
            "name": "vector"
        }
    ]
}

BLOB ストレージ データソースから画像を直接ベクトル化する場合、スキル定義は次のようになります。

{
    "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
    "context": "/document",
    "modelVersion": "2023-04-15", 
    "inputs": [
        {
            "name": "url",
            "source": "/document/metadata_storage_path"
        },
        {
            "name": "queryString",
            "source": "/document/metadata_storage_sas_token"
        }
    ],
    "outputs": [
        {
            "name": "vector"
        }
    ]
}

サンプル出力

指定された入力テキストに対して、ベクター化された埋め込み出力が生成されます。

{
  "vector": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

出力はメモリ内に存在します。 この出力を検索インデックスのフィールドに送信するには、ベクトル化された埋め込み出力 (配列) をベクトル フィールドにマップする outputFieldMapping を定義する必要があります。 スキルの出力がドキュメントの vector ノードに存在し、content_vector が検索インデックスのフィールドであると仮定すると、インデクサーの outputFieldMapping は次のようになります。

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/vector/*",
      "targetFieldName": "content_vector"
    }
  ]

画像の埋め込みをインデックスにマッピングするには、インデックスのプロジェクション機能を使用する必要があります。 indexProjections のペイロードは次のようになります。

"indexProjections": {
    "selectors": [
        {
            "targetIndexName": "myTargetIndex",
            "parentKeyFieldName": "ParentKey",
            "sourceContext": "/document/normalized_images/*",
            "mappings": [
                {
                    "name": "content_vector",
                    "source": "/document/normalized_images/*/vector"
                }
            ]
        }
    ]
}

関連項目