Verwenden von Einbettungsmodellen aus dem Microsoft Foundry-Modellkatalog für integrierte Vektorisierung (Vorschau)

Hinweis

Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.

Wichtig

Features, Funktionen oder Eigenschaften, die als (Vorschau) gekennzeichnet sind, werden von keiner Dienstebenenvereinbarung (SLA) abgedeckt, werden für Produktionsworkloads nicht empfohlen und können geändert oder eingeschränkt werden, bevor sie allgemein verfügbar sind. Die Azure KI-Suche Vorschaubedingungen gelten für alle Vorschaufunktionen, unabhängig davon, ob sie eigenständig oder Teil eines allgemein verfügbaren Features ist.

In diesem Artikel erfahren Sie, wie Sie Microsoft Foundry-Modellkatalogmodelle für integrierte Vektorisierung (Vorschau) während der Indizierung und Abfrageausführung in Azure KI-Suche verwenden.

Der Workflow erfordert, dass Sie ein Modell aus dem Katalog bereitstellen, das Einbettungsmodelle aus Microsoft und anderen Unternehmen umfasst. Die Bereitstellung eines Modells ist gemäß der Abrechnungsstruktur jedes Anbieters abrechnend.

Nachdem das Modell bereitgestellt wurde, können Sie es mit dem AML skill für die integrierte Vektorisierung während der Indizierung oder mit dem Microsoft Foundry Model Catalog Vectorizer für Abfragen verwenden.

Tipp

Verwenden Sie den Assistenten zum Importieren von Daten, um ein Skillset zu generieren, das eine AML-Fähigkeit für bereitgestellte Einbettungsmodelle in Foundry enthält. Die AML-Qualifikationsdefinition für Eingaben, Ausgaben und Zuordnungen wird vom Assistenten generiert, wodurch Sie ein Modell einfach testen können, bevor Sie Code schreiben.

Voraussetzungen

Unterstützte Einbettungsmodelle

Unterstützte Einbettungsmodelle aus dem Modellkatalog variieren je nach Verwendungsmethode:

Bereitstellen eines Einbettungsmodells aus dem Modellkatalog

  1. Befolgen Sie diese Portalanweisungen , um ein unterstütztes Modell für Ihr Projekt bereitzustellen.

  2. Notieren Sie sich den Ziel-URI, den Schlüssel und den Modellnamen. Sie benötigen diese Werte für die Vektorizerdefinition in einem Suchindex und für das Skillset, das die Modellendpunkte während der Indizierung aufruft.

    Wenn Sie die Tokenauthentifizierung für die schlüsselbasierte Authentifizierung bevorzugen, müssen Sie nur den Modellnamen kopieren. Notieren Sie sich jedoch die Region, in der das Modell bereitgestellt wird.

  3. Konfigurieren Sie einen Suchindex und einen Indexer für die Verwendung des bereitgestellten Modells.

Bereitstellen eines Einbettungsmodells als serverlose Bereitstellung

Die AML-Fähigkeit und Microsoft Foundry-Modellkatalog-Vektorizer akzeptieren nur serverlose Bereitstellungen von Cohere-Einbettungsmodellen. Serverlose Bereitstellungen über das Microsoft Foundry-Portal werden für diese Modelle nicht unterstützt. Verwenden Sie daher die Azure CLI, um die Bereitstellung zu erstellen. Weitere Informationen finden Sie unter Bereitstellen von Modellen als serverlose API-Bereitstellungen.

So erstellen Sie eine serverlose Cohere-Bereitstellung:

  1. Installieren Sie die Azure CLI mit der Erweiterung ml.

    az extension add -n ml
    
  2. Melden Sie sich bei Azure an, und legen Sie die Standardwerte fest.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. Erstellen Sie eine subscribe.yaml Datei, um das Marketplace-Abonnement für das Modell zu abonnieren.

    name: cohere-embed-v3-english-subscription
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    

    Ersetzen Sie bei anderen unterstützten Modellen die Modell-ID durch einen der folgenden Werte.

    Modell Modell-ID
    Cohere-embed-v3-englisch azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-multilingual azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. Führen Sie den folgenden Befehl aus, um das Abonnement zu erstellen.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. Erstellen Sie eine endpoint.yaml Datei zum Erstellen des serverlosen Endpunkts.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. Führen Sie den folgenden Befehl aus, um den Endpunkt zu erstellen.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. Für die schlüsselbasierte Authentifizierung benötigen Sie den Endpunkt-URI und den Schlüssel zur Verwendung im Skill oder Vektorisierer.

    az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri"
    az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
    

Beispiel-AML-Qualifikationsnutzlast

Wenn Sie Einbettungsmodelle aus dem Modellkatalog bereitstellen, stellen Sie mithilfe der AML skill in Azure KI-Suche für die Indizierung von Workloads eine Verbindung mit diesen her.

In diesem Abschnitt werden die AML-Qualifikationsdefinition und Indexzuordnungen beschrieben. Sie enthält eine Beispielnutzlast, die bereits für die Arbeit mit dem entsprechenden bereitgestellten Endpunkt konfiguriert ist. Weitere Informationen finden Sie unter Qualifikationskontext und Eingabeanmerkungssprache.

