Skalieren Sie einen Endpunkt auf null Instanzen - Amazon SageMaker KI

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.

Skalieren Sie einen Endpunkt auf null Instanzen

Wenn Sie Auto Scaling für einen Endpunkt einrichten, können Sie zulassen, dass der Scale-In-Prozess die Anzahl der In-Service-Instances auf Null reduziert. Auf diese Weise sparen Sie Kosten in Zeiten, in denen Ihr Endpunkt keine Inferenzanfragen bedient und daher keine aktiven Instances benötigt.

Nach der Skalierung auf Null Instances kann Ihr Endpunkt jedoch erst dann auf eingehende Inferenzanfragen antworten, wenn er mindestens eine Instanz bereitstellt. Um den Bereitstellungsprozess zu automatisieren, erstellen Sie mit Application Auto Scaling eine schrittweise Skalierungsrichtlinie. Anschließend weisen Sie die Richtlinie einem CloudWatch Amazon-Alarm zu.

Nachdem Sie die Step Scaling-Richtlinie und den Alarm eingerichtet haben, stellt Ihr Endpunkt automatisch eine Instance bereit, sobald er eine Inferenzanfrage erhält, auf die er nicht antworten kann. Beachten Sie, dass der Bereitstellungsprozess mehrere Minuten dauert. Während dieser Zeit führen alle Versuche, den Endpunkt aufzurufen, zu einem Fehler.

In den folgenden Verfahren wird erklärt, wie Auto Scaling für einen Endpunkt so eingerichtet wird, dass er auf und ab Null-Instances skaliert. Die Prozeduren verwenden Befehle mit dem AWS CLI.

Bevor Sie beginnen

Bevor Ihr Endpunkt auf oder ab einer Instanz von Null skaliert werden kann, muss er die folgenden Anforderungen erfüllen:

  • Es ist in Betrieb.

  • Es beherbergt eine oder mehrere Inferenzkomponenten. Ein Endpunkt kann nur dann auf und von Null auf Instanzen skaliert werden, wenn er Inferenzkomponenten hostet.

    Informationen zum Hosten von Inferenzkomponenten auf SageMaker KI-Endpunkten finden Sie unter. Implementieren Sie Modelle für Inferenz in Echtzeit

  • In der Endpunktkonfiguration haben Sie für das ManagedInstanceScaling Produktionsvariantenobjekt den MinInstanceCount Parameter auf gesetzt. 0

    Referenzinformationen zu diesem Parameter finden Sie unter ProductionVariantManagedInstanceScaling.

Um einem Endpunkt die Skalierung auf null Instanzen zu ermöglichen (AWS CLI)

Gehen Sie für jede Inferenzkomponente, die der Endpunkt hostet, wie folgt vor:

  1. Registrieren Sie die Inferenzkomponente als skalierbares Ziel. Wenn Sie sie registrieren, legen Sie die Mindestkapazität auf fest0, wie mit dem folgenden Befehl gezeigt wird:

    aws application-autoscaling register-scalable-target \ --service-namespace sagemaker \ --resource-id inference-component/inference-component-name \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --min-capacity 0 \ --max-capacity n

    In diesem Beispiel inference-component-name ersetzen Sie es durch den Namen Ihrer Inferenzkomponente. nErsetzen Sie durch die maximale Anzahl von Kopien der Inferenzkomponenten, die beim Skalieren bereitgestellt werden sollen.

    Weitere Informationen zu diesem Befehl und seinen einzelnen Parametern finden Sie register-scalable-targetin der AWS CLI Befehlsreferenz.

  2. Wenden Sie eine Richtlinie zur Zielverfolgung auf die Inferenzkomponente an, wie im folgenden Befehl dargestellt:

    aws application-autoscaling put-scaling-policy \ --policy-name my-scaling-policy \ --policy-type TargetTrackingScaling \ --resource-id inference-component/inference-component-name \ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --target-tracking-scaling-policy-configuration file://config.json

    In diesem Beispiel ersetzen Sie es inference-component-name durch den Namen Ihrer Inferenzkomponente.

    In dem Beispiel enthält die config.json Datei eine Richtlinienkonfiguration für die Zielverfolgung, z. B. die folgende:

    { "PredefinedMetricSpecification": { "PredefinedMetricType": "SageMakerInferenceComponentInvocationsPerCopy" }, "TargetValue": 1, "ScaleInCooldown": 300, "ScaleOutCooldown": 300 }

    Weitere Beispiele für Konfigurationen von Tracking-Richtlinien finden Sie unterDefinieren einer Skalierungsrichtlinie.

    Weitere Informationen zu diesem Befehl und seinen einzelnen Parametern finden Sie put-scaling-policyin der AWS CLI Befehlsreferenz.

