Einen SageMaker HyperPod Cluster herunterskalieren - 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.

Einen SageMaker HyperPod Cluster herunterskalieren

Sie können die Anzahl der Instances, die auf Ihrem SageMaker HyperPod Amazon-Cluster ausgeführt werden, reduzieren. Es kann verschiedene Gründe geben, warum Sie einen Cluster herunterskalieren möchten, beispielsweise eine geringere Ressourcennutzung oder Kostenoptimierung.

Die folgende Seite beschreibt zwei Hauptansätze zum Herunterskalieren:

  • Herunterskalieren auf Instance-Gruppenebene: Dieser Ansatz verwendet die UpdateCluster-API, mit der Sie:

    • Die Anzahl der Instances für bestimmte Instance-Gruppen unabhängig voneinander herunterskalieren. SageMaker KI verarbeitet die Terminierung von Knoten so, dass die Anzahl der neuen Zielinstanzen erreicht wird, die Sie für jede Gruppe festgelegt haben. Siehe Verkleinern Sie eine Instance-Gruppe.

    • Löschen Sie Instance-Gruppen vollständig aus Ihrem Cluster. Siehe Instance-Gruppen löschen.

  • Herunterskalieren auf Instance-Ebene Dieser Ansatz nutzt die BatchDeleteClusterNodes-API, mit der Sie die einzelnen Knoten angeben können, die Sie beenden möchten. Siehe Herunterskalieren auf Instance-Ebene.

Anmerkung

Beim Herunterskalieren auf Instance-Ebene mit BatchDeleteCusterNodes können Sie nur maximal 99 Instances gleichzeitig beenden. UpdateCluster unterstützt das Beenden einer beliebigen Anzahl von Instances.

Wichtige Überlegungen

  • Wenn Sie einen Cluster herunterskalieren, sollten Sie sicherstellen, dass die verbleibenden Ressourcen für Ihren Workload ausreichen und dass alle erforderlichen Datenmigrationen oder Neugewichtungen ordnungsgemäß durchgeführt werden, um Störungen zu vermeiden.

  • Stellen Sie sicher, dass Sie Ihre Daten auf Amazon S3 oder einem FSx for Lustre-Dateisystem sichern, bevor Sie die API für eine Worker-Knotengruppe aufrufen. Dies kann dazu beitragen, potenziellen Datenverlust durch das Instance-Root-Volume zu verhindern. Weitere Informationen über Sicherungen finden Sie unter Verwenden Sie das Backup-Skript von SageMaker HyperPod.

  • Um diese API auf einem vorhandenen Cluster aufzurufen, müssen Sie zuerst den Cluster patchen, indem Sie die API ausführen. UpdateClusterSoftware Weitere Informationen zum Patchen eines Clusters finden Sie unter Aktualisieren Sie die SageMaker HyperPod Plattformsoftware eines Clusters.

  • Die Zählung/Abrechnung für On-Demand-Instances wird nach der Herunterskalierung automatisch gestoppt. Wenn Sie die Erfassung von reservierten Instances mit reduzierter Kapazität beenden möchten, wenden Sie sich an Ihr AWS Account-Team, um Unterstützung zu erhalten.

  • Sie können die freigegebene Kapazität der herunterskalierten Reserved Instances verwenden, um einen anderen Cluster hochzuskalieren. SageMaker HyperPod

Herunterskalieren auf Instance-Gruppenebene

Dieser UpdateClusterVorgang ermöglicht es Ihnen, Änderungen an der Konfiguration Ihres SageMaker HyperPod Clusters vorzunehmen, z. B. die Anzahl der Instanzen einer Instanzgruppe zu reduzieren oder ganze Instanzgruppen zu entfernen. Dies kann nützlich sein, wenn Sie die Ihrem Cluster zugewiesenen Ressourcen an Änderungen Ihrer Arbeitslast anpassen, die Kosten optimieren oder den Instance-Typ einer Instance-Gruppe ändern möchten.

