Was ist bereitgestellter Durchsatz?

Mithilfe der Funktionalität „Bereitgestellter Durchsatz“ können Sie den in einer Bereitstellung erforderlichen Durchsatz angeben. Der Dienst weist daraufhin die erforderliche Modellverarbeitungskapazität zu und stellt sicher, dass diese für Sie bereit ist. Der Durchsatz wird als bereitgestellte Durchsatzeinheiten (Provisioned Throughput Units, PTUs) definiert. Dabei handelt es sich um eine normalisierte Methode zur Darstellung des Durchsatzes für Ihre Bereitstellung. Jedes Modellversionspaar benötigt unterschiedliche PTU-Mengen, um unterschiedliche Durchsatzmengen pro PTU bereitzustellen.

Was bietet der Typ „Bereitgestellter Durchsatz“?

  • Vorhersagbare Leistung: stabile maximale Wartezeit und stabilen maximalen Durchsatz für einheitliche Workloads.
  • Reservierte Verarbeitungskapazität: Eine Bereitstellung konfiguriert die Durchsatzmenge. Nach der Bereitstellung ist der Durchsatz verfügbar, unabhängig davon, ob er verwendet wird.
  • Kosteneinsparungen: Workloads mit hohem Durchsatz bieten im Vergleich zur tokenbasierten Nutzung möglicherweise Kosteneinsparungen.

Eine Azure OpenAI-Bereitstellung ist eine Verwaltungseinheit für ein bestimmtes OpenAI-Modell. Eine Bereitstellung bietet Kunden den Zugriff auf ein Modell zum Rückschluss und integriert weitere Features wie die Inhaltsmoderation (Informationen finden Sie in der Dokumentation zur Inhaltsmoderation).

Hinweis

Das Kontingent der bereitgestellten Durchsatzeinheit (Provisioned Throughput Unit, PTU) unterscheidet sich vom Standardkontingent in Azure OpenAI und ist standardmäßig nicht verfügbar. Wenn Sie mehr über dieses Angebot erfahren möchten, wenden Sie sich an Ihr Microsoft-Kontoteam.

Was erhalten Sie?

Thema Bereitgestellt
Was ist das? Bietet einen garantierten Durchsatz in kleineren Schritten als das bestehende bereitgestellte Angebot. Bereitstellungen verfügen über eine konsistente maximale Wartezeit für eine bestimmte Modellversion.
Für wen ist das gedacht? Kunden, die den garantierten Durchsatz mit minimalen Abweichungen hinsichtlich der Wartezeit wünschen.
Kontingent Bereitgestellte verwaltete Durchsatzeinheiten für ein bestimmtes Modell
Latency Die maximale durch das Modell eingeschränkte Wartezeit Die Gesamtwartezeit bestimmt unter anderem die Form des Aufrufs.
Nutzung In Azure Monitor bereitgestelltes Measure „Provisioned-Managed Utilization“
Größenschätzung Bereitgestellter Rechner im Studio- und Benchmarkingskript

Wie erhalte ich Zugriff auf den bereitgestellten Durchsatz?

Sie müssen sich an Ihr Microsoft-Vertriebs-/Kontoteam wenden, um bereitgestellten Durchsatz zu erwerben. Wenn Sie nicht über ein Vertriebs-/Kontoteam verfügen, können Sie derzeit leider keinen bereitgestellten Durchsatz kaufen.

Wichtige Begriffe

Bereitgestellte Durchsatzeinheiten

Bereitgestellte Durchsatzeinheiten (Provisioned Throughput Units, PTUs) sind Einheiten der Modellverarbeitungskapazität, die Sie reservieren und bereitstellen können, um Prompts zu verarbeiten und Vervollständigungen zu generieren. Die minimalen Werte für PTU-Bereitstellung, Inkremente und Verarbeitungskapazität, die jeder Einheit zugeordnet sind, variieren je nach Modelltyp und Version.

Bereitstellungstypen

Beim Bereitstellen eines Modells in Azure OpenAI müssen Sie sku-name auf „ProvisionedManaged“ festlegen. sku-capacity gibt die Anzahl der PTUs an, die der Bereitstellung zugewiesen sind.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyDeployment \
--model-name gpt-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged 

