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 e retomada automática
nota
A partir de 11 de setembro de 2025, HyperPod com o Slurm, a orquestração agora suporta agentes de monitoramento de saúde. Execute UpdateClusterSoftwaree atualize para a versão mais recente da AMI para usar essa funcionalidade.
Esta seção fala sobre os dois recursos de resiliência complementares SageMaker HyperPod da Amazon: recuperação automática de nós, que substitui a infraestrutura defeituosa sem intervenção manual, e a funcionalidade de retomada automática, que reinicia as tarefas de treinamento a partir do último ponto de verificação após falhas de hardware.
Como funciona a recuperação automática de nós
Durante a criação ou atualização do cluster, os usuários administradores do cluster podem selecionar a opção de recuperação do nó (instância) entre Automatic (Recomendado) e None no nível do cluster. Se definido comoAutomatic, SageMaker HyperPod reinicializa ou substitui automaticamente os nós defeituosos.
Importante
Recomendamos definir a opção Automatic. Por padrão, os clusters são configurados com a recuperação automática de nós.
A recuperação automática de nós é executada quando problemas são encontrados no agente de monitoramento de integridade, nas verificações básicas de integridade e nas verificações profundas de integridade. Se definido como None, o agente de monitoramento de integridade rotulará as instâncias quando uma falha for detectada, mas não iniciará automaticamente nenhuma ação de reparo ou recuperação nos nós afetados. Não recomendamos essa opção.
Executando um trabalho de treinamento com a funcionalidade de SageMaker HyperPod retomada automática da Amazon
Esta seção descreve como executar um trabalho de treinamento com a funcionalidade de SageMaker HyperPod retomada automática, que fornece uma infraestrutura de resiliência sem toque para recuperar automaticamente um trabalho de treinamento do último ponto de verificação salvo no caso de uma falha de hardware.
Com a funcionalidade de retomada automática, se um trabalho falhar devido a uma falha de hardware ou a qualquer problema transitório entre o treinamento, o SageMaker HyperPod reinício automático inicia o fluxo de trabalho de substituição do nó e reinicia o trabalho após a substituição dos nós defeituosos. As seguintes verificações de hardware são executadas sempre que um trabalho falha ao usar a retomada automática:
| Categoria | Nome do utilitário | Compatibilidade de tipo de instância | Description |
|---|---|---|---|
| Acelerador | NVIDIA SMI | GPU | O utilitário nvidia-smi é uma CLInvidia-smi para determinar a integridade da instância. |
| Acelerador | Sistemas de neurônios | Trainium | Para instâncias alimentadas por Trainium, a integridade dos dispositivos Neuron é determinada pela leitura de contadores do Neuron sysfs |
| Rede | EFA | GPU e Trainium | Para auxiliar no diagnóstico dos dispositivos Elastic Fabric Adaptor (EFA), o verificador de integridade do EFA executa uma série de testes de conectividade usando todas as placas EFA disponíveis na instância. |
nota
Quando recursos genéricos (GRES)
Usando a funcionalidade de SageMaker HyperPod retomada automática com o Slurm
Ao usar a SageMaker HyperPod retomada automática com o Slurm, você deve executar o trabalho dentro de uma alocação exclusiva adquirida usando ou. salloc sbatch De qualquer forma, você precisa modificar o script do ponto de entrada para garantir que todas as etapas de configuração sejam executadas em um único comando srun ao retomar o trabalho. Por meio do script de ponto de entrada, é importante configurar o ambiente no nó substituído para ser consistente com o ambiente em que a etapa do trabalho estava executando antes de ser interrompida. O procedimento a seguir mostra como preparar um script de ponto de entrada para manter o ambiente consistente e executá-lo como um único srun comando.
dica
Se você usar sbatch, poderá manter o script em lote simples criando um script separado para configurar o ambiente e usando um único comando srun.
-
Crie um script usando o exemplo de código a seguir e salve-o como
train_auto_resume.sh. Esse script implanta configurações do ambiente de treinamento, supondo que não haja nenhuma configuração manual feita anteriormente no nó substituído. Isso garante que o ambiente seja independente de nós, de modo que, quando um nó for substituído, o mesmo ambiente seja provisionado no nó antes de retomar o trabalho.nota
O exemplo de código a seguir mostra como descobrir a lista de nós do Slurm associada ao trabalho. Não use a variável de
$SLURM_JOB_NODELISTambiente fornecida pelo Slurm, pois seu valor pode ficar desatualizado após a SageMaker HyperPod retomada automática do trabalho. O exemplo de código a seguir mostra como definir uma nova variávelNODE_LISTpara substituirSLURM_JOB_NODELIST, em seguida, configurar as variáveisMASTER_NODEeMASTER_ADDRe fora da variávelNODE_LIST.#!/bin/bash # Filename: train_auto_resume.sh # Sample containerized script to launch a training job with a single srun which can be auto-resumed. # Place your training environment setup here. # Example: Install conda, docker, activate virtual env, etc. # Get the list of nodes for a given job NODE_LIST=$(scontrol show jobid=$SLURM_JOBID | \ # Show details of the SLURM job awk -F= '/NodeList=/{print $2}' | \ # Extract NodeList field grep -v Exc) # Exclude nodes marked as excluded # Determine the master node from the node list MASTER_NODE=$(scontrol show hostname $NODE_LIST | \ # Convert node list to hostnames head -n 1) # Select the first hostname as master node # Get the master node address MASTER_ADDR=$(scontrol show node=$MASTER_NODE | \ # Show node information awk -F= '/NodeAddr=/{print $2}' | \ # Extract NodeAddr awk '{print $1}') # Print the first part of NodeAddr # Torchrun command to launch the training job torchrun_cmd="torchrun --nnodes=$SLURM_NNODES \ --nproc_per_node=1 \ --node_rank=$SLURM_NODE \ --master-addr=$MASTER_ADDR \ --master_port=1234\<your_training_script.py>" # Execute the torchrun command in the 'pytorch' Conda environment, # streaming output live /opt/conda/bin/conda run --live-stream -n pytorch $torchrun_cmddica
Você pode usar o script anterior para adicionar mais comandos para instalar quaisquer dependências adicionais para seu trabalho. No entanto, recomendamos que você mantenha os scripts de instalação de dependências no conjunto de scripts de ciclo de vida que são usados durante a criação do cluster. Se você usa um ambiente virtual hospedado em um diretório compartilhado, também pode utilizar esse script para ativar o ambiente virtual.
-
Inicie o trabalho com a SageMaker HyperPod retomada automática ativada adicionando o sinalizador
--auto-resume=1para indicar que osruncomando deve ser repetido automaticamente em caso de falha de hardware.nota
Se você configurou uma alocação de recursos usando
sbatchousalloc, você pode executar vários comandossrundentro da alocação. No caso de uma falha, a funcionalidade de SageMaker HyperPod retomada automática opera somente na etapa de trabalhoatual do sruncomando com o sinalizador--auto-resume=1. Em outras palavras, ativar a retomada automática em um comandosrunnão se aplica a outros comandossruniniciados em uma sessão de alocação de recursos.A seguir, exemplos de comando
sruncomauto-resumehabilitado.Usando sbatch
Como a maior parte da lógica de configuração do ambiente já está estabelecida em
train_auto_resume.sh, o script em lote deve ser simples e semelhante ao exemplo de código a seguir. Suponha que o script em lote a seguir seja salvo comobatch.sh.#!/bin/bash #SBATCH --nodes 2 #SBATCH --exclusive srun --auto-resume=1train_auto_resume.shExecute o script em lote anterior usando o seguinte comando:
sbatchbatch.shUsando salloc
Comece adquirindo uma alocação exclusiva e execute o comando
sruncom a sinalização--auto-resumee o sinalizador e o script do ponto de entrada.salloc -N 2 --exclusive srun --auto-resume=1train_auto_resume.sh
Como a recuperação automática de nós e a retomada automática funcionam juntas
Quando os sistemas de recuperação automática de nós e de retomada automática estão ativos, eles seguem uma abordagem coordenada para lidar com falhas. Se o HMA detectar uma falha de hardware, o nó será marcado para drenagem, independentemente do status do nível do trabalho. Com a recuperação automática de nós ativada, os nós são substituídos automaticamente quando todas as tarefas em execução nos nós são encerradas. Nesse cenário, para trabalhos com a retomada automática ativada, se houver um status de saída diferente de zero na etapa, a retomada automática entra em ação (os trabalhos são retomados quando os nós são substituídos). Os trabalhos sem a retomada automática simplesmente serão encerrados, exigindo o reenvio manual por administradores ou usuários.
nota
Se você usar a retomada automática, os nós sempre serão substituídos (sem reinicializações) quando forem detectadas falhas de hardware.