Verkleinern Sie eine Instance-Gruppe

Verwenden Sie diesen Ansatz, wenn Sie eine Instance-Gruppe haben, die inaktiv ist und es sicher ist, eine der Instances zu beenden, um sie herunterzuskalieren. Wenn Sie eine UpdateCluster Anfrage zur Herunterskalierung einreichen, werden HyperPod nach dem Zufallsprinzip Instances für die Kündigung ausgewählt und auf die angegebene Anzahl von Knoten für die Instanzgruppe herunterskaliert.

Anmerkung

Wenn Sie die Anzahl der Instances in einer Instance-Gruppe auf 0 herunterskalieren, werden alle Instances innerhalb dieser Gruppe beendet. Die Instanzgruppe selbst wird jedoch weiterhin als Teil des SageMaker HyperPod Clusters existieren. Sie können die Instance-Gruppe zu einem späteren Zeitpunkt mit derselben Instance-Gruppenkonfiguration wieder hochskalieren.

Alternativ können Sie festlegen, dass eine Instance-Gruppe dauerhaft entfernt wird. Weitere Informationen finden Sie unter Instance-Gruppen löschen.

So skalieren Sie mit UpdateCluster
  1. Befolgen Sie die in Die SageMaker HyperPod Cluster-Konfiguration wird aktualisiert beschriebenen Schritte. Wenn Sie Schritt 1.d erreicht haben, in dem Sie das InstanceCountFeld angeben, geben Sie eine Zahl ein, die kleiner ist als die aktuelle Anzahl von Instanzen, um den Cluster zu verkleinern.

  2. Führen Sie den AWS CLI Befehl update-cluster aus, um Ihre Anfrage einzureichen.

Nachfolgend finden Sie ein Beispiel für ein UpdateCluster-JSON-Objekt: Stellen Sie sich den Fall vor, dass Ihre Instance-Gruppe derzeit aus 2 laufenden Instances besteht. Wenn Sie das InstanceCountFeld auf 1 setzen, wie im Beispiel gezeigt, wählen Sie nach dem HyperPod Zufallsprinzip eine der Instances aus und beenden sie.

{ "ClusterName": "name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName": "training-instances", "InstanceType": "instance-type", "InstanceCount": 1, "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py", "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh" }, "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore": number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] } ], "NodeRecovery": "Automatic" }

Instance-Gruppen löschen

Sie können den UpdateClusterVorgang verwenden, um ganze Instanzgruppen aus Ihrem SageMaker HyperPod Cluster zu entfernen, wenn sie nicht mehr benötigt werden. Dies geht über eine einfache Verkleinerung hinaus und ermöglicht es Ihnen, bestimmte Instance-Gruppen vollständig aus der Konfiguration Ihres Clusters zu entfernen.

Anmerkung

Gehen Sie beim Entfernen einer Instance-Gruppe wie folgt vor:

  • Alle Instances innerhalb der Zielgruppe werden beendet.

  • Die gesamte Gruppenkonfiguration wird aus dem Cluster gelöscht.

  • Alle Workloads, die auf dieser Instance-Gruppe ausgeführt werden, werden gestoppt.

So löschen Sie Instance-Gruppen mit UpdateCluster
  1. Wenn Sie die unter Die SageMaker HyperPod Cluster-Konfiguration wird aktualisiert beschriebenen Schritte ausführen:

    1. Legen Sie den optionalen InstanceGroupsToDelete-Parameter in Ihrer UpdateCluster-JSON-Datei fest und übergeben Sie die kommagetrennte Liste der Instance-Gruppennamen, die Sie löschen möchten.

    2. Wenn Sie die InstanceGroups-Liste angeben, stellen Sie sicher, dass die Spezifikationen der Instance-Gruppen, die Sie entfernen, nicht mehr in der InstanceGroups-Liste aufgeführt sind.

  2. Führen Sie den AWS CLI Befehl update-cluster aus, um Ihre Anfrage einzureichen.