Kontingent

Das bereitgestellte Durchsatzkontingent stellt einen bestimmten Gesamtdurchsatz dar, den Sie bereitstellen können. Das Kontingent in Azure OpenAI Service wird auf Abonnementebene verwaltet. Alle Azure OpenAI-Ressourcen innerhalb des Abonnements teilen dieses Kontingent.

Das Kontingent wird in bereitgestellten Durchsatzeinheiten angegeben und ist spezifisch für ein Triplet (Bereitstellungstyp, Modell, Region). Das Kontingent ist nicht austauschbar. Das bedeutet, dass Sie kein Kontingent für GPT-4 verwenden können, um GPT-35-Turbo bereitzustellen. Sie können eine Supportanfrage stellen, um das Kontingent zwischen Bereitstellungstypen, Modellen oder Regionen zu verschieben, wobei der Tausch jedoch nicht garantiert ist.

Wir versuchen zwar, die Bereitstellbarkeit des Kontingents zu gewährlisten, allerdings stellt das Kontingent keine Garantie dafür dar, dass die zugrunde liegende Kapazität verfügbar ist. Der Dienst weist die Kapazität während des Bereitstellungsvorgangs zu. Sollte die Kapazität nicht verfügbar sein, schlägt diese mit dem Fehler „Keine weitere Kapazität verfügbar“ fehl.

Ermitteln der Anzahl der für eine Workload erforderlichen PTUs

PTUs stellen eine Modellverarbeitungskapazität dar. Ähnlich wie auf Ihrem Computer oder in Datenbanken verbrauchen verschiedene Workloads oder Anforderungen an das Modell unterschiedliche Mengen der zugrunde liegenden Verarbeitungskapazität. Die Konvertierung von Aufrufformmerkmalen (Promptgröße, Generierungsgröße und Aufrufrate) in PTUs ist komplex und nicht linear. Um diesen Vorgang zu vereinfachen, können Sie den Azure OpenAI-Kapazitätsrechner verwenden, um die Größe bestimmter Workloadformen zu ermitteln.

Einige allgemeine Überlegungen:

  • Generierungen erfordern mehr Kapazität als Prompts.
  • Die Berechnung größerer Aufrufe ist progressiv teurer. Beispielsweise erfordern 100 Aufrufe mit einer Promptgröße von 1.000 Tokens weniger Kapazität als ein Aufruf mit 100.000 Tokens im Prompt. Dies bedeutet auch, dass die Verteilung dieser Aufrufformen im Gesamtdurchsatz wichtig ist. Datenverkehrsmuster mit einer breiten Verteilung, die einige sehr große Aufrufe enthält, können einen geringeren Durchsatz pro PTU als eine engere Verteilung mit den gleichen durchschnittlichen Prompt- und Vervollständigungstokengrößen aufweisen.

Funktionsweise der Nutzungserzwingung

Bereitgestellte Bereitstellungen bieten Ihnen eine zugewiesene Modellverarbeitungskapazität, um ein bestimmtes Modell auszuführen. Die Provisioned-Managed Utilization-Metrik in Azure Monitor misst eine bestimmte Bereitstellungsauslastung in Inkrementen von einer Minute. Provisioned-Managed-Bereitstellungen sind so optimiert, dass sie die Verarbeitung akzeptierter Aufrufe mit einer konsistenten Modellverarbeitungszeit sicherstellen, wobei die tatsächliche End-to-End-Wartezeit von den Merkmalen eines Aufrufs abhängt. Wenn die Workload die zugeordnete PTU-Kapazität überschreitet, gibt der Dienst den HTTP-Statuscode 429 zurück, bis die Auslastung unter 100 % sinkt.

Was sollte ich tun, wenn ich eine 429-Antwort erhalte?

Die 429-Antwort ist kein Fehler, sondern soll als Teil des Entwurfs Benutzer*innen darüber informieren, dass eine bestimmte Bereitstellung zu einem bestimmten Zeitpunkt vollständig ausgelastet ist. Durch die Bereitstellung einer Fast-Fail-Antwort können Sie bestimmen, wie mit diesen Situationen umgegangen werden soll, um Ihren Anwendungsanforderungen zu entsprechen.

