Direkt zum Inhalt

Wie behebe ich den Fehler "ThrottlingException", wenn ich On-Demand-Ressourcen von Amazon Bedrock verwende?

Lesedauer: 5 Minute
0

Ich möchte den Fehler "ThrottlingException" (429 HTTP-Statuscode) beheben, den ich erhalte, wenn ich On-Demand-Ressourcen von Amazon Bedrock verwende.

Kurzbeschreibung

Wenn du die Service Quotas überschreitest, lehnt Amazon Bedrock die Anfragen ab.

Amazon Bedrock gibt einen "ThrottlingException" (HTTP-Statuscode: 429) zurück und du erhältst eine der folgenden Fehlermeldungen auf der Clientseite:

  • "Too many requests, please wait before trying again. You have sent too many requests. Wait before trying again."
  • "Your request rate is too high. Reduce the frequency of requests."
  • "Too many tokens, please wait before trying again."

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

AWS-Service Quotas überwachen

Überprüfe die Amazon Bedrock-Service Quotas, um sicherzustellen, dass du sie nicht überschreitest. Überprüfe die Amazon CloudWatch-Metriken in Schritten von 1 Minute, um Drosselungsmuster zu identifizieren. Wenn die Nutzung zu Spitzenzeiten die Quotas überschreitest, kann es auch bei zuvor erfolgreichen Batches zu einer Drosselung kommen. Um sicherzustellen, dass das Anforderungsvolume der Anwendung die Quotas nicht überschreitet, überwache die Amazon Bedrock-Laufzeitmetriken InputTokenCount und Invocations.

Einige Modelle haben separate Kontingente für Anfragen pro Minute (RPM) und Tokens pro Minute (TPM), die Amazon Bedrock gleichzeitig durchsetzt.

Neuere Modellversionen haben möglicherweise andere Kontingente als frühere Versionen.

Hinweis: Das Service Quota-Dashboard zeigt nur konfigurierte Kontingente an, nicht die Nutzung in Echtzeit. Verwende CloudWatch, um die Nutzung in Echtzeit zu überwachen.

Regionsübergreifende Inferenzprofile verwenden

Verwende regionsübergreifende Inferenzprofile, um den Datenverkehr dynamisch über mehrere AWS-Regionen zu leiten, um eine optimale Verfügbarkeit für jede Anfrage und eine bessere Leistung in Zeiten hoher Auslastung zu erzielen. Jede Region unterhält unabhängige Kapazitätspools. Um eine Drosselung des Kapazitätspools einer Region zu vermeiden, verteile Anfragen auf mehrere Regionen.

Einige Modelle, wie Anthropic Claude 3.5 Sonnet, erfordern regionsübergreifende Inferenzprofile in bestimmten Regionen.

Weitere Informationen findest du im Codebeispiel für regionsübergreifende Interferenz im amazon-bedrock-workshop auf der GitHub-Website.

Hinweis: Um ein Inferenzprofil zu verwenden, musst du eine Region und ein Modell verwenden, die Amazon Bedrock unterstützt.

Anfordern einer Quota-Erhöhung

Neue Konten haben möglicherweise niedrigere Anfangs-Quotas als die Standard-Quotas. Einige Modelle haben nicht anpassbare feste Quotas. Wenn der Workload-Datenverkehr die On-Demand-Quotas des Kontos überschreitet, wende dich an den AWS Support oder den Account Manager, um eine Quota-Erhöhung anzufordern. AWS passt die Standard-Quotas möglicherweise an Nutzungsmuster oder Serviceanforderungen an.

Gib in deiner Anforderung die folgenden Informationen an:

  • Den Namen der Quota, die du erhöhen möchtest
  • Die Modell-ID
  • Die Region für die Quota-Erhöhung
  • Eine kurze Erklärung des Anwendungsfalls
  • Die voraussichtliche Nutzung, einschließlich gleichbleibender und Spitzen-Tokens und Anfragen pro Minute sowie durchschnittlicher Eingabe- und Ausgabe-Tokens pro Anfrage.

Bereitgestellten Durchsatz verwenden

Wenn du hohe Durchsatzanforderungen hast, kaufe „Bereitgestellter Durchsatz“.

Hinweis: Wenn du „Bereitsgestellter Durchsatz“ verwendest, fallen zusätzliche Kosten an. Informationen zu den Preisen von „Bereitgesteller Durchsatz“ findest du im Abschnitt Preismodelle unter Amazon Bedrock-Preise.

Weitere Informationen darüber, wie du „Bereitgestellter Durchsatz“ verwenden kannst, findest du unter Verwenden eines bereitgestellten Durchsatzes mit einer Amazon Bedrock-Ressource. Informationen zur Verwendung der AWS-CLI oder des Python-SDK zum Erstellen von „Bereitgestellter Durchsatz“ findest du unter Codebeispiele für bereitgestellten Durchsatz.

Hinweis: Stelle vor dem Kauf von „Bereitgestellter Durchsatz“ sicher, dass du eine Region und ein Modell verwenden, die Amazon Bedrock unterstützt.

Wiederholungen mit exponentiellem Backoff hinzufügen

Wenn du den On-Demand-Modus verwendest, verwendet Amazon Bedrock einen gemeinsamen Kapazitätspool für mehrere Kunden. In Zeiten hoher Serviceanforderungen kann es zu Drosselungen kommen, auch wenn die Anfragen innerhalb der Quotas des Kontos liegen. Außerdem verwaltet der Service automatisch die Kapazitätszuweisung für alle Benutzer.

Es empfiehlt sich, Wiederholungsversuche mit exponentiellem Backoff und zufälligem Jitter zu verwenden. Wenn du AWS-SDKs verwendest, findest du weitere Informationen unter Verhalten bei Wiederholungen.

Stelle sicher, dass das Wiederholungs-Backoff eine volle Minute dauert, wenn die Quotas pro Minute erreicht sind. Synchronisiere die Wiederholungsversuche mit dem 60-Sekunden-Quota-Aktualisierungszyklus. Verteile die Anfragen außerdem innerhalb eines Zeitraums von 1 Minute auf mehrere Sekunden.

Beispiel für eine Python-Konfiguration mit adaptivem Wiederholungsmodus:

from botocore.config import Config

config = Config(
    retries={
        'max_attempts': 10,  # Default is 3
        'mode': 'adaptive'
    }
)
bedrock_runtime = boto3.client('bedrock-runtime', config=config)

Den Fehler "ServiceUnavailable" beheben

Ein Fehler "ServiceUnavailableException" (HTTP-Statuscode 503) tritt aufgrund vorübergehender Kapazitätsbeschränkungen auf, die Quotas wurden nicht überschritten. Dieser Fehler wird normalerweise automatisch behoben, erfordert jedoch möglicherweise Anpassungen der Architektur für kritische Workloads.

Prüfe deine AWS CloudTrail-Protokolle, um zu überprüfen, ob du die Fehlermeldung "ServiceUnavailable" mit dem Fehler "ThrottlingException" erhältst.

Wenn du beide Fehler erhältst, gehe wie folgt vor, um den Fehler "ServiceUnavailableException" zu beheben:

Unerwartete Drosselungen beheben, wenn du die Quotas nicht überschritten hast

Wenn du eine Drosselung erlebt hast und die Service Quotas nicht überschritten hast, ergreife die folgenden Maßnahmen: