Legen Sie Auto-Scaling-Richtlinien für die Bereitstellung von Multimodell-Endpunkten fest - Amazon SageMaker

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.

Legen Sie Auto-Scaling-Richtlinien für die Bereitstellung von Multimodell-Endpunkten fest

SageMaker Endgeräte mit mehreren Modellen unterstützen vollständig die automatische Skalierung, bei der Modellreplikate verwaltet werden, um sicherzustellen, dass die Modelle auf der Grundlage von Verkehrsmustern skaliert werden. Es wird empfohlen, den Multimodell-Endpunkt und die Größe Ihrer Instances anhand von Instance-Empfehlungen für Bereitstellungen von Multimodell-Endpunkten zu konfigurieren und für Ihren Endpunkt auch das Auto Scaling anhand von Instances einzurichten. Die zum Auslösen eines Auto-Scaling-Ereignisses verwendeten Aufrufraten basieren auf dem aggregierten Satz von Vorhersagen über alle Modelle, die von dem Endpunkt bedient werden. Weitere Informationen zur Einrichtung von Endpoint Auto Scaling finden Sie unter Automatisches Skalieren von SageMaker Amazon-Modellen.

Sie können Auto Scaling-Richtlinien mit vordefinierten und benutzerdefinierten Kennzahlen für CPU- und GPU-gestützte Multimodell-Endpunkte einrichten.

Anmerkung

SageMaker Endpunktmetriken für mehrere Modelle sind mit einer Genauigkeit von einer Minute verfügbar.

Definieren einer Skalierungsrichtlinie

Um die Kennzahlen und Zielwerte für eine Skalierungsrichtlinie festzulegen, konfigurieren Sie eine Skalierungsrichtlinie für die Ziel-Nachverfolgung. Sie können entweder eine vor- bzw. eine benutzerdefinierte Kennzahl verwenden.

Die Konfiguration einer Skalierungsrichtlinie wird durch einen JSON-Block dargestellt. Sie speichern Ihre Konfiguration einer Skalierungsrichtlinie als JSON-Block in einer Textdatei. Sie verwenden diese Textdatei, wenn Sie die AWS CLI oder die Application Auto Scaling Scaling-API aufrufen. Weitere Informationen zur Syntax der Richtlinienkonfiguration finden Sie unter TargetTrackingScalingPolicyConfiguration in der API-Referenz für Application Auto Scaling.

Die folgenden Optionen stehen zur Verfügung, um eine Konfiguration der Skalierungsrichtlinien für die Zielverfolgung zu definieren.

Verwenden einer vorab definierten Metrik

Zur schnellen Definition einer Skalierungsrichtlinie für die Ziel-Nachverfolgung einer Variante verwenden Sie die vorab definierte Kennzahl SageMakerVariantInvocationsPerInstance. SageMakerVariantInvocationsPerInstance ist die durchschnittliche Anzahl an Aufrufen jeder Instance für eine Variante pro Minute. Wir empfehlen dringend, diese Kennzahl zu verwenden.

Um eine vorab definierte Kennzahl in einer Skalierungsrichtlinie zu verwenden, erstellen Sie eine Zielverfolgungskonfiguration für Ihre Richtlinie. Beziehen Sie in die Konfiguration einer Ziel-Nachverfolgung eine PredefinedMetricSpecification für die vorab definierte Kennzahl ein sowie einen TargetValue für den Zielwert dieser Kennzahl..

Im folgenden Beispiel wird eine typische Richtlinienkonfiguration für die Skalierung der Ziel-Nachverfolgung für eine Variante dargestellt. Bei dieser Konfiguration verwenden wir die vordefinierte Kennzahl SageMakerVariantInvocationsPerInstance, um die Zahl der Varianten-Instances anzupassen, damit jede Instance eine InvocationsPerInstanceKennzahl von 70 hat.

