As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Recuperação automática de nós com Ray
HyperPod detecta falhas de hardware e GPU em um nó e recupera esse nó sem a ação do operador. Isso é executado na camada de infraestrutura. Ray não precisa de configuração para isso e seu código de treinamento não muda.
Configuração
NodeRecoveryDefinido Automatic como no HyperPod cluster. Você aplica isso ao criar ou atualizar o cluster, não a partir do Ray. Para obter mais informações, consulte NodeRecovery na Referência da API SageMaker AI.
Depois que a recuperação do nó é ativada para o cluster, ela se aplica a todas as cargas de trabalho do Ray executadas nele.
Como funciona com Ray
HyperPod recupera um nó defeituoso reinicializando-o ou substituindo-o. Ray trata a saída e o retorno do nódulo como uma perda normal de um trabalhador. O chefe detecta os trabalhadores perdidos e reprograma as tarefas e os atores afetados. O treinamento continua à medida que os nós recuperados se juntam ao cluster.
Para obter detalhes sobre a recuperação de nós em um cluster orquestrado com o Amazon EKS, consulte Recursos de resiliência de SageMaker HyperPod cluster para clusters orquestrados com o Amazon EKS.
Configurar novas tentativas no Ray Train
A recuperação do nó restaura o nó, mas sua execução de treinamento deve ser instruída a tentar novamente. Ray Train tenta novamente uma corrida quando um trabalhador falha, até max_failures um. FailureConfig O padrão é 0, portanto, uma falha em um único nó encerra a execução mesmo que o nó tenha sido HyperPod recuperado.
Seja liberal com novas tentativas. As falhas de hardware são rotineiras em escala de cluster, e uma nova tentativa é retomada a partir do ponto de verificação mais recente, em vez de recomeçar. O exemplo a seguir usa 20, um valor deliberadamente alto.
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()
Definido max_failures=-1 para tentar novamente indefinidamente. As novas tentativas só compensam se os pontos de verificação forem executados, então combine isso com o checkpoint. Para obter mais informações, consulte Ponto de verificação hierárquico.