Fortlaufende Bereitstellungen - 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.

Fortlaufende Bereitstellungen

Wenn Sie Ihren Endpunkt aktualisieren, können Sie einen fortlaufenden Einsatz angeben, um den Verkehr schrittweise von Ihrer alten Flotte auf eine neue Flotte zu verlagern. Sie können die Größe der Schritte zur Verkehrsverlagerung steuern und einen Testzeitraum festlegen, in dem die neuen Instances auf Probleme hin überwacht werden, bevor Instances aus der alten Flotte beendet werden. Bei fortlaufenden Bereitstellungen werden die Instances auf der alten Flotte nach jeder Verlagerung des Datenverkehrs auf die neue Flotte bereinigt, wodurch die Anzahl der zusätzlichen Instances, die für die Aktualisierung Ihres Endpunkts erforderlich sind, reduziert wird. Dies ist insbesondere für beschleunigte Instances nützlich, die stark nachgefragt werden.

Bei fortlaufenden Bereitstellungen wird die vorherige Bereitstellung Ihrer Modellversion schrittweise durch die neue Version ersetzt, indem Ihr Endpunkt in konfigurierbaren Batchgrößen aktualisiert wird. Das Verhalten rollierender Bereitstellungen zur Verkehrsverlagerung ähnelt dem linearen Modus zur Verkehrsverlagerung in blauen/grünen Bereitstellungen, aber rollierende Bereitstellungen bieten Ihnen im Vergleich zu blauen/grünen Bereitstellungen den Vorteil geringerer Kapazitätsanforderungen. Bei rollierenden Bereitstellungen sind weniger Instances gleichzeitig aktiv, und Sie haben eine genauere Kontrolle darüber, wie viele Instances Sie in der neuen Flotte aktualisieren möchten. Wenn Sie über große Modelle oder einen großen Endpunkt mit vielen Instances verfügen, sollten Sie die Verwendung einer fortlaufenden Bereitstellung anstelle einer blauen/grünen Bereitstellung in Betracht ziehen.

In der folgenden Liste werden die wichtigsten Funktionen von fortlaufenden Bereitstellungen bei Amazon SageMaker beschrieben:

  • Backzeit.Die Backphase ist ein festgelegter Zeitraum, um die neue Flotte zu überwachen, bevor mit der nächsten Einsatzphase begonnen wird. Wenn einer der vordefinierten Alarme während einer Back-Phase ausgelöst wird, wird der gesamte Endpunktverkehr auf die alte Flotte zurückgesetzt. Die Backphase hilft Ihnen dabei, Vertrauen in Ihr Update aufzubauen, bevor Sie den Traffic dauerhaft verlagern.

  • Größe der rollenden Charge. Sie haben die genaue Kontrolle über die Größe jedes Batches für die Verkehrsverlagerung oder über die Anzahl der Instances, die Sie in jedem Batch aktualisieren möchten. Diese Zahl kann zwischen 5 und 50% der Größe Ihrer Flotte liegen. Sie können die Batchgröße als Anzahl von Instances oder als Gesamtanteil Ihrer Flotte angeben.

  • Automatisches Zurücksetzen.Sie können CloudWatch Amazon-Alarme angeben, die zur Überwachung der neuen Flotte SageMaker verwendet werden. Wenn ein Problem mit dem aktualisierten Code einen der Alarme SageMaker auslöst, wird ein automatischer Rollback zur alten Flotte eingeleitet, um die Verfügbarkeit aufrechtzuerhalten und so das Risiko zu minimieren.

Anmerkung

Wenn Ihr Endgerät eine der auf der Seite Ausnahmen aufgeführten Funktionen verwendet, können Sie keine fortlaufenden Bereitstellungen verwenden.

Funktionsweise

SageMaker Stellt bei einer fortlaufenden Bereitstellung die Infrastruktur bereit, um den Verkehr von der alten Flotte auf die neue Flotte zu verlagern, ohne dass alle neuen Instances gleichzeitig bereitgestellt werden müssen. SageMaker verwendet die folgenden Schritte, um den Verkehr zu verlagern:

  1. SageMaker stellt die erste Gruppe von Instances in der neuen Flotte bereit.

  2. Ein Teil des Datenverkehrs wird von den alten Instances auf den ersten Batch neuer Instances verlagert.

  3. Wenn nach der Backphase keine CloudWatch Amazon-Alarme ausgelöst werden, wird ein Stapel alter Instances SageMaker bereinigt.

  4. SageMaker stellt Instances weiterhin stapelweise bereit, verschiebt und bereinigt, bis die Bereitstellung abgeschlossen ist.

