Teilen über


Azure OpenAI Einbettungsskill

Wichtig

Dieses Feature befindet sich in der Public Preview-Phase und unterliegt zusätzlichen Nutzungsbedingungen. Die 2023-10-01-preview REST API unterstützt die erste Iteration dieser Funktion. Die 2024-05-01-preview REST-API fügt weitere Eigenschaften hinzu und unterstützt weitere Texteinbettungsmodelle in Azure OpenAI.

Der Skill Azure OpenAI Embedding stellt eine Verbindung zu einem bereitgestellten Einbettungsmodell auf Ihrer Azure OpenAI Ressource her, um während des Indexing Einbettungen zu erzeugen. Ihre Daten werden im Geo verarbeitet, in dem Ihr Modell bereitgestellt wird.

Der Assistent zum Importieren und Vektorisieren von Daten im Azure-Portal verwendet den Skill Azure OpenAI Embedding zum Vektorisieren von Inhalten. Sie können den Assistenten ausführen und das generierte Skillset überprüfen, um zu sehen, wie der Assistent die Fähigkeiten für das text-embedding-ada-002-Modell erstellt.

Hinweis

Diese Fähigkeit ist an Azure OpenAI gebunden und wird zum bestehenden Azure OpenAI Pay-as-you-go-Preis berechnet.

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Datengrenzwerte

Die maximale Größe einer Texteingabe sollte 8.000 Token betragen. Übersteigt die Eingabe das zulässige Maximum, gibt das Modell einen Fehler für eine ungültige Anfrage aus. Weitere Informationen finden Sie unter dem Schlüsselkonzept Tokens in der Azure OpenAI Dokumentation. Erwägen Sie, den Skill „Textaufteilung“ zu verwenden, wenn Sie Datenblöcke benötigen.

Skillparameter

Bei den Parametern wird zwischen Groß- und Kleinschreibung unterschieden.

Eingaben Beschreibung
resourceUri Der URI eines Modellanbieters, z. B. eine Azure OpenAI-Ressource oder eine OpenAI-URL.
apiKey Der geheime Schlüssel, mit dem auf das Modell zugegriffen wird. Wenn Sie einen Schlüssel angeben, lassen Sie authIdentity leer. Wenn Sie sowohl die apiKey als auch die authIdentity einstellen, wird die apiKey für die Verbindung verwendet.
deploymentId Der Name des bereitgestellten Azure OpenAI-Einbettungsmodells. Das Modell sollte ein Einbettungsmodell sein, z. B. text-embedding-ada-002. Siehe die Liste der Azure OpenAI-Modelle für unterstützte Modelle.
authIdentity Eine benutzerverwaltete Identität, die vom Suchdienst für die Verbindung zu Azure OpenAI verwendet wird. Sie können entweder eine system- oder eine benutzerverwaltete Identität verwenden. Um eine vom System verwaltete Identität zu verwenden, lassen Sie apiKey und authIdentity leer. Die vom System verwaltete Identität wird automatisch verwendet. Eine verwaltete Identität muss über Cognitive Services OpenAI User Berechtigungen verfügen, um Text an Azure OpenAI zu senden.
modelName Diese Eigenschaft ist erforderlich, wenn Ihr Skillset mit der 2024-05-01-preview REST-API erstellt wird. Legen Sie diese Eigenschaft auf den Bereitstellungsnamen eines Azure OpenAI-Einbettungsmodells fest, das auf dem durch resourceUri angegebenen Anbieter bereitgestellt und über deploymentIdidentifiziert wird. Derzeit werden die Werte text-embedding-ada-002, text-embedding-3-large und text-embedding-3-small unterstützt.
dimensions (Optional, eingeführt in der 2024-05-01-preview REST-API). Die Dimensionen der Einbettungen, die Sie erzeugen möchten, wenn das Modell die Reduzierung der Einbettungsdimensionen unterstützt. Die unterstützten Dimensionen sind nachfolgend aufgeführt. Wenn nichts angegeben ist, wird standardmäßig für jedes Modell die maximale Größe festgelegt. Bei Skillsets, die mit der 2023-10-01-preview erstellt wurden, werden Dimensionen auf 1536 festgelegt.

