Freigeben über


Erste Schritte mit bereitgestellten Bereitstellungen in Azure OpenAI Service

Der folgende Leitfaden führt Sie durch wichtigsten Schritten beim Erstellen einer bereitgestellten Bereitstellung mit Ihrer Azure OpenAI Service-Ressource. Weitere Informationen zu den hier diskutierten Konzepten finden Sie unter:

Voraussetzungen

  • Azure-Abonnement: Kostenloses Azure-Konto
  • Rolle „Azure-Mitwirkender“ oder „Cognitive Services-Mitwirkender“
  • Zugriff auf Azure OpenAI-Studio

Abrufen/Überprüfen der Verfügbarkeit des PTU-Kontingents.

Bereitstellungen für bereitgestellten Durchsatz werden in Einheiten mit dem Namen „Bereitgestellte Durchsatzeinheiten“ (Provisioned Throughput Units, PTUs) bemessen. Das PTU-Kontingent wird einem Abonnement regional gewährt und beschränkt die Gesamtanzahl der PTUs, die in dieser Region über alle Modelle und Versionen hinweg bereitgestellt werden können.

Das Erstellen einer neuen Bereitstellung erfordert ein verfügbares (nicht verwendetes) Kontingent, um die gewünschte Größe der Bereitstellung abzudecken. Beispiel: Wenn ein Abonnement über Folgendes in „USA, Süden-Mitte“ verfügt:

  • PTU-Gesamtkontingent = 500 PTUs
  • Bereitstellungen:
    • 100 PTUs: GPT-4o, 2024-05-13
    • 100 PTUs: GPT-4, 0613

In diesem Fall werden 200 PTUs des Kontingents als verwendet betrachtet, und es stehen 300 PTUs zur Verfügung, um neue Bereitstellungen zu erstellen.

Allen Abonnements in mehreren Regionen wird ein Standardmäßiges bereitgestelltes und globales Kontingent zugewiesen. Sie können das für Sie in einer Region verfügbare Kontingent anzeigen, indem Sie das Blatt „Kontingente“ im Azure OpenAI-Studio besuchen und das gewünschte Abonnement und die gewünschte Region auswählen. Der nachfolgende Screenshot zeigt beispielsweise ein Kontingentlimit von 500 PTUs in „USA, Westen“ für das ausgewählte Abonnement. Beachten Sie, dass Sie möglicherweise niedrigere Werte verfügbarer Standardkontingente sehen werden.

Ein Screenshot des verfügbaren Kontingents im Azure OpenAI-Studio.

Zusätzliches Kontingent kann angefordert werden, indem Sie rechts neben der Spalte „Verbrauch/Grenzwert“ auf den Link „Kontingent anfordern“ klicken. (Dies liegt im obigen Screenshot außerhalb des Bildschirms).

Erstellen einer Azure OpenAI-Ressource

Bereitgestellte und global bereitgestellte Bereitstellungen werden über Azure OpenAI-Ressourcenobjekte in Azure erstellt. Sie müssen über eine Azure OpenAI-Ressource in jeder Region verfügen, in der Sie eine Bereitstellung erstellen möchten. Verwenden Sie das Azure-Portal, um bei Bedarf in einer Region mit verfügbarem Kontingent eine Ressource zu erstellen.

Hinweis

Azure OpenAI-Ressourcen können mehrere Arten von Azure OpenAI-Bereitstellungen gleichzeitig unterstützen. Es ist nicht erforderlich, neue Ressourcen für Ihre bereitgestellten oder global bereitgestellten Bereitstellungen dediziert zuzuweisen.

Erstellen Ihrer bereitgestellten oder global bereitgestellten Bereitstellung – Kapazität ist verfügbar

Nachdem Sie Ihr Kontingent überprüft haben, können Sie eine Bereitstellung erstellen. Zum Erstellen einer bereitgestellten Bereitstellung können Sie die folgenden Schritte ausführen. Die beschriebenen Optionen entsprechen den Einträgen im Screenshot.

