View a markdown version of this page

Recuperação automática de nós com Ray - SageMaker IA da Amazon

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.