Erste Schritte mit vorkonfigurierten Bereitstellungen in Microsoft Foundry

Die folgende Anleitung führt Sie durch die wichtigsten Schritte beim Erstellen einer bereitgestellten Bereitstellung mit Ihrer Microsoft Foundry-Ressource. Weitere Informationen zu den hier erläuterten Konzepten finden Sie unter:

Voraussetzungen

Überprüfen der Verfügbarkeit von PTU-Kontingenten

Bereitgestellter Durchsatz wird in Einheiten namens Provisioned Throughput Units (PTUs) bemessen. Das PTU-Kontingent für jeden bereitgestellten Bereitstellungstyp wird einem Abonnement regional gewährt und beschränkt die Gesamtanzahl der PTUs, die in dieser Region in allen Modellen und Versionen bereitgestellt werden können.

Zum Erstellen einer neuen Bereitstellung ist ein verfügbares (nicht verwendetes) Kontingent erforderlich, um die gewünschte Größe der Bereitstellung abzudecken. Zum Beispiel: Wenn ein Abonnement folgendes in den Süd-Zentral-USA hat:

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

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

Eine Standardmenge an globalen, datenbezogenen und regional vorgesehenen Kontingenten wird berechtigten Abonnements in mehreren Regionen zugewiesen.

Sie können das für Sie in einer Region verfügbare Kontingent anzeigen, indem Sie den Bereich Quota im Bereich Microsoft FoundryOperate besuchen und das gewünschte Abonnement und die gewünschte Region auswählen.

Zusätzliches Kontingent kann durch Auswählen der Schaltfläche "Anforderungskontingent " angefordert werden.

Erstellen einer Foundry-Ressource

Bereitstellungsvorgänge werden über Foundry-Ressourcenobjekte innerhalb von Azure erstellt. Sie müssen über eine Foundry-Ressource in jeder Region verfügen, in der Sie eine Bereitstellung erstellen möchten.

Hinweis

Foundry-Ressourcen können mehrere Arten von Foundry-Bereitstellungen gleichzeitig unterstützen. Es ist nicht erforderlich, neue Ressourcen für Ihre bereitgestellten Implementierungen zu verwenden.

Entdecken Sie Modelle mit eingerichteter Bereitstellungsoption

Nachdem Sie Ihr Kontingent überprüft haben, können Sie eine Bereitstellung erstellen. Navigieren Sie zum Foundry-Modellkatalog, um die Modelle mit bereitgestellten Bereitstellungsoptionen zu ermitteln.

  1. Melden Sie sich bei Microsoft Foundry an. Stellen Sie sicher, dass die Umschaltfläche "Neue Gießerei " aktiviert ist. Diese Schritte beziehen sich auf Foundry (neu).
  2. Wählen Sie auf der Startseite des Foundry-Portals das Abonnement aus, das für 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 " Entdecken" in der oberen rechten Navigation und dann " Modelle " im linken Bereich aus.
  4. Wählen Sie den Collections Filter und filtern Sie nach Direkt von Azure, um die Modelle anzuzeigen, die von Azure gehalten und bereitgestellt werden. Eine Auswahl dieser Modelle unterstützt die Option der bereitgestellten Durchsatzbereitstellung.
  5. Wählen Sie das Modell aus, das Sie bereitstellen möchten, um die Modellkarte zu öffnen.
  6. Wählen Sie Bereitstellen>Benutzerdefinierte Einstellungen aus, um Ihre Bereitstellung anzupassen.
  7. Wählen Sie das Dropdownmenü " Bereitstellungstyp " aus, um festzustellen, ob die bereitgestellte Bereitstellung für das Modell verfügbar ist.

Bereitstellung einrichten – Kapazität verfügbar

