View a markdown version of this page

Restauration automatique des nœuds avec Ray - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Restauration automatique des nœuds avec Ray

HyperPod détecte les défaillances matérielles et GPU sur un nœud et restaure ce nœud sans intervention de l'opérateur. Cela s'exécute au niveau de la couche d'infrastructure. Ray n'a besoin d'aucune configuration pour cela et votre code d'entraînement ne change pas.

Configuration

NodeRecoveryRéglez Automatic sur le HyperPod cluster. Vous l'appliquez lorsque vous créez ou mettez à jour le cluster, et non depuis Ray. Pour plus d'informations, consultez NodeRecovery la référence de l'API SageMaker AI.

Une fois que la restauration des nœuds est activée pour le cluster, elle s'applique à chaque charge de travail Ray qui s'exécute sur celui-ci.

Comment ça marche avec Ray

HyperPod restaure un nœud défectueux en le redémarrant ou en le remplaçant. Ray considère le départ et le retour du nœud comme une perte de travailleur ordinaire. Le responsable détecte les travailleurs perdus et reprogramme les tâches et les acteurs concernés. La formation se poursuit au fur et à mesure que les nœuds récupérés rejoignent le cluster.

Pour plus d'informations sur la restauration de nœuds sur un cluster orchestré avec Amazon EKS, consultez la section Fonctionnalités de résilience des clusters pour les SageMaker HyperPod clusters orchestrés avec Amazon EKS.

Configurer les nouvelles tentatives dans Ray Train

La restauration du nœud restaure le nœud, mais vous devez demander à votre entraînement de réessayer. Ray Train recommence à courir lorsqu'un travailleur échoue, jusqu'max_failuresà FailureConfig 1. La valeur par défaut est 0, donc une défaillance d'un seul nœud met fin à l'exécution même si le nœud HyperPod a été restauré.

Soyez libéral avec les nouvelles tentatives. Les pannes matérielles sont courantes à l'échelle du cluster, et une nouvelle tentative reprend à partir de votre dernier point de contrôle au lieu de recommencer à zéro. L'exemple suivant utilise 20, une valeur délibérément élevée.

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()

Configurez max_failures=-1 pour réessayer indéfiniment. Les nouvelles tentatives ne sont payantes que si les points de contrôle sont exécutés, alors associez-les à des points de contrôle. Pour de plus amples informations, veuillez consulter Point de contrôle à plusieurs niveaux.