Die Header retry-after-ms und retry-after in der Antwort geben die Wartezeit bis zur Annahme des nächsten Aufrufs an. Wie Sie mit dieser Antwort umgehen, hängt von Ihren Anwendungsanforderungen ab. Hier einige Überlegungen dazu:

  • Sie können erwägen, den Datenverkehr auf andere Modelle, Bereitstellungen oder Umgebungen umzuleiten. Diese Lösung bietet die kürzeste Wartezeit, da die Aktion ausgeführt werden kann, sobald Sie das 429-Signal erhalten.
  • Wenn längere Wartezeiten pro Aufruf Ihren Vorstellungen entsprechen, implementieren Sie eine clientseitige Wiederholungslogik. Mit dieser Option erhalten Sie den höchsten Durchsatz pro PTU. Die Azure OpenAI-Clientbibliotheken enthalten integrierte Funktionen für die Behandlung von Wiederholungen.

Wie entscheidet der Dienst, wann eine 429-Antwort gesendet werden soll?

Wir verwenden eine Variation des Leaky-Bucket-Algorithmus, um die Auslastung unter 100 % zu halten und gleichzeitig einen burstartigen Datenverkehr zuzulassen. Die allgemeine Logik lautet folgendermaßen:

  1. Jeder Kunde verfügt über eine festgelegte Kapazität, die er für eine Bereitstellung nutzen kann.

  2. Wenn eine Anforderung gestellt wird, passiert Folgendes:

    a. Wenn die aktuelle Auslastung über 100 % liegt, gibt der Dienst einen 429-Code zurück, wobei der retry-after-ms-Header auf die Zeit festgelegt ist, bis die Auslastung unter 100 % liegt.

    b. Andernfalls schätzt der Dienst die inkrementelle Änderung der Auslastung, die zum Verarbeiten der Anforderung benötigt wird, indem Prompttoken und die angegebenen max_tokens im Aufruf kombiniert werden. Wenn der max_tokens-Parameter nicht angegeben ist, wird der Dienst einen Wert schätzen. Diese Schätzung kann zu einer tieferen Parallelität führen als erwartet, wenn die Anzahl der tatsächlich generierten Token klein ist. Stellen Sie für die höchste Parallelität sicher, dass der max_tokens-Wert der tatsächlichen Generierungsgröße so nah wie möglich ist.

  3. Nach dem Abschluss einer Anforderung sind die tatsächlichen Computekosten für den Aufruf bekannt. Um eine genaue Berechnung zu gewährleisten, wird die Auslastung mithilfe der folgenden Logik korrigiert:

    a. Wenn die tatsächlichen Kosten höher geschätzt werden (>), wird die Differenz zur Auslastung b der Bereitstellung hinzugefügt. Wenn die tatsächlichen Kosten niedriger geschätzt werden (<), wird die Differenz abgezogen.

  4. Die Gesamtauslastung wird basierend auf der Anzahl der bereitgestellten PTUs in fortlaufenden Dekrementen verringert.

Hinweis

Aufrufe werden angenommen, bis die Auslastung 100 Prozent erreicht. Bursts über 100 Prozent sind möglicherweise für kurze Zeiträume zulässig, aber im Zeitverlauf wird Ihr Datenverkehr auf eine Auslastung von 100 Prozent begrenzt.

Diagram showing how subsequent calls are added to the utilization.

Wie viele gleichzeitige Aufrufe kann ich in meiner Bereitstellung haben?

Die Anzahl der gleichzeitigen Aufrufe, die Sie erreichen können, hängt von der Form jedes Anrufs ab (Aufforderungsgröße, max_token Parameter usw.). Der Dienst wird Aufrufe weiterhin akzeptieren, bis die Nutzung über 100 % liegt. Um die ungefähre Anzahl gleichzeitiger Aufrufe zu bestimmen, können Sie die maximalen Anforderungen pro Minute für eine bestimmte Aufrufform im Kapazitätsrechner modellieren. Wenn das System weniger als die Anzahl der Samplingtoken wie max_token generiert, nimmt es mehr Anfragen an.

Nächste Schritte