Screenshot: Bereitstellungsseite von Azure OpenAI Studio für eine abgeschlossene Bereitstellung

  1. Melden Sie sich bei Azure OpenAI Studio an.

  2. Wählen Sie das Abonnement aus, das für bereitgestellte und global bereitgestellte Bereitstellungen aktiviert wurde, und wählen Sie die gewünschte Ressource in einer Region aus, in der Sie das Kontingent haben.

  3. Wählen Sie unter Verwaltung im linken Navigationsbereich die Option Bereitstellungen aus.

  4. Wählen Sie „Neue Bereitstellung erstellen“ aus, und konfigurieren Sie die folgenden Felder. Erweitern Sie das Dropdownmenü Erweiterte Optionen.

  5. Füllen Sie alle Felder mit den entsprechenden Werten aus. Ein Beispiel:

Feld Beschreibung Beispiel
Modell auswählen Wählen Sie das spezifische Modell aus, das Sie bereitstellen möchten. GPT-4
Modellversion Wählen Sie die Version des bereitzustellenden Modells aus. 0613
Bereitstellungsname Der Bereitstellungsname wird in Ihrem Code verwendet, um das Modell mithilfe der Clientbibliotheken und der REST-APIs aufzurufen. gpt-4
Inhaltsfilter Geben Sie die Filterrichtlinie an, die auf die Bereitstellung angewendet werden soll. Weitere Informationen erhalten Sie in der Anleitung zur Inhaltsfilterung. Standard
Bereitstellungstyp Dies wirkt sich auf den Durchsatz und die Leistung aus. Wählen Sie „Bereitstellungsverwaltet“ oder „Global bereitstellungsverwaltet“ für Ihre Bereitstellung aus. Bereitgestellt-Verwaltet
Bereitgestellte Durchsatzeinheiten Wählen Sie die Durchsatzmenge aus, die Sie in die Bereitstellung aufnehmen möchten. 100

Wichtige Hinweise:

  • Das Bereitstellungsdialogfeld enthält eine Erinnerung, dass Sie eine Azure-Reservierung für Azure OpenAI Provisioned erwerben können, um einen erheblichen Rabatt für eine Laufzeitverpflichtung zu erhalten.

Nachdem Sie die Bereitstellungseinstellungen eingegeben haben, klicken Sie auf Preise bestätigen, um den Vorgang fortzusetzen. Ein Dialogfeld für die Preisbestätigung wird angezeigt, in dem der Listenpreis für die Bereitstellung angezeigt wird, wenn Sie sich für die Zahlung auf stündlicher Basis entscheiden, ohne Azure-Reservierungen, die einen Laufzeitrabatt gewähren.

Wenn Sie sich über die Kosten nicht sicher sind, brechen Sie die Bereitstellung ab, und fahren Sie erst fort, wenn Sie das Zahlungsmodell und die zugrunde liegenden Kosten für die bereitgestellte Bereitstellung verstehen. Dieser Schritt kann unerwartete, hohe Gebühren auf Ihrer Zahlungsrechnung verhindern. Zu den Ressourcen, mit denen Sie sich selbst informieren können, gehören:

Das untenstehende Bild zeigt die Preisbestätigung, die Sie sehen werden. Der angezeigte Preis ist nur ein Beispiel.

Screenshot zeigt den Bildschirm „Preisbestätigung“.

Sie können Ihre Bereitstellung programmgesteuert erstellen, indem Sie den folgenden Azure CLI-Befehl verwenden. Um den Bereitstellungstyp anzugeben, ändern Sie sku-name zu ProvisionedManaged oder GlobalProvisionedManaged basierend auf dem vorgesehenen Bereitstellungstyp. Aktualisieren Sie die sku-capacity mit der gewünschten Anzahl bereitgestellter Durchsatzeinheiten.

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

REST, ARM-Vorlage, Bicep und Terraform können ebenfalls zum Erstellen von Bereitstellungen verwendet werden. Folgen Sie den Schritten im Abschnitt zur Automatisierung von Bereitstellungen in der Schrittanleitung Verwalten von Kontingenten, und ersetzen Sie sku.name durch „ProvisionedManaged“ oder „GlobalProvisionedManaged“anstelle von „Standard“.