Wenn während einer der Back-Phasen ein Alarm ausgelöst wird, wird der Traffic in Batches einer von Ihnen angegebenen Größe auf die alte Flotte zurückgeführt. Alternativ können Sie den fortlaufenden Einsatz so festlegen, dass 100% des Verkehrs wieder auf die alte Flotte umgeleitet werden, wenn ein Alarm ausgelöst wird.

Das folgende Diagramm zeigt den Verlauf eines erfolgreichen rollierenden Einsatzes, wie in den vorherigen Schritten beschrieben.

Die einzelnen Schritte einer fortlaufenden Bereitstellung werden erfolgreich von der alten zur neuen Flotte verlagert.

Um eine fortlaufende Bereitstellung zu erstellen, müssen Sie nur Ihre gewünschte Bereitstellungskonfiguration angeben. Übernimmt SageMaker dann die Bereitstellung neuer Instances, die Kündigung alter Instances und die Verlagerung des Datenverkehrs für Sie. Sie können Ihre Bereitstellung mithilfe der vorhandenen Befehle und und erstellen UpdateEndpointCreateEndpoint SageMaker APIund AWS Command Line Interface verwalten.

Voraussetzungen

Bevor Sie eine fortlaufende Bereitstellung einrichten, müssen Sie CloudWatch Amazon-Alarme erstellen, um Metriken von Ihrem Endpunkt aus zu überwachen. Wenn einer der Alarme während der Backphase ausgelöst wird, wird der Traffic wieder auf Ihre alte Flotte übertragen. Informationen zum Einrichten von CloudWatch Alarmen auf einem Endpunkt finden Sie auf der Seite mit den Voraussetzungen für die automatische Rollback-Konfiguration und Überwachung. Weitere Informationen zu CloudWatch Alarmen finden Sie unter Verwenden von CloudWatch Amazon-Alarmen im CloudWatch Amazon-Benutzerhandbuch.

Sehen Sie sich auch die Seite mit den Ausnahmen an, um sicherzustellen, dass Ihr Endpunkt die Anforderungen für eine fortlaufende Bereitstellung erfüllt.

Ermitteln Sie die Größe der fortlaufenden Charge

Bevor Sie Ihren Endpunkt aktualisieren, bestimmen Sie die Batchgröße, die Sie für die schrittweise Verlagerung des Datenverkehrs auf die neue Flotte verwenden möchten.

Für fortlaufende Bereitstellungen können Sie eine Chargengröße angeben, die 5-50% der Kapazität Ihrer Flotte entspricht. Wenn Sie sich für eine große Batchgröße entscheiden, wird die Bereitstellung schneller abgeschlossen. Beachten Sie jedoch, dass der Endpunkt bei der Aktualisierung mehr Kapazität benötigt, was in etwa dem Mehraufwand für die Batchgröße entspricht. Wenn Sie eine kleinere Batchgröße wählen, dauert die Bereitstellung länger, aber Sie verbrauchen während der Bereitstellung weniger Kapazität.

Eine laufende Bereitstellung konfigurieren

Sobald Sie für Ihre Bereitstellung bereit sind und CloudWatch Alarme für Ihren Endpunkt eingerichtet haben, können Sie den Befehl SageMaker UpdateEndpointAPIoder den Befehl update-endpoint in der verwenden, AWS Command Line Interface um die Bereitstellung zu starten.

Wie aktualisiert man einen Endpunkt

Das folgende Beispiel zeigt, wie Sie Ihren Endpunkt mit einer fortlaufenden Bereitstellung aktualisieren können, indem Sie die Methode update_endpoint des Boto3-Clients verwenden. SageMaker