Um einem Endpunkt die Skalierung ab einer Instanz von Null aus zu ermöglichen (AWS CLI)

Gehen Sie für jede Inferenzkomponente, die der Endpunkt hostet, wie folgt vor:

  1. Wenden Sie eine Richtlinie zur schrittweisen Skalierung auf die Inferenzkomponente an, wie im folgenden Befehl dargestellt:

    aws application-autoscaling put-scaling-policy \ --policy-name my-scaling-policy \ --policy-type StepScaling \ --resource-id inference-component/inference-component-name \ --service-namespace sagemaker \ --scalable-dimension sagemaker:inference-component:DesiredCopyCount \ --target-tracking-scaling-policy-configuration file://config.json

    In diesem Beispiel ersetzen Sie es my-scaling-policy durch einen eindeutigen Namen für Ihre Richtlinie. inference-component-nameErsetzen Sie ihn durch den Namen Ihrer Inferenzkomponente.

    Im Beispiel enthält die config.json Datei eine Richtlinienkonfiguration für die schrittweise Skalierung, z. B. die folgende:

    { "AdjustmentType": "ChangeInCapacity", "MetricAggregationType": "Maximum", "Cooldown": 60, "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ] }

    Wenn diese Richtlinie zur schrittweisen Skalierung ausgelöst wird, SageMaker stellt KI die erforderlichen Instanzen bereit, um die Kopien der Inferenzkomponenten zu unterstützen.

    Nachdem Sie die Step Scaling-Richtlinie erstellt haben, notieren Sie sich den Amazon-Ressourcennamen (ARN). Sie benötigen den ARN für den CloudWatch Alarm im nächsten Schritt.

    Weitere Informationen zu Step Scaling-Richtlinien finden Sie unter Step Scaling-Richtlinien im Application Auto Scaling Scaling-Benutzerhandbuch.

  2. Erstellen Sie einen CloudWatch Alarm und weisen Sie ihm die Step Scaling-Richtlinie zu, wie das folgende Beispiel zeigt:

    aws cloudwatch put-metric-alarm \ --alarm-actions step-scaling-policy-arn \ --alarm-description "Alarm when SM IC endpoint invoked that has 0 instances." \ --alarm-name ic-step-scaling-alarm \ --comparison-operator GreaterThanThreshold \ --datapoints-to-alarm 1 \ --dimensions "Name=InferenceComponentName,Value=inference-component-name" \ --evaluation-periods 1 \ --metric-name NoCapacityInvocationFailures \ --namespace AWS/SageMaker \ --period 60 \ --statistic Sum \ --threshold 1

    In diesem Beispiel step-scaling-policy-arn ersetzen Sie es durch die ARN Ihrer Step Scaling-Richtlinie. ic-step-scaling-alarmErsetzen Sie ihn durch einen Namen Ihrer Wahl. inference-component-nameErsetzen Sie durch den Namen Ihrer Inferenzkomponente.

    In diesem Beispiel wird der --metric-name Parameter auf gesetztNoCapacityInvocationFailures. SageMaker AI gibt diese Metrik aus, wenn ein Endpunkt eine Inferenzanforderung empfängt, der Endpunkt aber keine aktiven Instanzen hat, um die Anfrage zu bearbeiten. Wenn dieses Ereignis eintritt, leitet der Alarm die Richtlinie zur schrittweisen Skalierung aus dem vorherigen Schritt ein.

    Weitere Informationen zu diesem Befehl und seinen einzelnen Parametern finden Sie put-metric-alarmin der AWS CLI Befehlsreferenz.