Sie können Die Bereitstellung programmgesteuert erstellen, indem Sie den folgenden Azure CLI Befehl verwenden. Um den Bereitstellungstyp anzugeben, ändern Sie sku-name in GlobalProvisionedManaged, DataZoneProvisionedManaged oder ProvisionedManaged 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 auch zum Erstellen von Bereitstellungen verwendet werden. Lesen Sie den Abschnitt zum Automatisieren von Bereitstellungen in der Anleitung zum Verwalten von Kontingenten und ersetzen Sie den sku.name Artikel durch GlobalProvisionedManaged, DataZoneProvisionedManaged oder ProvisionedManaged nicht durch Standard.

Optional eine Reservierung kaufen

Nach der Erstellung Ihrer Bereitstellung möchten Sie möglicherweise einen Laufzeitrabatt über eine Azure-Reservierung erwerben. Eine Azure Reservierung kann einen erheblichen Rabatt auf den Stundensatz für Benutzer bereitstellen, die die Bereitstellung über einige Tage hinaus 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, um die von Ihnen bereitgestellten PTUs abzudecken. Diese bewährte Methode stellt sicher, dass Sie den Reservierungsrabatt vollständig nutzen und verhindern können, dass Sie eine Laufzeitverpflichtung erwerben, die Sie nicht verwenden können.

Tätigen Sie Ihre ersten Inferenzanfragen

Der Inferenzcode für bereitgestellte Deployments entspricht dem Standard-Deployment-Typ. Der folgende Codeausschnitt zeigt einen Chatabschlussaufruf an ein GPT-4-Modell. Wenn Sie diese Modelle zum ersten Mal programmgesteuert verwenden, empfehlen wir Ihnen, mit unserem Schnellstarthandbuch zu beginnen. Unsere Empfehlung besteht darin, die OpenAI-Bibliothek mit Version 1.0 oder höher zu verwenden, da dies die Wiederholungslogik innerhalb der Bibliothek umfasst.

    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-10-21"
    )

    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 services support this too?"}
        ]
    )

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

Wichtig

Verwenden Sie für die Produktion eine sichere Möglichkeit zum Speichern und Zugreifen auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie in diesem Sicherheitsartikel .

Verstehen des erwarteten Durchsatzes

Der Durchsatz, den Sie auf dem Endpunkt erzielen können, ist ein Faktor der Anzahl der bereitgestellten PTUs, der Eingabegröße, der Ausgabegröße und der Anrufrate. Die Anzahl gleichzeitiger Aufrufe und verarbeiteter Gesamttoken kann je nach diesen Werten variieren.

Messen der Bereitstellungsauslastung

Wenn Sie eine bestimmte Anzahl von bereitgestellten Durchsatzeinheiten (PTUs) bereitstellen, wird für diesen Endpunkt eine festgelegte Ableitungsmenge bereitgestellt. Die Nutzung dieses Durchsatzes wird durch eine komplexe Formel bestimmt, die auf Modell, Modellversionsanfragerate, Eingabebefehlgröße und Generierungsgröße basiert. Zur Vereinfachung dieser Berechnung stellen wir eine Auslastungsmetrik in Azure Monitor bereit. Ihre Bereitstellung gibt bei allen neuen Aufrufen einen Fehlercode 429 zurück, nachdem die Auslastung über 100 % steigt. Die bereitgestellte Nutzung wird wie folgt definiert:

PTU-Bereitstellungsauslastung = (PTUs verbraucht im Zeitraum) / (PTUs eingesetzt im Zeitraum)

Sie finden das Auslastungsmaß im Abschnitt Azure-Monitor für Ihre Ressource. Um auf die Überwachungs-Dashboards zuzugreifen, melden Sie sich bei https://portal.azure.com an, navigieren Sie zu Ihrer Azure OpenAI-Ressource und wählen Sie die Seite "Metriken" in der linken Navigationsleiste 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 die Schaltfläche "Aufteilen anwenden" auswählen.

Screenshot der bereitgestellten verwalteten Auslastung auf dem Metrikblatt der Ressource im Azure portal.