Unterstützte Dimensionen von modelName

Die unterstützten Dimensionen für eine Azure OpenAI Embedding-Fähigkeit hängen vom konfigurierten modelName ab.

modelName Mindestdimensionen Maximale Dimensionen
text-embedding-ada-002 1536 1536
text-embedding-3-large 1 3072
text-embedding-3-small 1 1536

Skilleingaben

Eingabe Beschreibung
text Der zu vektorisierende Eingabetext. Wenn Sie Datenblöcke verwenden, ist die Quelle möglicherweise /document/pages/*.

Skillausgaben

Ausgabe Beschreibung
embedding Vektorisierte Einbettung für den Eingabetext.

Beispieldefinition

Nehmen wir einen Datensatz mit den folgenden Feldern:

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

Dann könnte Ihre Kompetenzdefinition wie folgt aussehen:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Beispielausgabe

Für den gegebenen Eingabetext wird eine vektorisierte Einbettungsausgabe erzeugt.

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

Die Ausgabe befindet sich im Speicher. Um diese Ausgabe an ein Feld im Suchindex zu senden, müssen Sie ein outputFieldMapping definieren, die die vektorisierte Einbettungsausgabe (ein Array) einem Vektorfeld zuordnet. Wenn sich die Skillausgabe im Einbettungs-Knoten des Dokuments befindet und content_vector das Feld im Suchindex ist, sollte das outputFieldMapping im Index wie folgt aussehen:

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

Bewährte Methoden

Im Folgenden sind einige bewährte Methoden aufgeführt, die Sie bei der Verwendung dieser Skills berücksichtigen müssen:

  • Wenn Sie ihr Azure OpenAI-TPM-Limit (Token pro Minute) erreichen, sollten Sie die Kontingentbeschränkungen berücksichtigen, damit Sie entsprechend adressieren können. Weitere Informationen zur Leistung Ihrer Azure OpenAI-Instanzleistung finden Sie in der Azure OpenAI-Überwachungsdokumentation.

  • Die Azure OpenAI-Einbettungsmodellbereitstellung, die Sie für diesen Skill verwenden, sollte idealerweise von der Bereitstellung getrennt sein, die für andere Anwendungsfälle verwendet wird, einschließlich der Abfragevektorisierung. So kann jede Bereitstellung auf den jeweiligen Anwendungsfall zugeschnitten werden, was zu einer optimierten Leistung führt und die Identifizierung des Datenverkehrs durch den Indexer und die Aufrufe zur Indexeinbettung erleichtert.

  • Ihre Azure OpenAI-Instanz sollte sich in der gleichen Region oder zumindest in der Nähe der Region befinden, in der Ihr KI-Suchdienst gehostet wird. Dies verringert die Latenzzeit und verbessert die Geschwindigkeit der Datenübertragung zwischen den Diensten.

  • Wenn Ihr Grenzwert für Azure OpenAI TPM (Token pro Minute) höher ist als in der Dokumentation für Kontingente und Grenzen angegeben, öffnen Sie eine Supportanfrage an das Azure KI-Suche-Team, damit dieser entsprechend angepasst werden kann. Dies trägt dazu bei, dass Ihr Indizierungsprozess nicht unnötig durch den dokumentierten Standard-TPM-Grenzwert verlangsamt wird, wenn Sie höhere Grenzwerte haben.

  • Beispiele und funktionierende Codebeispiele für diese Fähigkeit finden Sie unter den folgenden Links:

Fehler und Warnungen

Bedingung Ergebnis
Null oder ungültiger URI Fehler
Null oder ungültige deploymentID Fehler
Text ist leer Warnung
Text ist größer als 8.000 Token Fehler

Siehe auch