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.
Kontinuierliche Bereitstellung für erweiterte Cluster-Operationen auf Amazon EKS
SageMaker HyperPod Amazon-Cluster, die mit Amazon EKS-Orchestration erstellt wurden, unterstützen jetzt Continuous Provisioning, eine neue Funktion, die mehr Flexibilität und Effizienz bei der Ausführung AI/ML umfangreicher Workloads ermöglicht. Durch die kontinuierliche Bereitstellung können Sie schnell mit dem Training beginnen, nahtlos skalieren, Wartungsarbeiten ohne Betriebsunterbrechung durchführen und einen detaillierten Einblick in den Clusterbetrieb erhalten.
Anmerkung
Continuous Provisioning ist als optionale Konfiguration für HyperPod Cluster verfügbar, die mit EKS-Orchestrierung erstellt wurden. Mit Slurm-Orchestrierung erstellte Cluster verwenden ein anderes Skalierungsmodell.
Funktionsweise
Das Continuous Provisioning System führt eine Architektur mit gewünschtem Status ein, die das traditionelle, auf Anfragen basierende Modell ersetzt. Diese neue Architektur ermöglicht parallel, blockierungsfreie Operationen auf verschiedenen Ressourcenebenen unter Beibehaltung der Systemstabilität und -leistung. Das System zur kontinuierlichen Bereitstellung:
-
Akzeptiert die Anfrage: Zeichnet die Anzahl der ZielInstances für jede Instance-Gruppe auf
-
Initiiert die Bereitstellung: Beginnt mit dem Starten von Instances, um die Zielanzahl zu erreichen
Verfolgt den Fortschritt: Überwacht jeden Instance-Startversuch und zeichnet den Status auf
-
Behandelt Fehler: Wiederholt automatisch fehlgeschlagene Starts
Die kontinuierliche Bereitstellung ist standardmäßig deaktiviert. Um diese Funktion zu verwenden, stellen Sie --node-provisioning-mode auf Continuous ein.
Wenn Continuous Provisioning aktiviert ist, können Sie mehrere Skalierungsvorgänge gleichzeitig initiieren, ohne auf den Abschluss früherer Operationen warten zu müssen. Auf diese Weise können Sie verschiedene Instance-Gruppen im selben Cluster gleichzeitig skalieren und mehrere Skalierungsanforderungen an dieselbe Instance-Gruppe senden.
Durch die kontinuierliche Bereitstellung erhalten Sie außerdem Zugriff auf DescribeClusterEventund ListClusterEventfür eine detaillierte Ereignisüberwachung und betriebliche Transparenz.
Nutzungsmessung
HyperPod Cluster mit kontinuierlicher Bereitstellung verwenden Zählerfunktionen auf Instanzebene, um eine genaue Abrechnung zu gewährleisten, die die tatsächliche Ressourcennutzung widerspiegelt. Dieser Zählungsansatz unterscheidet sich von der herkömmlichen Abrechnung auf Clusterebene dadurch, dass jede Instance unabhängig verfolgt wird.
Abrechnung auf Instance-Ebene
Bei kontinuierlicher Bereitstellung beginnt und endet die Abrechnung auf der Ebene der einzelnen Instances, anstatt auf Statusänderungen auf Clusterebene zu warten. Diese Methode bietet folgende Vorteile:
-
Präzise Rechnungsgenauigkeit: Die Abrechnung beginnt, wenn die Ausführung des Lifecycle-Skripts beginnt. Wenn das Lifecycle-Skript fehlschlägt, wird die Instance-Bereitstellung erneut versucht, und Ihnen wird die Dauer der Laufzeit des Lifecycle-Skripts in Rechnung gestellt.
-
Unabhängige Messung: Der Abrechnungszyklus jeder Instance wird separat verwaltet, wodurch kaskadierende Abrechnungsfehler vermieden werden
-
Abrechnungsupdates in Echtzeit: Die Abrechnung beginnt, wenn eine Instance mit der Ausführung ihres Lifecycle-Skripts beginnt, und endet, wenn die Instance in den Endzustand übergeht
Lebenszyklus der Abrechnung
Jede Instanz in Ihrem HyperPod Cluster folgt diesem Abrechnungszyklus:
-
Die Abrechnung beginnt: Wenn die Instance erfolgreich gestartet wurde und mit der Ausführung ihres Lebenszyklus-Konfigurationsskripts beginnt
-
Die Abrechnung wird fortgesetzt: Während der gesamten Betriebsdauer der Instance
-
Die Abrechnung wird beendet: Wenn die Instance unabhängig vom Grund für die Kündigung in den Status „Beenden“ übergeht
Anmerkung
Die Abrechnung für Instances, die nicht gestartet werden können, beginnt nicht. Wenn der Start einer Instance aufgrund unzureichender Kapazität oder anderer Probleme fehlschlägt, wird Ihnen dieser fehlgeschlagene Versuch nicht in Rechnung gestellt. Die Abrechnung wird auf Instance-Ebene berechnet und die Kosten werden zusammengefasst und unter dem Amazon-Ressourcennamen (ARN) Ihres Clusters gemeldet.
Erstellen Sie einen Cluster mit aktivierter kontinuierlicher Bereitstellung
Anmerkung
Sie müssen einen Amazon-EKS-Cluster mit VPC-Netzwerk konfiguriert und das erforderliche Helm-Diagramm installiert haben. Bereiten Sie außerdem ein Lifecycle-Konfigurationsskript vor und laden Sie es in einen Amazon S3 S3-Bucket hoch, auf den Ihre Ausführungsrolle zugreifen kann. Weitere Informationen finden Sie unter Verwaltung von SageMaker HyperPod Clustern, die von Amazon EKS orchestriert werden.
Der folgende AWS CLI Vorgang erstellt einen HyperPod Cluster mit einer Instanzgruppe und aktivierter kontinuierlicher Bereitstellung.
aws sagemaker create-cluster \ --cluster-name $HP_CLUSTER_NAME \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' \ --instance-groups '{ "InstanceGroupName": "ig-1", "InstanceType": "ml.c5.2xlarge", "InstanceCount": 2, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create_noop.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'", "ThreadsPerCore": 1, "TrainingPlanArn": "" }' \ --node-provisioning-mode Continuous // Expected Output: { "ClusterArn": "arn:aws:sagemaker:us-west-2:<account-id>:cluster/<cluster-id>" }
Nachdem Sie Ihren Cluster erstellt haben, können Sie ListClusterNodesoder verwenden, DescribeClusterNodeum weitere Informationen über die Knoten im Cluster zu erhalten.
Beim Aufrufen dieser Operationen wird ein ClusterInstanceStatusDetailsObjekt mit einem der folgenden Werte zurückgegeben:
-
Wird ausgeführt: Der Knoten ist fehlerfrei und beim Cluster-Orchestrator (EKS) registriert.
-
Fehler: Die Bereitstellung des Knotens ist fehlgeschlagen, aber das System versucht automatisch, die Bereitstellung mit einer neuen Instanz zu wiederholen. EC2
-
Ausstehend: Der Knoten wird bereitgestellt oder neu gestartet.
-
ShuttingDown: Die Knotenbeendigung ist im Gange. Der Knoten wechselt entweder in den Status Fehlgeschlagen, wenn bei der Terminierung Probleme auftreten, oder er wird erfolgreich aus dem Cluster entfernt.
-
SystemUpdating: Der Knoten wird gerade einem AMI-Patching unterzogen, das entweder manuell oder im Rahmen von Patching-Cronjobs ausgelöst wird.
-
DeepHealthCheckInProgress: Es werden tiefgreifende Integritätsprüfungen (DHCs) durchgeführt. Dies kann je nach Art der Tests zwischen einigen Minuten und mehreren Stunden dauern. Fehlerhafte Knoten werden ersetzt und gesunde Knoten werden in den Status Running umgeschaltet.
-
NotFound: Wird BatchAddClusterNodesals Reaktion darauf verwendet, dass ein Knoten während der idempotenten Wiedergabe gelöscht wurde.
Mindestkapazitätsanforderungen () MinCount
Mit dieser MinCount Funktion können Sie die Mindestanzahl von Instanzen angeben, die erfolgreich bereitgestellt werden müssen, bevor eine Instanzgruppe in den InService Status übergeht. Diese Funktion bietet eine bessere Kontrolle über Skalierungsvorgänge und trägt dazu bei, Szenarien zu vermeiden, in denen teilweise bereitgestellte Instanzgruppen nicht effektiv für Trainingsworkloads verwendet werden können.
Wichtig
MinCount ist keine dauerhafte Garantie für Mindestkapazität. Es stellt lediglich sicher, dass die angegebene Mindestanzahl von Instanzen verfügbar ist, wenn die Instanzgruppe zum ersten Mal verfügbar istInService. Bei normalem Betrieb, z. B. beim Austausch fehlerhafter Instances oder bei Wartungsarbeiten, MinCount kann es zu kurzen Abweichungen im unteren Bereich kommen.
MinCount Wie funktioniert
Wenn Sie eine Instanzgruppe mit MinCount aktivierter Option erstellen oder aktualisieren, tritt das folgende Verhalten auf:
-
Neue Instanzgruppen: Die Instanzgruppe bleibt so lange im
CreatingStatus, bis mindestens MinCount Instanzen erfolgreich bereitgestellt wurden und bereit sind. Sobald dieser Schwellenwert erreicht ist, wechselt die Instanzgruppe zuInService. -
Bestehende Instanzgruppen: Bei MinCount der Aktualisierung einer vorhandenen Instanzgruppe ändert sich der Status so lange,
Updatingbis die neue MinCount Anforderung erfüllt ist. -
Kontinuierliche Skalierung: Wenn der Wert größer als TargetCount ist MinCount, versucht das System für kontinuierliche Skalierung weiterhin, weitere Instances zu starten, bis dieser TargetCount Wert erreicht ist.
-
Timeout und Rollback: Wenn das Problem MinCount nicht innerhalb von 3 Stunden erfüllt werden kann, setzt das System die Instanzgruppe automatisch auf ihren letzten als funktionierend bekannten Zustand zurück. Weitere Informationen zum Rollback-Verhalten finden Sie unter Automatisches Rollback-Verhalten.
Status der Instanzgruppe während des Betriebs MinCount
Instanzgruppen mit MinCount konfigurierter Konfiguration weisen das folgende Statusverhalten auf:
- Erstellen
-
Für neue Instanzgruppen, wenn CurrentCount < MinCount. Die Instanzgruppe bleibt in diesem Status, bis die Mindestkapazitätsanforderung erfüllt ist.
- Aktualisieren
-
Für bestehende Instanzgruppen MinCount wird wann geändert und CurrentCount < MinCount. Die Instanzgruppe behält diesen Status, bis die neue Mindestkapazitätsanforderung erfüllt ist.
- InService
-
Wenn MinCount ≤ CurrentCount ≤ TargetCount. Die Instanzgruppe ist einsatzbereit und alle Mutationsoperationen sind entsperrt.
Während Creating unseres Updating Status gelten die folgenden Einschränkungen:
-
Mutationsoperationen wie
BatchAddClusterNodesBatchDeleteClusterNodes, oderUpdateClusterSoftwaresind blockiert -
Sie können weiterhin TargetCount Werte ändern MinCount , um Konfigurationsfehler zu korrigieren
-
Das Löschen von Clustern und Instanzgruppen ist immer zulässig
Automatisches Rollback-Verhalten
Wenn eine Instanzgruppe ihr Ziel nicht MinCount innerhalb von 3 Stunden erreichen kann, leitet das System automatisch ein Rollback ein, um unbegrenztes Warten zu verhindern:
-
Neue Instanzgruppen: MinCount und TargetCount werden auf (0, 0) zurückgesetzt
-
Bestehende Instanzgruppen: MinCount und TargetCount werden auf ihre Werte aus dem letzten
InServiceStatus zurückgesetzt -
Instanzauswahl zur Kündigung: Wenn Instanzen während eines Rollbacks beendet werden müssen, wählt das System zuerst die fehlerhaften Instanzen aus und dann diejenigen, die zuletzt bereitgestellt wurden.
-
Statusübergang: Die Instanzgruppe wechselt sofort nach der Initiierung des Rollbacks in
InServiceden Status, sodass das System mit kontinuierlicher Skalierung die Kapazität gemäß den Rollback-Einstellungen verwalten kann
Das 3-Stunden-Timeout wird jedes Mal zurückgesetzt, wenn es aktualisiert wird. MinCount Wenn Sie beispielsweise MinCount mehrmals aktualisieren, beginnt der Timeout-Zeitraum mit dem letzten Update.
MinCount Ereignisse
Das System sendet bestimmte Ereignisse aus, um Ihnen bei der Nachverfolgung von MinCount Vorgängen zu helfen:
-
Mindestkapazität erreicht: Wird ausgegeben, wenn eine Instanzgruppe ihre Kapazität erfolgreich erreicht MinCount und zu dieser übergeht
InService -
Rollback eingeleitet: Wird ausgelöst, wenn das 3-stündige Timeout abläuft und das automatische Rollback beginnt
Sie können diese Ereignisse überwachen, um den Fortschritt ListClusterEventsIhrer Operationen zu verfolgen. MinCount
API-Nutzung
MinCount wird mithilfe des MinInstanceCount Parameters in Instanzgruppenkonfigurationen angegeben:
aws sagemaker create-cluster \ --cluster-name $HP_CLUSTER_NAME \ --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \ --vpc-config '{ "SecurityGroupIds": ["'$SECURITY_GROUP'"], "Subnets": ["'$SUBNET'"] }' \ --instance-groups '{ "InstanceGroupName": "worker-group", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 64, "MinInstanceCount": 50, "LifeCycleConfig": { "SourceS3Uri": "s3://'$BUCKET_NAME'", "OnCreate": "on_create.sh" }, "ExecutionRole": "'$EXECUTION_ROLE'" }' \ --node-provisioning-mode Continuous
Wichtige Überlegungen zur MinCount Verwendung:
-
MinInstanceCountmuss zwischen 0 und demInstanceCount(inklusiven) Wert der in CreateClusterunserer UpdateClusterAnfrage angegebenen Instanzgruppe liegen -
Bei Einstellung
MinInstanceCountauf 0 (Standard) wird das standardmäßige kontinuierliche Skalierungsverhalten beibehalten -
Wenn der
MinInstanceCountWert gleich gesetzt wird,InstanceCountergibt sich ein all-or-nothing Skalierungsverhalten -
MinCount ist nur für Cluster mit der
NodeProvisioningModeEinstellung auf verfügbarContinuous