Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Definieren einer Skalierungsrichtlinie
Bevor Sie Ihrem Modell eine Skalierungsrichtlinie hinzufügen, speichern Sie Ihre Richtlinienkonfiguration als JSON-Block in einer Textdatei. Sie verwenden diese Textdatei, wenn Sie die AWS Command Line Interface (AWS CLI) oder die Application Auto Scaling Scaling-API aufrufen. Sie können die Skalierung optimieren, indem Sie eine geeignete CloudWatch Metrik auswählen. Bevor Sie jedoch eine benutzerdefinierte Metrik in der Produktion verwenden, müssen Sie Auto Scaling mit Ihrer benutzerdefinierten Metrik testen.
Themen
In diesem Abschnitt finden Sie Beispiele für Richtlinienkonfigurationen für Skalierungsrichtlinien zur Zielverfolgung.
Geben Sie eine vordefinierte Metrik an (CloudWatch Metrik: InvocationsPerInstance)
Im Folgenden finden Sie ein Beispiel für die Konfiguration einer Zielverfolgungsrichtlinie für eine Variante, bei der die durchschnittlichen Aufrufe pro Instance bei 70 belassen werden. Speichern Sie diese Konfiguration in einer Datei mit dem Namen config.json
.
{ "TargetValue":
70.0
, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" } }
Weitere Informationen finden Sie TargetTrackingScalingPolicyConfigurationin der API-Referenz für Application Auto Scaling.
Geben Sie eine vordefinierte Metrik mit hoher Auflösung an (CloudWatch Metriken: ConcurrentRequestsPerModel und ConcurrentRequestsPerCopy)
Mit den folgenden hochauflösenden CloudWatch Metriken können Sie Skalierungsrichtlinien für das Volumen der gleichzeitigen Anfragen festlegen, die Ihre Modelle erhalten:
- ConcurrentRequestsPerModel
-
Die Anzahl der gleichzeitigen Anfragen, die von einem Modellcontainer empfangen werden.
- ConcurrentRequestsPerCopy
-
Die Anzahl der gleichzeitigen Anfragen, die von einer Inferenzkomponente empfangen wurden.
Diese Metriken verfolgen die Anzahl der gleichzeitigen Anfragen, die Ihre Modellcontainer verarbeiten, einschließlich der Anfragen, die sich in den Containern in der Warteschlange befinden. Bei Modellen, die ihre Inferenzantwort als Token-Stream senden, verfolgen diese Metriken jede Anfrage, bis das Modell das letzte Token für die Anfrage sendet.
Als Metriken mit hoher Auflösung geben sie Daten häufiger aus als CloudWatch Standardmetriken. Standardmetriken, wie die InvocationsPerInstance
Metrik, geben einmal pro Minute Daten aus. Diese hochauflösenden Metriken geben jedoch alle 10 Sekunden Daten aus. Wenn der gleichzeitige Traffic zu Ihren Modellen zunimmt, reagiert Ihre Richtlinie daher mit einer wesentlich schnelleren Skalierung als dies bei Standardmetriken der Fall wäre. Wenn jedoch der Traffic zu Ihren Modellen abnimmt, wird Ihre Richtlinie genauso schnell skaliert wie bei Standardmetriken.
Im Folgenden finden Sie ein Beispiel für eine Policy-Konfiguration zur Zielverfolgung, mit der Instanzen hinzugefügt werden, wenn die Anzahl gleichzeitiger Anfragen pro Modell 5 übersteigt. Speichern Sie diese Konfiguration in einer Datei mit dem Namen config.json
.
{ "TargetValue": 5.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantConcurrentRequestsPerModelHighResolution" } }
Wenn Sie Inferenzkomponenten verwenden, um mehrere Modelle auf demselben Endpunkt bereitzustellen, können Sie eine entsprechende Richtlinie erstellen. Stellen Sie in diesem Fall PredefinedMetricType
auf SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution
ein.
Weitere Informationen finden Sie TargetTrackingScalingPolicyConfigurationin der API-Referenz für Application Auto Scaling.
Definieren Sie eine benutzerdefinierte Metrik (CloudWatchMetrik: CPUUtilization)
Um eine Skalierungsrichtlinie für die Zielverfolgung mit einer benutzerdefinierten Metrik zu erstellen, geben Sie den Namen, den Namespace, die Einheit, die Statistik und null oder mehr Dimensionen der Metrik an. Dimensionen bestehen aus einem Dimensionsnamen und einem Dimensionswert. Sie können jede Metrik für Produktionsvarianten verwenden, die sich proportional zur Kapazität ändert.
Die folgende Beispielkonfiguration zeigt eine Skalierungsrichtlinie für die Zielverfolgung mit einer benutzerdefinierten Metrik. Die Richtlinie skaliert die Variante auf der Grundlage einer durchschnittlichen CPU-Auslastung von 50 Prozent über alle Instanzen hinweg. Speichern Sie diese Konfiguration in einer Datei mit dem Namen config.json
.
{ "TargetValue":
50.0
, "CustomizedMetricSpecification": { "MetricName": "CPUUtilization
", "Namespace": "/aws/sagemaker/Endpoints
", "Dimensions":[ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ]
, "Statistic": "Average
", "Unit": "Percent
" } }
Weitere Informationen finden Sie CustomizedMetricSpecificationin der API-Referenz für Application Auto Scaling.
Definieren Sie eine benutzerdefinierte Metrik (CloudWatch Metrik: ExplanationsPerInstance)
Wenn für den Endpunkt die Online-Erklärbarkeit aktiviert ist, gibt er eine ExplanationsPerInstance
Metrik aus, die die durchschnittliche Anzahl erklärter Datensätze pro Minute und Instanz für eine Variante ausgibt. Die Ressourcennutzung bei der Erklärung von Datensätzen kann sich stärker von der der Vorhersage von Datensätzen unterscheiden. Wir empfehlen dringend, diese Metrik für die zielgerichtete Skalierung von Endpunkten mit aktivierter Online-Erklärbarkeit zu verwenden.
Sie können mehrere Richtlinien zur Zielverfolgung für ein skalierbares Ziel erstellen. Erwägen Sie, die InvocationsPerInstance
Richtlinie aus dem Geben Sie eine vordefinierte Metrik an (CloudWatch Metrik: InvocationsPerInstance) Abschnitt hinzuzufügen (zusätzlich zur ExplanationsPerInstance
Richtlinie). Wenn die meisten Aufrufe aufgrund des im EnableExplanations
Parameter festgelegten Schwellenwerts keine Erklärung zurückgeben, kann der Endpunkt die Richtlinie auswählen. InvocationsPerInstance
Wenn eine große Anzahl von Erklärungen vorliegt, kann der Endpunkt die Richtlinie ExplanationsPerInstance
verwenden.
Die folgende Beispielkonfiguration zeigt eine Skalierungsrichtlinie für die Zielverfolgung mit einer benutzerdefinierten Metrik. Die Richtlinienskala passt die Anzahl der Varianteninstanzen so an, dass jede Instanz eine ExplanationsPerInstance
Metrik von 20 hat. Speichern Sie diese Konfiguration in einer Datei mit dem Namen config.json
.
{ "TargetValue":
20.0
, "CustomizedMetricSpecification": { "MetricName": "ExplanationsPerInstance
", "Namespace": "AWS/SageMaker
", "Dimensions":[ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "VariantName","Value": "my-variant"} ],
"Statistic": "Sum
" } }
Weitere Informationen finden Sie CustomizedMetricSpecificationin der API-Referenz für Application Auto Scaling.
Geben Sie die Abklingzeiten an
Sie können optional Abklingzeiten in Ihrer Skalierungsrichtlinie für die Zielverfolgung definieren, indem Sie die Parameter ScaleOutCooldown
und ScaleInCooldown
angeben.
Im Folgenden finden Sie ein Beispiel für die Konfiguration einer Ziel-Tracking-Richtlinie für eine Variante, bei der die durchschnittlichen Aufrufe pro Instance bei 70 liegen. Die Richtlinienkonfiguration sieht eine Scale-In-Abklingzeit von 10 Minuten (600 Sekunden) und eine Scale-Out-Abklingzeit von 5 Minuten (300 Sekunden) vor. Speichern Sie diese Konfiguration in einer Datei mit dem Namen config.json
.
{ "TargetValue":
70.0
, "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown":600
, "ScaleOutCooldown":300
}
Weitere Informationen finden Sie TargetTrackingScalingPolicyConfigurationin der API-Referenz für Application Auto Scaling.