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.
Automatische Node-Wiederherstellung mit Ray
HyperPod erkennt Hardware- und GPU-Fehler auf einem Knoten und stellt diesen Knoten ohne Eingreifen des Bedieners wieder her. Dies läuft auf der Infrastrukturebene. Ray benötigt dafür keine Konfiguration und Ihr Trainingscode ändert sich nicht.
Einrichtung
Im HyperPod Cluster NodeRecovery Automatic auf eingestellt. Sie wenden dies an, wenn Sie den Cluster erstellen oder aktualisieren, nicht von Ray aus. Weitere Informationen finden Sie NodeRecovery in der SageMaker AI-API-Referenz.
Nachdem die Knotenwiederherstellung für den Cluster aktiviert ist, gilt sie für jeden Ray-Workload, der darauf ausgeführt wird.
Wie funktioniert das mit Ray
HyperPod stellt einen fehlerhaften Knoten wieder her, indem er neu gestartet oder ausgetauscht wird. Ray behandelt den Knoten, der ihn verlässt und wieder beitritt, als normalen Arbeitsverlust. Der Leiter erkennt die verlorenen Mitarbeiter und plant die betroffenen Aufgaben und Akteure neu ein. Das Training wird fortgesetzt, sobald wiederhergestellte Knoten wieder dem Cluster beitreten.
Einzelheiten zur Knotenwiederherstellung auf einem mit Amazon EKS orchestrierten Cluster finden Sie unter Cluster-Resilienzfunktionen für mit Amazon EKS orchestrierte SageMaker HyperPod Cluster.
Konfigurieren Sie Wiederholungen in Ray Train
Node Recovery stellt den Knoten wieder her, aber Ihr Trainingslauf muss angewiesen werden, es erneut zu versuchen. Ray Train versucht erneut, einen Lauf durchzuführen, wenn ein Worker ausfällt, bis max_failures ein Worker-Modus aktiviert ist. FailureConfig Der Standardwert ist 0, sodass ein einzelner Knotenfehler den Lauf beendet, obwohl der Knoten HyperPod wiederhergestellt wurde.
Seien Sie großzügig bei Wiederholungsversuchen. Hardwarefehler sind auf Clusterebene routinemäßig, und ein Wiederholungsversuch wird an Ihrem letzten Checkpoint fortgesetzt, anstatt von vorne zu beginnen. Im folgenden Beispiel wird 20 verwendet, ein bewusst hoher Wert.
from ray.train import FailureConfig, RunConfig, ScalingConfig from ray.train.torch import TorchTrainer trainer = TorchTrainer( train_loop_per_worker=train_func, scaling_config=ScalingConfig(num_workers=8, use_gpu=True), run_config=RunConfig( failure_config=FailureConfig(max_failures=20), ), ) trainer.fit()
Legen Sie festmax_failures=-1, dass der Vorgang auf unbestimmte Zeit wiederholt werden soll. Wiederholungen zahlen sich nur aus, wenn sie Checkpoints ausführen. Kombinieren Sie dies also mit Checkpointing. Weitere Informationen finden Sie unter Mehrstufiges Checkpointing.