Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Ripristino automatico dei nodi con Ray
HyperPod rileva i guasti hardware e della GPU su un nodo e lo ripristina senza l'intervento dell'operatore. Questo viene eseguito a livello di infrastruttura. Ray non richiede alcuna configurazione e il codice di allenamento non cambia.
Configurazione
NodeRecoveryImpostato Automatic su nel HyperPod cluster. Lo si applica quando si crea o si aggiorna il cluster, non da Ray. Per ulteriori informazioni, consulta NodeRecovery l'SageMaker AI API Reference.
Una volta attivato il ripristino del nodo per il cluster, si applica a tutti i carichi di lavoro Ray in esecuzione su di esso.
Come funziona con Ray
HyperPod recupera un nodo difettoso riavviandolo o sostituendolo. Ray considera l'uscita e il ricongiungimento del nodo come una normale perdita di lavoratori. Il responsabile rileva i lavoratori smarriti e riprogramma le attività e gli attori interessati. La formazione continua man mano che i nodi ripristinati si ricongiungono al cluster.
Per informazioni dettagliate sul ripristino dei nodi su un cluster orchestrato con Amazon EKS, consulta le caratteristiche di resilienza dei cluster per i SageMaker HyperPod cluster orchestrati con Amazon EKS.
Configura i tentativi in Ray Train
Il ripristino del nodo ripristina il nodo, ma è necessario indicare all'utente di riprovare. Ray Train riprova una corsa quando un lavoratore fallisce, fino a una. max_failures FailureConfig L'impostazione predefinita è 0, quindi un errore di un singolo nodo interrompe l'esecuzione anche se il nodo è HyperPod stato ripristinato.
Sii liberale con i tentativi. I guasti hardware sono di routine su scala cluster e un nuovo tentativo viene ripristinato dall'ultimo checkpoint anziché ricominciare da capo. L'esempio seguente utilizza 20, un valore volutamente elevato.
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()
Impostato max_failures=-1 per riprovare a tempo indeterminato. I tentativi ripagano solo se vengono eseguiti dei checkpoint, quindi abbinalo ai checkpoint. Per ulteriori informazioni, consulta Checkpoint a più livelli.