Nesta página, explicamos o estado de um cluster de treinamento durante o ciclo de vida de um job de treinamento e como o AI Platform Training lida com erros de treinamento. Use essas informações para adaptar o código de treinamento de acordo.
Ciclo de vida de um job de treinamento
Nesta seção, explicamos como o AI Platform Training lida com VMs de worker por meio do ciclo de vida de um job de treinamento.
Iniciar workers em paralelo
Quando um job de treinamento é iniciado, o AI Platform Training agenda o máximo de
workers possível em um curto período. Como resultado, os workers podem ser iniciados em
paralelo em vez de em sequência. Para reduzir a latência de inicialização,
o AI Platform Training começa a executar o código em cada worker assim que ele
fica disponível. Quando todos os workers estiverem disponíveis, o AI Platform Training
definirá o estado do job como RUNNING
.
Na maioria dos casos, seu framework de machine learning gerencia automaticamente os workers começando em paralelo. Se você estiver usando uma estratégia de distribuição no código de treinamento, talvez seja necessário ajustá-la manualmente para processar os workers em paralelo. Saiba mais sobre estratégias de distribuição no TensorFlow e no PyTorch (links em inglês).
Reiniciar workers durante o job de treinamento
Durante um job de treinamento, o AI Platform Training pode reiniciar seus servidores de parâmetros, workers ou mestres com o mesmo nome de host. Este problema pode ocorrer pelos seguintes motivos:
- Manutenção de VM: quando a VM que executa um worker está sujeita a manutenção da VM, o AI Platform Training reinicia o worker em outra VM. Saiba mais sobre migração em tempo real para manutenção de VM.
Saídas diferentes de zero: se qualquer worker sair com um código de saída diferente de zero, o AI Platform Training reiniciará esse worker imediatamente na mesma VM.
- Se um worker falhar devido a um erro comum, ele será tratado como um erro permanente, e o AI Platform Training encerrará o job inteiro. Se qualquer contêiner for reiniciado antes que o AI Platform Training encerre o job inteiro, eles podem gerar registros no Cloud Logging.
- Se um worker falhar devido a um erro não permanente (qualquer erro não listado nos erros comuns), o AI Platform Training permitirá que o worker recriado seja em execução, com até cinco reinicializações por worker. Após cinco reinicializações, se um worker falhar novamente, o AI Platform Training repetirá o job todo até três vezes antes da falha.
Para gerenciar reinicializações do worker no código de treinamento, salve os checkpoints regularmente durante o treinamento para que você possa restaurá-los quando um worker for reiniciado. Se você espera que o treinamento leve mais de quatro horas, recomendamos salvar um checkpoint pelo menos uma vez a cada quatro horas. Saiba como usar checkpoints de treinamento no TensorFlow e no PyTorch (links em inglês).
Concluir um job com sucesso
Um job de treinamento é concluído com sucesso quando a réplica principal sai com o código de saída 0. Nesse ponto, o AI Platform Training encerra todos os outros workers em execução.
Como o AI Platform Training lida com erros do job de treinamento
Nesta seção, explicamos como o AI Platform Training processa erros comuns de job de treinamento e erros internos.
Cerca de um minuto após o término de um job, o AI Platform Training define o código de erro no objeto de job de treinamento, com base no código de saída.
Lidar com erros comuns
O AI Platform Training encerra todos os workers caso encontre algum dos seguintes problemas:
Tipo de erro | Mensagem/registro de erro | Observação |
Exceção de código do usuário | A réplica REPLICA_NAME saiu com status diferente de zero de EXIT_CODE. Motivo da rescisão: REASON. | Se o job encontrou códigos de saída que podem ser temporários,
o AI Platform Training tentará reiniciar o job até três vezes.
Os códigos de erro possivelmente temporários que solicitam o AI Platform Training para
tentar novamente o job incluem o seguinte:
|
Memória insuficiente | A réplica REPLICA_NAME ficou sem memória e saiu com um status diferente de zero de EXIT_CODE. |
O GKE reserva a memória nos nós do AI Platform Training. Nos
menores tipos de máquina (como n1-standard-4 ),
os agentes do sistema do AI Platform Training podem ocupar até 40% da memória total.
Para VMs maiores, a sobrecarga é relativamente pequena. Comparar
a memória alocável para os tipos de máquina n1-standard .
|
Capacidade insuficiente na sua região (esgotado do Compute Engine) | Há recursos insuficientes na região: REGION_NAME. Testar em uma região diferente ou usar um acelerador diferente. | Uma retirada ocorre quando o Compute Engine atinge a capacidade da CPU ou GPU selecionada na região. Não tem relação com sua cota de projeto. Quando isso acontece, o AI Platform Training tenta reiniciar o job até três vezes. |
Lidar com erros internos
Se o AI Platform Training tiver um erro interno, ele tentará reiniciar um job
duas vezes (três tentativas no total). Se as tentativas de reinicialização também falharem,
o AI Platform Training retornará um erro interno com a mensagem:
Internal error occurred for the current attempt
.