Azure Vision multimodale Einbettungsfertigkeiten

Important

Diese Fähigkeit ist in der Vorschau unter den Zusatznutzungsbedingungen verfügbar. Die neueste Vorschauversion von Skillsets – Create Or Update (REST API) unterstützt dieses Feature.

Die Azure Vision multimodale Embeddings Fähigkeit nutzt die multimodale Embeddings API aus Azure Vision in Foundry Tools, um Embeddings für Text- oder Bildeingaben zu generieren.

Für Transaktionen, die pro Indexer pro Tag 20 Dokumente übersteigen, erfordert diese Fähigkeit, dass Sie eine abrechenbare Microsoft Foundry-Ressource Ihrem Skillset hinzufügen. Die Ausführung der eingebauten Fähigkeiten wird zum bestehenden Standard von Foundry Tools berechnet. Bildextraktion ist außerdem abrechenbar durch Azure KI-Suche.

Die Microsoft Foundry-Ressource wird ausschließlich für Abrechnungszwecke verwendet. Die Inhaltsverarbeitung erfolgt auf separaten Ressourcen, die von Azure KI-Suche verwaltet und gepflegt werden. Deine Daten werden im Geo verarbeitet, in dem deine Ressource eingesetzt wird.

Unterstützte Regionen

Unterstützte Regionen unterscheiden sich je nach Modalität und wie die Skill mit der multimodalen Embeddings-API von Azure Vision verbunden ist.

Vorgehensweise Anforderung
Datenimport-Wizard
  1. Finden Sie in Azure Vision eine Region, die multimodale Einbettungen unterstützt.
  2. Überprüfen Sie, ob die Region KI-Anreicherung in Azure KI-Suche unterstützt.
  3. Erstelle einen Azure KI-Suche Service und Azure KI-Multi-Service-Konto in derselben Region.
Programmatisch, mit einer schlüsselbasierten Verbindung für die Abrechnung
  1. Finden Sie in Azure Vision eine Region, die multimodale Einbettungen unterstützt.
  2. Überprüfen Sie, ob die Region KI-Anreicherung in Azure KI-Suche unterstützt.
  3. Erstellen Sie einen Azure KI-Suche-Dienst und eine Microsoft Foundry-Ressource in derselben Region.
Programmatisch, mit einer schlüssellosen Verbindung für die Abrechnung Keine Anforderung für dieselbe Region. Erstellen Sie einen Azure KI-Suche Service und Microsoft Foundry-Ressource in jeder Region, in der jeder Service verfügbar ist.

@odata.type

Microsoft.Skills.Vision.VectorizeSkill

Datenlimits

Die Eingabegrenzen für die Fähigkeit finden sich in der Azure Vision-Dokumentation für Bilder und Text. Erwägen Sie, die Text-Split-Fähigkeit zu verwenden, wenn Sie Daten-Chunking für Texteingaben benötigen.

Anwendbare Eingaben sind:

  • Die Dateigröße der Bildeingabe muss weniger als 20 Megabyte (MB) betragen. Die Bildgröße muss größer als 10 x 10 Pixel und weniger als 16.000 x 16.000 Pixel sein.
  • Die Texteingabe-Zeichenkette muss zwischen (inklusiv) einem Wort und 70 Wörtern liegen.

Qualifikationsparameter

Die Parameter sind groß- und kleinschreibungssensitiv.

Eingaben Beschreibung
modelVersion (Erforderlich) Die Modellversion (2023-04-15) soll an die Azure Vision multimodale Embeddings-API zur Erzeugung von Embeddings weitergegeben werden. Vektor-Embeddings können nur verglichen und abgeglichen werden, wenn sie vom gleichen Modelltyp stammen. Bilder, die von einem Modell vektorisiert werden, sind in einem anderen Modell nicht durchsuchbar. Die neueste Bildanalyse-API bietet zwei Modelle:
  • Die 2023-04-15 Version, die die Textsuche in vielen Sprachen unterstützt. Azure KI-Suche verwendet diese Version.
  • Das Legacy-Modell 2022-04-11 , das nur Englisch unterstützt.

Qualifikationseingaben

Fähigkeitsdefinitionen umfassen Name, Quelle und Inputs. Die folgende Tabelle liefert gültige Werte für den Namen der Eingabe. Du kannst auch rekursive Eingaben angeben. Weitere Informationen finden Sie in der REST API-Referenz und Erstellen Sie ein Skillset.

Eingabe Beschreibung
text Der Eingabetext wird vektorisiert. Wenn du Datenchunking verwendest, könnte die Quelle ./document/pages/*
image Komplexer Typ. Derzeit funktioniert es nur mit dem Feld "/document/normalized_images", das vom Azure Blob-Indexer erzeugt wird, wenn imageAction auf einen anderen Wert als none gesetzt wird.
url Die URL, um das zu vektorisierende Bild herunterzuladen.
queryString Die Abfragefolge der URL, um das zu vektorisierende Bild herunterzuladen. Nützlich, wenn du URL und SAS-Token in getrennten Pfaden speicherst.

Nur eine von text, image oder url/queryString kann für eine einzelne Instanz der Fähigkeit konfiguriert werden. Wenn Sie sowohl Bilder als auch Text innerhalb desselben Skillsets vektorisieren möchten, fügen Sie zwei Instanzen dieser Fähigkeit in die Skillset-Definition ein, eine für jeden Eingabetyp, den Sie verwenden möchten.

Skill-Ergebnisse

Output Beschreibung
vector Geben Sie ein Embedding-Array von Floats für den Eingabetext oder das Bild aus.

Beispieldefinition

Für die Texteingabe betrachten Sie einen Blob mit folgendem Inhalt:

{
    "content": "Forests, grasslands, deserts, and mountains are all part of the Patagonian landscape that spans more than a million square  kilometers of South America."
}

Für Texteingaben könnte deine Fertigkeitsdefinition so aussehen:

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

Für die Bildeingabe könnte eine zweite Fertigkeitsdefinition im gleichen Skillset so aussehen:

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

Wenn Sie Bilder direkt aus Ihrer Blob-Speicher-Datenquelle vektorisieren möchten, anstatt Bilder während der Indexierung zu extrahieren, sollte Ihre Fähigkeitsdefinition eine URL und eventuell ein SAS-Token angeben, abhängig von der Speichersicherheit. In diesem Szenario könnte deine Fertigkeitsdefinition so aussehen:

{
    "@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",
            "targetName": "image_vector"
        }
    ]
}

Beispielausgabe

Für die gegebene Eingabe wird eine vektorisierte Einbettungsausgabe erzeugt. Die Ausgabe umfasst 1.024 Dimensionen, was der Anzahl der Dimensionen entspricht, die von der multimodalen API von Azure Vision unterstützt werden.

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

Die Ausgabe befindet sich im Speicher. Um diese Ausgabe an ein Feld im Suchindex zu senden, musst du ein outputFieldMapping definieren, das die vektorisierte Einbettungsausgabe (die ein Array ist) auf ein Vektorfeld abbildet. Vorausgesetzt, die Skill-Ausgabe befindet sich im Vektorknoten des Dokuments und content_vector das Feld im Suchindex ist, sollte das outputFieldMapping im Indexer wie folgt aussehen:

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

Um Bildeinbettungen dem Index zuzuordnen, verwendet man Indexprojektionen. Die Nutzlast für indexProjections könnte ungefähr so aussehen wie im folgenden Beispiel. image_content_vector ist ein Feld im Index und wird mit dem Inhalt gefüllt, der im Vektor des normalized_images Arrays gefunden wird.

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

Siehe auch