Erstellen der bereitgestellten oder global bereitgestellten Bereitstellung – Keine Kapazität verfügbar

Aufgrund der dynamischen Natur der Kapazitätsverfügbarkeit ist es möglich, dass die Region Ihrer ausgewählten Ressource möglicherweise nicht über die Dienstkapazität verfügt, um die Bereitstellung des angegebenen Modells mit der angegebenen Version und der Anzahl der PTUs zu erstellen.

In diesem Fall wird Azure OpenAI Studio Sie an andere Regionen mit verfügbarem Kontingent und verfügbarer Kapazität weiterleiten, um eine Bereitstellung des gewünschten Modells zu erstellen. In diesem Fall sieht das Bereitstellungsdialogfeld wie folgt aus:

Screenshot der Bereitstellungsseite von Azure OpenAI Studio für eine bereitgestellte Bereitstellung ohne verfügbare Kapazität.

Beachten Sie die folgenden Punkte:

  • Es wird eine Nachricht angezeigt, wie viele PTUs Sie im verfügbaren Kontingent haben und wie viele derzeit bereitgestellt werden können.
  • Wenn Sie eine Anzahl von PTUs auswählen, die größer als die Dienstkapazität sind, wird eine Nachricht angezeigt, die Optionen zum Erhalten weiterer Kapazität bietet, und eine Schaltfläche, mit der Sie eine alternative Region auswählen können. Wenn Sie auf die Schaltfläche „Weitere Regionen anzeigen“ klicken, wird ein Dialogfeld angezeigt, in dem eine Liste der Azure OpenAI-Ressourcen angezeigt wird, in denen Sie eine Bereitstellung erstellen können, sowie die maximale Bereitstellungsgröße, die basierend auf verfügbarem Kontingent und Dienstkapazität in den einzelnen Regionen erstellt werden kann.

Screenshot der Azure OpenAI Studio-Bereitstellungsseite für die Auswahl einer anderen Ressource und Region.

Wenn Sie eine Ressource auswählen und auf Ressource wechseln klicken, wird das Bereitstellungsdialogfeld unter Verwendung der ausgewählten Ressource erneut angezeigt. Anschließend können Sie die Bereitstellung in der neuen Region erstellen.

Optionaler Kauf einer Reservierung

Nach der Erstellung Ihrer Bereitstellung können Sie einen Laufzeitrabatt über eine Azure-Reservierung erwerben. Eine Azure-Reservierung kann einen erheblichen Rabatt auf den Stundensatz für Benutzer bieten, die die Bereitstellung länger als einige Tage verwenden möchten.

Weitere Informationen zum Kaufmodell und zu Reservierungen finden Sie unter:

Wichtig

Die Kapazitätsverfügbarkeit für Modellbereitstellungen ist dynamisch und ändert sich häufig über Regionen und Modelle hinweg. Um zu verhindern, dass Sie eine Reservierung für mehr PTUs erwerben, als Sie verwenden können, erstellen Sie zuerst Bereitstellungen, und kaufen Sie dann die Azure-Reservierung für die Abdeckung der bereitgestellten PTUs. Diese bewährte Methode stellt sicher, dass Sie den Reservierungsrabatt vollständig nutzen können und verhindert, dass Sie eine Laufzeitverpflichtung erwerben, die Sie nicht nutzen können.

Durchführen Ihrer ersten Rückschlussaufrufe

Der Rückschlusscode für bereitgestellte Bereitstellungen ist derselbe wie für einen Standardbereitstellungstyp. Das folgende Codeschnipsel zeigt einen Chatabschlussaufruf an ein GPT-4-Modell. Wenn Sie diese Modelle zum ersten Mal programmgesteuert verwenden, wird empfohlen, mit der Schnellstartanleitung zu beginnen. Wir empfehlen, die OpenAI-Bibliothek mit Version 1.0 oder höher zu verwenden, da dies die Wiederholungslogik innerhalb der Bibliothek umfasst.

    #Note: The openai-python library support for Azure OpenAI is in preview. 
    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-02-01"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
            {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
            {"role": "user", "content": "Do other Azure AI services support this too?"}
        ]
    )

    print(response.choices[0].message.content)