Wichtig
  • Ihr SageMaker HyperPod Cluster muss immer mindestens eine Instanzgruppe verwalten.

  • Stellen Sie sicher, dass alle wichtigen Daten gesichert sind, bevor Sie sie entfernen.

  • Die Entfernung kann nicht rückgängig gemacht werden.

Nachfolgend finden Sie ein Beispiel für ein UpdateCluster-JSON-Objekt: Betrachten wir den Fall, dass ein Cluster derzeit über drei Instance-Gruppen verfügt: eine Trainingsgruppe, eine Prototyp-Trainingsgruppe und eine Inferenz-Servicegruppe. Sie möchten die Prototyp-Trainingsgruppe löschen.

{ "ClusterName": "name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName": "training", "InstanceType": "instance-type", "InstanceCount": , "LifeCycleConfig": { "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py", "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh" }, "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore": number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] }, { "InstanceGroupName": "inference-serving", "InstanceType": "instance-type", "InstanceCount": 2, [...] }, ], "InstanceGroupsToDelete": [ "prototype-training" ], "NodeRecovery": "Automatic" }

Herunterskalieren auf Instance-Ebene

Mit BatchDeleteClusterNodes diesem Vorgang können Sie einen SageMaker HyperPod Cluster herunterskalieren, indem Sie die einzelnen Knoten angeben, die Sie beenden möchten. BatchDeleteClusterNodesbietet eine detailliertere Steuerung für die gezielte Entfernung von Knoten und die Clusteroptimierung. Beispielsweise können Sie BatchDeleteClusterNodes verwenden, um bestimmte Knoten für Wartungszwecke, rollierende Upgrades oder die geografische Neuverteilung von Ressourcen zu löschen.

API-Anforderung und -Antwort

Wenn Sie eine BatchDeleteClusterNodes Anfrage einreichen, SageMaker HyperPod werden Knoten nach ihrer Instanz gelöscht. IDs Die API akzeptiert eine Anfrage mit dem Clusternamen und einer Liste der IDs zu löschenden Knoten.

Die Antwort hat zwei Abschnitte:

  • Failed: Eine Liste von Fehlern des Typs  BatchDeleteClusterNodesError – einer pro Instance-ID.

  • Successful: Die Liste der Instanzen IDs wurde erfolgreich beendet.

Validierung und Fehlerbehandlung

Die API führt verschiedene Validierungen durch, wie zum Beispiel:

  • Überprüfung des Knoten-ID-Formats (Präfix von i- und EC2 Amazon-Instance-ID-Struktur).

  • Überprüfung der Länge der Knotenliste mit einem Limit von 99 oder weniger Knoten IDs in einer einzigen BatchDeleteClusterNodes Anfrage.

  • Stellen Sie sicher, dass ein gültiger SageMaker HyperPod Cluster mit dem eingegebenen Clusternamen vorhanden ist und dass keine Operationen auf Clusterebene (Aktualisierung, Systemaktualisierung, Patchen oder Löschen) im Gange sind.

  • Behandlung von Fällen, in denen Instances nicht gefunden wurden, einen ungültigen Status haben oder verwendet werden.

API-Antwortcodes

  • Die API gibt einen 200-Statuscode für erfolgreiche (z. B. alle Eingabeknoten haben die Validierung bestanden) oder teilweise erfolgreiche Anfragen (z. B. einige Eingabeknoten haben die Validierung nicht bestanden) zurück.

  • Wenn alle diese Validierungen fehlschlagen sind (z. B. wenn alle Eingabeknoten die Validierung nicht bestehen), gibt die API eine Antwort 400 Bad Request mit den entsprechenden Fehlermeldungen und Fehlercodes zurück.

Beispiel

Im Folgenden finden Sie ein Beispiel für das Herunterskalieren eines Clusters auf Instance-Ebene unter Verwendung der AWS CLI:

aws sagemaker batch-delete-cluster-nodes --cluster-name "cluster-name" --node-ids '["i-111112222233333", "i-111112222233333"]'