{"TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "InvocationsPerInstance" } }
Anmerkung

Wir empfehlen bei Verwendung von Multimodell-Endpunkten die Verwendung von InvocationsPerInstance. Der Wert TargetValue für diese Kennzahl hängt von den Latenzanforderungen Ihrer Anwendung ab. Wir empfehlen Ihnen außerdem, Ihre Endpunkte einem Belastungstest zu unterziehen, um geeignete Werte für die Skalierungsparameter einzurichten. Weitere Informationen zu Lasttests und zur Einrichtung von Autoscaling für Ihre Endgeräte finden Sie im Blog Configuring Autoscaling Inference Endpoints in Amazon. SageMaker

Verwenden einer benutzerdefinierten Metrik

Wenn Sie eine Skalierungsrichtlinie für die Ziel-Nachverfolgung festlegen müssen, die den Anforderungen Ihrer Kunden entspricht, dann definieren Sie eine benutzerdefinierte Kennzahl.. Sie können eine benutzerdefinierte Kennzahl basierend auf einer beliebigen Varianten-Kennzahl definieren, die sich proportional zur Skalierung ändert.

Nicht alle SageMaker Metriken eignen sich für die Zielverfolgung. Die Kennzahl muss eine gültige Auslastungsmetrik sein und beschreiben, wie ausgelastet eine Instance ist. Der Wert der Kennzahl muss sich umgekehrt proportional zur Anzahl der Varianten-Instance erhöhen oder verringern. Das bedeutet, dass sich der Wert der Kennzahl verringern sollte, wenn die Zahl der Instances zunimmt.

Wichtig

Vor dem Bereitstellen der automatischen Skalierung in einer Produktionsumgebung müssen Sie die automatische Skalierung mit Ihrer benutzerdefinierten Kennzahl testen.

Beispiel für eine benutzerdefinierte Kennzahl für einen CPU-gestützten Multimodell-Endpunkt

Im folgenden Beispiel wird die Konfiguration für die Ziel-Nachverfolgung einer Skalierungsrichtlinie dargestellt. Bei dieser Konfiguration passt eine benutzerdefinierte Kennzahl von my-model für ein Modell mit der Bezeichnung CPUUtilization die Anzahl der Instances auf dem Endpunkt anhand einer durchschnittlichen CPU-Auslastung von 50% für alle Instances an.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "CPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

Beispiel für eine benutzerdefinierte Kennzahl für einen GPU-gestützten Multimodell-Endpunkt

Im folgenden Beispiel wird die Konfiguration für die Ziel-Nachverfolgung einer Skalierungsrichtlinie dargestellt. Bei dieser Konfiguration passt eine benutzerdefinierte Kennzahl von my-model für ein Modell mit der Bezeichnung GPUUtilization die Anzahl der Instances auf dem Endpunkt anhand einer durchschnittlichen GPU-Auslastung von 50% für alle Instances an.

{"TargetValue": 50, "CustomizedMetricSpecification": {"MetricName": "GPUUtilization", "Namespace": "/aws/sagemaker/Endpoints", "Dimensions": [ {"Name": "EndpointName", "Value": "my-endpoint" }, {"Name": "ModelName","Value": "my-model"} ], "Statistic": "Average", "Unit": "Percent" } }

Hinzufügen einer Ruhephase

Wenn Sie zum Aufskalieren Ihres Modells eine Ruhephase hinzufügen möchten, legen Sie für ScaleOutCooldown einen Wert in Sekunden fest. Entsprechend können Sie für ScaleInCooldown einen Wert in Sekunden festlegen, wenn Sie zum Abskalieren Ihres Modells eine Ruhephase hinzufügen möchten. Weitere Informationen über ScaleInCooldown und ScaleOutCooldown finden Sie unter TargetTrackingScalingPolicyConfiguration in der API-Referenz für Application Auto Scaling.

Im Folgenden finden Sie eine Beispielkonfiguration für die Ziel-Nachverfolgung für eine Skalierungsrichtlinie. Bei dieser Konfiguration wird die vordefinierte Kennzahl SageMakerVariantInvocationsPerInstance verwendet, um anhand eines Durchschnitts von 70 für alle Instances dieser Variante die Skalierung anzupassen. Die Konfiguration sieht eine Ruhephase von 10 Minuten zum Abskalieren und eine Ruhephase von 5 Minuten zum Aufskalieren vor.

{"TargetValue": 70.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "SageMakerVariantInvocationsPerInstance" }, "ScaleInCooldown": 600, "ScaleOutCooldown": 300 }