Wichtig

Verwenden Sie für die Produktion eine sichere Art der Speicherung und des Zugriffs auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie im Azure KI Services-Artikel Sicherheit.

Grundlegendes zum erwarteten Durchsatz

Die Durchsatzmenge, die Sie auf dem Endpunkt erreichen können, ist ein Faktor aus der Anzahl der bereitgestellten PTUs, der Eingabegröße, der Ausgabegröße und der Aufrufrate. Die Anzahl der gleichzeitigen Aufrufe und der insgesamt verarbeiteten Token kann je nach diesen Werten variieren. Die empfohlene Methode zum Ermitteln des Durchsatzes für Ihre Bereitstellung lautet wie folgt:

  1. Verwenden Sie den Kapazitätsrechner für eine Größenschätzung. Sie finden den Kapazitätsrechner in Azure OpenAI Studio auf der Seite „Kontingente“ und auf der Registerkarte „Bereitgestellt“.
  2. Führen Sie einen Benchmark-Vergleich der Last mit einer echten Datenverkehrsworkload durch. Weitere Informationen zum Benchmarking finden Sie im Abschnitt Benchmarking.

Messen der Bereitstellungsauslastung

Wenn Sie eine bestimmte Anzahl von bereitgestellten Durchsatzeinheiten (PTUs) bereitstellen, wird für diesen Endpunkt eine festgelegte Rückschlussdurchsatzmenge zur Verfügung gestellt. Die Auslastung dieses Durchsatzes ist eine komplexe Formel basierend auf dem Modell, der Aufrufrate der Modellversion, der Eingabeaufforderungsgröße und der Generationsgröße. Zur Vereinfachung dieser Berechnung stellen wir eine Auslastungsmetrik in Azure Monitor bereit. Ihre Bereitstellung gibt für alle neuen Aufrufe 429 zurück, nachdem die Auslastung über 100 % angestiegen ist. Die bereitgestellte Auslastung wird wie folgt definiert:

PTU-Bereitstellungsauslastung = (im Zeitraum verbrauchte PTUs)/(im Zeitraum bereitgestellte PTUs)

Sie finden das Auslastungsmaß im Abschnitt „Azure Monitor“ für Ihre Ressource. Um auf die Dashboards für die Überwachung zuzugreifen, melden Sie sich bei https://portal.azure.com an, wechseln Sie zu Ihrer Azure OpenAI-Ressource, und wählen Sie im linken Navigationsbereich die Seite „Metriken“ aus. Wählen Sie auf der Seite „Metriken“ die Metrik „Bereitgestellte verwaltete Auslastung V2“ aus. Wenn Sie mehr als eine Bereitstellung in der Ressource haben, sollten Sie die Werte auch nach jeder Bereitstellung aufteilen, indem Sie auf die Schaltfläche „Teilung anwenden“ klicken.

Screenshot: Provisioned-Managed Utilization auf dem Metrikblatt der Ressource im Azure-Portal

Weitere Informationen zur Überwachung Ihrer Bereitstellungen finden Sie auf der Seite Überwachen von Azure OpenAI Service.

Handhabung einer hohen Auslastung

Bereitgestellte Bereitstellungen bieten Ihnen eine zugewiesene Computekapazität, um ein bestimmtes Modell auszuführen. Die Metrik „Bereitgestellte-Verwaltete Auslastung“ in Azure Monitor misst die Auslastung der Bereitstellung in Inkrementen von je einer Minute. Bereitstellungen des Typs „Bereitgestellt-Verwaltet“ werden auch optimiert, sodass akzeptierte Aufrufe mit einer einheitlichen maximalen Wartezeit pro Aufruf verarbeitet werden. Wenn die Workload die zugeordnete Kapazität überschreitet, gibt der Dienst den HTTP-Statuscode 429 zurück, bis die Auslastung unter 100 % sinkt. Die Zeit vor der Wiederholung wird in den Antwortheadern retry-after und retry-after-ms bereitgestellt, die die Zeit in Sekunden bzw. Millisekunden angeben. Bei diesem Ansatz werden die Wartezeitziele pro Aufruf beibehalten. Gleichzeitig kann bei der Entwicklung gesteuert werden, wie Situationen mit hoher Last behandelt werden, z. B. Wiederholung oder Umleitung an eine andere Erfahrung/einen anderen Endpunkt.

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