Cohere-Einbettungsmodelle

Diese AML-Qualifikationsnutzlast funktioniert mit den folgenden Einbettungsmodellen:

  • Cohere-embed-v3-englisch
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4

Es wird davon ausgegangen, dass Sie Ihre Inhalte mithilfe der Fähigkeit "Textteilung" abteilen und daher der zu vektorisierende Text im /document/pages/* Pfad liegt. Wenn Ihr Text von einem anderen Pfad stammt, aktualisieren Sie alle Verweise auf den /document/pages/* Pfad entsprechend.

Sie müssen den /v1/embed Pfad am Ende der URL hinzufügen, die Sie aus Ihrer Foundry-Bereitstellung kopiert haben. Sie können auch die Werte für die input_type, truncateund embedding_types Eingaben ändern, um Ihren Anwendungsfall besser anzupassen. Weitere Informationen zu den verfügbaren Optionen finden Sie in der Referenz zur Cohere Embed-API.

Der URI und der Schlüssel werden generiert, wenn Sie das Modell aus dem Katalog bereitstellen. Weitere Informationen zu diesen Werten finden Sie unter Bereitstellen von Cohere Embed-Modellen mit Foundry.

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/pages/*",
  "uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
  "key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
  "inputs": [
    {
      "name": "texts",
      "source": "=[$(/document/pages/*)]"
    },
    {
      "name": "input_type",
      "source": "='search_document'"
    },
    {
      "name": "truncate",
      "source": "='NONE'"
    },
    {
      "name": "embedding_types",
      "source": "=['float']"
    }
  ],
  "outputs": [
    {
      "name": "embeddings",
      "targetName": "aml_vector_data"
    }
  ]
}

Darüber hinaus handelt es sich bei der Ausgabe des Cohere-Modells nicht direkt um das Einbettungsarray, sondern um ein JSON-Objekt, das dieses enthält. Sie müssen es bei der Zuordnung zur Indexdefinition mit indexProjections oder outputFieldMappings korrekt auswählen. Hier ist eine Beispiel-Payload indexProjections, mit der Sie diese Zuordnung implementieren können.

Wenn Sie in Ihrer Fähigkeitsdefinition eine andere embedding_types ausgewählt haben, ändern Sie float im source-Pfad zu dem von Ihnen ausgewählten Typ.

"indexProjections": {
  "selectors": [
    {
      "targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
      "parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
      "sourceContext": "/document/pages/*",
      "mappings": [
        {
          "name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
          "source": "/document/pages/*/aml_vector_data/float/0"
        }
      ]
    }
  ],
  "parameters": {}
}

Beispiel-Vektorisierungsnutzlast

Der Microsoft Foundry Model Catalog Vectorizer ist im Gegensatz zur AML-Fähigkeit darauf zugeschnitten, nur mit einbettbaren Modellen zu arbeiten, die über den Modellkatalog bereitgestellt werden können. Der Hauptunterschied besteht darin, dass Sie sich keine Gedanken über die Anforderungs- und Antwortnutzlast machen müssen. Sie müssen jedoch die modelName, die der "Modell-ID" entspricht, angeben, die Sie nach der Bereitstellung des Modells kopiert haben.

Nachfolgend finden Sie ein Beispieldatensatz, mit dem Sie den Vektorisierer in Ihrer Indexdefinition konfigurieren können, unter der Voraussetzung, dass die Eigenschaften aus Foundry kopiert wurden.

Für Cohere-Modelle sollten Sie nicht den /v1/embed Pfad am Ende Ihrer URL hinzufügen, wie Sie es mit dem Skill getan haben.

"vectorizers": [
    {
        "name": "<YOUR_VECTORIZER_NAME_HERE>",
        "kind": "aml",
        "amlParameters": {
            "uri": "<YOUR_URL_HERE>",
            "key": "<YOUR_PRIMARY_KEY_HERE>",
            "modelName": "<YOUR_MODEL_ID_HERE>"
        },
    }
]

Herstellen einer Verbindung mithilfe der Tokenauthentifizierung

Wenn Sie die schlüsselbasierte Authentifizierung nicht verwenden können, können Sie die AML-Fähigkeit und Microsoft Foundry-Modellkatalog-Vektorisierungsverbindung für tokenauthentifizierung über die rollenbasierte Zugriffssteuerung für Azure konfigurieren.

Ihr Suchdienst muss über ein System oder eine vom Benutzer zugewiesene verwaltete Identität verfügen, und die Identität muss über Besitzer - oder Mitwirkendeberechtigungen für Ihr Projekt verfügen. Anschließend können Sie das key Feld aus Ihrer Qualifikations- und Vektorizerdefinition entfernen, indem Sie es durch resourceIdersetzen. Wenn sich Ihr Projekt- und Suchdienst in verschiedenen Regionen befinden, stellen Sie auch das region Feld bereit.

"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only needed if project is in different region from search service

Hinweis

Diese Integration unterstützt derzeit keine Tokenauthentifizierung für Cohere-Modelle. Sie müssen die schlüsselbasierte Authentifizierung verwenden.