Azure OpenAI Einbettungsskill
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 geografischen Raum verarbeitet, in dem Ihr Modell bereitgestellt wird.
Voraussetzungen
Ihr Azure OpenAI-Dienst muss über eine zugeordnete benutzerdefinierte Unterdomäne verfügen. Wenn der Dienst über das Azure-Portal erstellt wurde, wird diese Unterdomäne automatisch im Rahmen Ihres Dienstsetups generiert. Stellen Sie sicher, dass Ihr Dienst eine benutzerdefinierte Unterdomäne enthält, bevor Sie ihn mit der Integration der Azure KI-Suche verwenden.
Azure OpenAI Service-Ressourcen (mit Zugriff auf Einbettungsmodelle), die im Azure AI Foundry-Portal erstellt wurden, werden nicht unterstützt. Nur die im Azure-Portal erstellten Azure OpenAI Service-Ressourcen sind mit der Skillintegration Azure OpenAI-Einbettung kompatibel.
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ähigkeit zum Einbetten von Modellen 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 des Modellanbieters, in diesem Fall eine Azure OpenAI-Ressource. Dieser Parameter unterstützt nur URLs mit Domäne openai.azure.com , z https://<resourcename>.openai.azure.com . B. . Wenn der Azure OpenAI-Endpunkt über eine URL mit Domäne cognitiveservices.azure.com verfügt, z https://<resourcename>.cognitiveservices.azure.com . B. eine benutzerdefinierte Unterdomäne , die openai.azure.com zuerst für die Azure OpenAI-Ressource erstellt und stattdessen verwendet https://<resourcename>.openai.azure.com werden muss. |
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 mithilfe der REST-API 2024-05-01 oder 2024-07-01 erstellt wird. Legen Sie diese Eigenschaft auf den Bereitstellungsnamen eines Azure OpenAI-Einbettungsmodells fest, das auf dem durch resourceUri angegebenen Anbieter bereitgestellt und über deploymentId identifiziert 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 |