Eine 429-Antwort weist darauf hin, dass die zugeordneten PTUs zum Zeitpunkt des Aufrufs vollständig genutzt werden. Die Antwort enthält die Header retry-after-ms und retry-after, die angeben, wie lange gewartet werden muss, bis der nächste Aufruf angenommen wird. Die Behandlung einer 429-Antwort hängt von Ihren Anwendungsanforderungen ab. Hier einige Überlegungen dazu:

  • Wenn längere Wartezeiten pro Aufruf akzeptabel sind, implementieren Sie clientseitige Wiederholungslogik. Dadurch wird die retry-after-ms-Wartezeit eingehalten, und dann wird der Vorgang erneut versucht. Mit diesem Ansatz können Sie den Durchsatz für die Bereitstellung maximieren. Von Microsoft bereitgestellte Client-SDKs behandeln diese Situation bereits mit angemessenen Standardwerten. Möglicherweise benötigen Sie basierend auf Ihren Anwendungsfällen noch weitere Optimierungen.
  • Erwägen Sie, den Datenverkehr auf andere Modelle, Bereitstellungen oder Erfahrungen umzuleiten. Diese Lösung bietet die kürzeste Wartezeit, da diese Aktion ausgeführt werden kann, sobald Sie das 429-Signal erhalten. Das 429-Signal ist keine unerwartete Fehlerantwort beim Abzielen auf eine hohe Auslastung, sondern ein Teil des Entwurfs für die Verwaltung von Queuing und hoher Last für bereitgestellte Bereitstellungen.

Ändern der Wiederholungslogik innerhalb der Clientbibliotheken

Die Azure OpenAI-SDKs wiederholen 429-Antworten standardmäßig und hinter den Kulissen des Clients (bis zur maximalen Anzahl von Wiederholungsversuchen). Die Bibliotheken respektieren die retry-after-Zeit. Sie können außerdem das Wiederholungsverhalten nach Ihren Wünschen ändern. Hier sehen Sie ein Beispiel für die Python-Bibliothek.

Sie können die Option max_retries verwenden, um die Einstellungen für die Wiederholung zu konfigurieren oder zu deaktivieren:

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-01",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

Ausführen einer Benchmark

Die genauen Leistungs- und Durchsatzfunktionen Ihrer Instanz hängen von der Art der Anforderungen ab, die Sie vornehmen, und der genauen Workload. Die beste Möglichkeit, den Durchsatz für Ihre Workload zu ermitteln, besteht darin, einen Benchmark für Ihre eigenen Daten auszuführen.

Um Sie bei dieser Arbeit zu unterstützen, bietet das Benchmarking-Tool eine Möglichkeit, Benchmarks für Ihre Bereitstellung einfach auszuführen. Das Tool enthält mehrere mögliche vorkonfigurierte Workloadformen und gibt wichtige Leistungsmetriken aus. Erfahren Sie mehr über das Tool und die Konfigurationseinstellungen in unserem GitHub-Repository: https://aka.ms/aoai/benchmarking.

Wir empfehlen den folgenden Workflow:

  1. Schätzen Sie Ihre Durchsatz-PTUs mithilfe des Kapazitätsrechners.
  2. Führen Sie einen Benchmark mit dieser Datenverkehrsform für einen längeren Zeitraum (mehr als 10 Min.) aus, um die Ergebnisse in einem stabilen Zustand zu beobachten.
  3. Beobachten Sie die Werte für Auslastung, verarbeitete Token und Aufrufrate aus dem Benchmarktool und Azure Monitor.
  4. Führen Sie mit Ihrer Clientimplementierung einen Benchmark mit Ihrer eigenen Datenverkehrsform und Ihren eigenen Workloads aus. Implementieren Sie unbedingt Wiederholungslogik entweder mithilfe einer Azure OpenAI-Clientbibliothek oder mit benutzerdefinierter Logik.

Nächste Schritte