Verwenden Sie das folgende Beispiel und die folgenden Felder, um eine fortlaufende Bereitstellung zu konfigurieren:

  • Verwenden Sie für EndpointName den Namen des vorhandenen Endpunkts, den Sie aktualisieren möchten.

  • Verwenden Sie für EndpointConfigName den Namen der Endpunkt-Konfiguration, die Sie verwenden möchten.

  • Im AutoRollbackConfiguration Objekt, innerhalb des Alarms Felds, können Sie Ihre CloudWatch Alarme nach Namen hinzufügen. Erstellen Sie einen AlarmName: <your-cw-alarm> Eintrag für jeden Alarm, den Sie verwenden möchten.

  • Geben Sie unter DeploymentConfig für das RollingUpdatePolicy Objekt die folgenden Felder an:

    • MaximumExecutionTimeoutInSeconds – Das Zeitlimit für die gesamte Bereitstellung. Eine Überschreitung dieses Limits führt zu einem Timeout. Der Höchstwert, den Sie für dieses Feld angeben können, ist 28800 Sekunden oder 8 Stunden.

    • WaitIntervalInSeconds— Die Dauer der Backphase, während der die Alarme für jede Charge auf der neuen Flotte SageMaker überwacht werden.

    • MaximumBatchSize – Geben Sie die Type Charge an, die Sie verwenden möchten (entweder die Anzahl der Instances oder der Gesamtanteil Ihrer Flotte) und die Value oder die Größe jeder Charge.

    • RollbackMaximumBatchSize – Verwenden Sie dieses Objekt, um die Rollback-Strategie für den Fall festzulegen, dass ein Alarm ausgelöst wird. Geben Sie die Type Anzahl der Chargen an, die Sie verwenden möchten (entweder die Anzahl der Instances oder der Gesamtanteil Ihrer Flotte) und die Value oder die Größe der einzelnen Chargen. Wenn Sie diese Felder nicht angeben oder den Wert auf 100% Ihres Endpunkts setzen, wird eine blaue/grüne Rollback-Strategie SageMaker verwendet und der gesamte Verkehr wird auf die alte Flotte zurückgeleitet, wenn ein Alarm ausgelöst wird.

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" }, ] }, "RollingUpdatePolicy": { "MaximumExecutionTimeoutInSeconds": number, "WaitIntervalInSeconds": number, "MaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, "RollbackMaximumBatchSize": { "Type": "INSTANCE_COUNT" | "CAPACITY_PERCENTAGE" (default), "Value": number }, } } )

Nach der Aktualisierung Ihres Endpunkts möchten Sie möglicherweise den Status Ihrer fortlaufenden Bereitstellung und den Zustand Ihres Endpunkts überprüfen. Sie können den Status Ihres Endpunkts in der SageMaker Konsole überprüfen, oder Sie können den Status Ihres Endpunkts mit der überprüfen. DescribeEndpointAPI

In dem von dem zurückgegebenen VariantStatus Objekt gibt das Status Feld den aktuellen Bereitstellungs- oder Betriebsstatus Ihres Endgeräts an. DescribeEndpoint API Weitere Informationen zu den möglichen Status und ihrer Bedeutung finden Sie unter ProductionVariantStatus.

Wenn Sie versucht haben, eine fortlaufende Bereitstellung durchzuführen und der Status Ihres Endpunkts lautet UpdateRollbackFailed, finden Sie im folgenden Abschnitt Hilfe zur Fehlerbehebung.

Fehlerbehandlung

Wenn Ihre rollenden Bereitstellungen fehlschlagen und auch das automatische Rollback fehlschlägt, kann Ihr Endpunkt den Status von UpdateRollbackFailed behalten. Dieser Status bedeutet, dass für die Instances hinter Ihrem Endpunkt unterschiedliche Endpunktkonfigurationen bereitgestellt werden und Ihr Endpunkt mit einer Mischung aus alten und neuen Endpunktkonfigurationen in Betrieb ist.

Sie können den UpdateEndpointAPIerneut aufrufen, um Ihren Endpunkt wieder in einen fehlerfreien Zustand zu versetzen. Geben Sie Ihre gewünschte Endpunktkonfiguration und Bereitstellungskonfiguration an (entweder als fortlaufende Bereitstellung, als blaue/grüne Bereitstellung oder beides), um Ihren Endpunkt zu aktualisieren.

Sie können den aufrufen DescribeEndpointAPI, um den Zustand Ihres Endpunkts erneut zu überprüfen, der im VariantStatus Objekt als Status Feld zurückgegeben wird. Wenn Ihr Update erfolgreich ist, kehrt Ihr Endpunkt Status zu InService zurück.