Umgang mit hoher Auslastung

Bereitgestellte Arbeitsumgebungen bieten Ihnen eine zugewiesene Menge an Rechenkapazität, um ein bestimmtes Modell auszuführen. Die Metrik "Provisioned-Managed Utilization V2" in Azure Monitor misst die Auslastung der Bereitstellung in einminütigen Intervallen. "„Provisioned-Managed“-Bereitstellungen sind ebenfalls optimiert, sodass angenommene Anrufe mit einer gleichbleibenden maximalen Latenz pro Anruf verarbeitet werden." Wenn die Workload ihre zugeordnete Kapazität überschreitet, gibt der Dienst einen HTTP-Statuscode von 429 zurück, bis die Auslastung unter 100%fällt. Die Zeit vor dem Wiederholen wird in den retry-after Headern und retry-after-ms Antwortheadern angegeben, die die Zeit in Sekunden bzw. Millisekunden angeben. Bei diesem Ansatz werden die Latenzziele pro Anruf beibehalten, während der Entwickler die Kontrolle über die Behandlung von Situationen mit hoher Auslastung erhält , z. B. wiederholen oder auf eine andere Erfahrung/einen anderen Endpunkt umleiten.

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

Eine Antwort von 429 weist darauf hin, dass die zugeordneten PTUs zum Zeitpunkt des Anrufs vollständig genutzt werden. Die Antwort enthält die und -Kopfzeilen, die Ihnen die Zeit zeigen, bis die nächste Anfrage bearbeitet wird. Die Art und Weise, wie Sie eine 429-Antwort behandeln, hängt von Ihren Anwendungsanforderungen ab. Hier sind einige Überlegungen:

  • Wenn Sie mit längeren Wartezeiten pro Anruf einverstanden sind, implementieren Sie clientseitige Wiederholungslogik, um die retry-after-ms Zeit zu warten und den Vorgang erneut auszuführen. Mit diesem Ansatz können Sie den Durchsatz in der Implementierung maximieren. Die von Microsoft bereitgestellten Client-SDKs behandeln dies bereits mit angemessenen Standardwerten. Möglicherweise benötigen Sie noch weitere Optimierungen basierend auf Ihren Anwendungsfällen.
  • Erwägen Sie, den Datenverkehr auf andere Modelle, Bereitstellungen oder Erfahrungen umzuleiten. Dieser Ansatz ist die Lösung mit der niedrigsten Latenz, da diese Aktion ausgeführt werden kann, sobald Sie das 429-Signal erhalten. Das 429-Signal ist keine unerwartete Fehlerantwort beim Erreichen einer hohen Auslastung, sondern Teil des Designs für das Management von Warteschlangen und hoher Auslastung für bereitgestellte Systeme.

Ändern der Wiederholungslogik in den Clientbibliotheken

Die Azure OpenAI-SDKs wiederholen 429-Antworten standardmäßig innerhalb des Clients bis zu den maximalen Wiederholungen. Die Bibliotheken respektieren die retry-after Zeit. Sie können auch das Wiederholungsverhalten so ändern, dass es Ihrer Erfahrung besser entspricht. Hier ist ein Beispiel mit der Python-Bibliothek.

Mit der Option max_retries können Sie die Wiederholungsversucheinstellungen konfigurieren oder deaktivieren.

import os
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-10-21",
    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 services support this too?"}
    ]
)

Ausführen eines Benchmarks

Die genauen Leistungs- und Durchsatzfähigkeiten Ihrer Instanz hängen von der Art der Anfragen ab, die Sie stellen, sowie von dem genauen Arbeitsaufkommen. 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 Workload-Shapes und gibt wichtige Leistungsmetriken aus. Erfahren Sie mehr über die Tool- und Konfigurationseinstellungen in unserem GitHub Repo: https://github.com/Azure/azure-openai-benchmark.

Wir empfehlen den folgenden Workflow:

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