Erfahren Sie, wie Sie Einbettungen generieren

Bei einer Einbettung handelt es sich um ein spezielles Format der Datendarstellung, das maschinelle Lernmodelle und Algorithmen problemlos verwenden können. Eine Einbettung ist eine informationsdichte Darstellung der semantischen Bedeutung eines Textteils. Jede Einbettung ist ein Vektor von Gleitkommazahlen, sodass der Abstand zwischen zwei Einbettungen im Vektorraum mit der semantischen Ähnlichkeit zwischen zwei Eingaben im ursprünglichen Format korreliert. Wenn beispielsweise zwei Texte ähnlich sind, sind ihre Vektordarstellungen ebenfalls ähnlich. Einbettungen ermöglichen die Vektorsimilaritätssuche in Azure-Datenbanken wie Azure Cosmos DB for NoSQL, Azure SQL-Datenbank und Azure Database for PostgreSQL - Flexible Server.

Voraussetzungen

  • Ein Azure OpenAI-Einbettungsmodell bereitgestellt.
  • Die folgenden Werte aus Ihrer Ressource:
    • Endpunkt, z. B. https://YOUR-RESOURCE-NAME.openai.azure.com/.
    • API-Schlüssel.
    • Modell Bereitstellungsname

Weitere sprachspezifische Einrichtungsanleitungen finden Sie unter Azure OpenAI unterstützte Programmiersprachen.

Wie man Einbettungen erhält

Um einen Einbettungsvektor für einen Text zu erhalten, stellen Sie eine Anforderung an den Endpunkt für einbettende Elemente vor, wie in den folgenden Codeausschnitten gezeigt:

Hinweis

Die Azure OpenAI-Einbettungs-API unterstützt derzeit keine Microsoft Entra ID mit der v1-API. Verwenden Sie die API-Schlüsselauthentifizierung für die Beispiele in diesem Artikel.

using OpenAI;
using OpenAI.Embeddings;
using System.ClientModel;

EmbeddingClient client = new(
    "text-embedding-3-small",
    credential: new ApiKeyCredential("API-KEY"),
    options: new OpenAIClientOptions()
    {

        Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
    }
);

string input = "This is a test";

OpenAIEmbedding embedding = client.GenerateEmbedding(input);
ReadOnlyMemory<float> vector = embedding.ToFloats();
Console.WriteLine($"Embeddings: [{string.Join(", ", vector.ToArray())}]");

Bewährte Methoden

Tip

Einbettungsanforderungen geben HTTP 400 zurück, wenn die Summe der Eingabetoken 300.000 überschreitet, auch wenn jede einzelne Eingabe gut unter dem Grenzwert pro Eingabe liegt. Wenn Sie zuvor große Arrays mit langen Eingaben erfolgreich in Stapeln verarbeitet haben, teilen Sie sie in kleinere Anfragen auf.

Überprüfen, ob Eingaben die maximale Länge nicht überschreiten

  • Die maximale Länge des Eingabetexts für die neuesten Einbettungsmodelle beträgt 8.192 Token. Stellen Sie sicher, dass Ihre Eingaben diesen Grenzwert nicht überschreiten, bevor Sie eine Anforderung stellen.
  • Wenn Sie ein Array von Eingaben in einer einzigen Einbettungsanforderung senden, beträgt die maximale Arraygröße 2.048.
  • Jede /embeddings Anforderung hat auch eine harte Obergrenze von 300.000 Token, die über alle Eingaben summiert werden. Anforderungen, die diesen Aggregatgrenzwert überschreiten, schlagen mit HTTP 400 fehl, auch wenn jede einzelne Eingabe unter 8.192 Token liegt und die Arraylänge unter 2.048 liegt. Teilen Sie große Workloads in mehrere kleinere Anfragen auf, um das Limit nicht zu überschreiten.
  • Wenn Sie ein Array von Eingaben in einer einzigen Anforderung senden, denken Sie daran, dass die Anzahl der Token pro Minute in Ihren Anforderungen unter dem Kontingentlimit bleiben muss, das der Modellbereitstellung zugewiesen ist. Standardmäßig unterliegen Einbettungsmodelle der neuesten Generation 3 einem Grenzwert von 350 K TPM pro Region.

Problembehandlung

  • Wenn Sie einen 401-Fehler oder 403-Fehler erhalten, bestätigen Sie, dass der API-Schlüssel für die Ressource gültig ist.
  • Wenn sie einen 404 Fehler erhalten, bestätigen Sie, dass der Endpunkt den /openai/v1/ Pfad enthält und Sie die richtige Basis-URL verwendet haben.
  • Wenn ein 400 Fehler angezeigt wird, stellen Sie sicher, dass model auf Ihren Bereitstellungsnamen festgelegt ist und der Anforderungstext gültiges JSON ist.

Einschränkungen und Risiken

Einbettungsmodelle können in bestimmten Fällen unzuverlässig sein oder soziale Risiken darstellen. Sie können Schaden verursachen, wenn sie ohne Entschärfungen verwendet werden. Weitere Informationen zum verantwortungsvollen Umgang mit ihrer Nutzung finden Sie in den Inhalten "Verantwortungsvolle KI ".

Nächste Schritte