En esta página, se explica el estado de un clúster de entrenamiento durante el ciclo de vida de un trabajo de entrenamiento y cómo Agent Platform soluciona los errores de entrenamiento. Puedes usar esta información para adaptar tu código de entrenamiento según corresponda.
Ciclo de vida de un trabajo de entrenamiento
En esta sección, se explica cómo Agent Platform maneja las VM de trabajador durante el ciclo de vida de un trabajo de entrenamiento.
Pon en cola un trabajo nuevo
Cuando creas un CustomJob o HyperparameterTuningJob, puede que el trabajo permanezca
en el estado JOB_STATE_QUEUED durante un tiempo antes de
que Agent Platform lo ejecute. Este período suele ser corto, pero si tu
Google Cloud proyecto no tiene suficientes cuotas de entrenamiento personalizadas
restantes para tu trabajo, Agent Platform
mantiene el trabajo en la cola hasta que tengas suficientes cuotas.
Inicia trabajadores en paralelo
Cuando se inicia un trabajo de entrenamiento, Agent Platform programa tantos trabajadores como sea posible en un período corto. Como resultado, los trabajadores pueden iniciarse en paralelo en lugar de secuencialmente. Para reducir la latencia de inicio, Agent Platform comenzará a ejecutar el código en cada trabajador en cuanto esté disponible. Cuando todos los trabajadores están disponibles, Agent Platform establece el estado del trabajo en JOB_STATE_RUNNING.
En la mayoría de los casos, tu framework de aprendizaje automático maneja de forma automática los trabajadores que comienzan en paralelo. Si usas una estrategia de distribución en tu código de entrenamiento, es posible que debas ajustarla de forma manual para controlar los trabajadores que se inician en paralelo. Obtén más información sobre las estrategias de distribución en TensorFlow y en PyTorch.
Reinicia los trabajadores durante el trabajo de entrenamiento
Durante un trabajo de entrenamiento, Agent Platform puede reiniciar a tus trabajadores desde cualquier grupo de ellos con el mismo nombre de host. Esto puede suceder por los siguientes motivos:
- Mantenimiento de VM: Cuando la VM que ejecuta un trabajador está sujeta al mantenimiento de VM, Agent Platform reinicia el trabajador en otra VM. Obtén más información sobre la migración en vivo para el mantenimiento de VM.
Salidas que no son cero: Si un trabajador sale con un código de salida que no es cero, Agent Platform reinicia ese trabajador de inmediato en la misma VM.
- Si un trabajador falla debido a un error común, se lo trata como un error permanente y Agent Platform cierra todo el trabajo. Si algún contenedor se reinicia antes de que Agent Platform cierre todo el trabajo, estos contenedores pueden producir registros en Cloud Logging.
- Si un trabajador falla debido a un error no permanente (cualquier error que no aparezca en la lista de los errores comunes), Agent Platform permite que el trabajador reiniciado continúe ejecutándose, con hasta cinco reinicios por trabajador. Después de cinco reinicios, si un trabajador falla nuevamente, Agent Platform vuelve a intentar todo el trabajo hasta tres veces antes de que falle todo el trabajo.
Para manejar los reinicios de trabajadores en tu código de entrenamiento, guarda los puntos de control con frecuencia durante el entrenamiento para que puedas restaurar a partir de estos cuando se reinicie un trabajador. Si esperas que el entrenamiento tome más de cuatro horas, te recomendamos que guardes un punto de control al menos una vez cada cuatro horas. Obtén información sobre cómo usar los puntos de control del entrenamiento en TensorFlow y en PyTorch.
Completa un trabajo de forma correcta
Un trabajo de entrenamiento se completa con éxito cuando su réplica principal se genera con el código de salida 0. En ese momento, Agent Platform cierra todos los demás trabajadores en ejecución.
Cómo Agent Platform controla los errores de los trabajos de entrenamiento
En esta sección, se explica cómo Agent Platform soluciona los errores comunes del trabajo de entrenamiento y los errores internos.
Alrededor de un minuto después de que un trabajo finalice, Agent Platform configura el código de error en el objeto del trabajo de entrenamiento según el código de salida.
Controla errores comunes
Agent Platform cierra todos los trabajadores si se encuentra con alguno de los siguientes problemas:
| Tipo de error | Mensaje de error/registro con errores | Nota |
| Excepción del código de usuario | La réplica REPLICA_NAME salió con un estado que no es cero de EXIT_CODE. Motivo del término: REASON. | Si el trabajo encontró códigos de salida que pueden ser transitorios,
Agent Platform intentará reiniciar el trabajo hasta tres veces.
Los códigos de error potencialmente transitorios que hacen que Agent Platform vuelva a intentar el trabajo incluyen los siguientes:
|
| No hay memoria suficiente | La réplica REPLICA_NAME se quedó sin memoria y salió con un estado que no es cero de EXIT_CODE. |
GKE reserva memoria en los nodos de Agent Platform. En
los tipos de máquina más pequeños (como n1-standard-4),
los agentes del sistema de Agent Platform pueden usar hasta un 40% de la memoria total.
En VM más grandes, la sobrecarga es relativamente pequeña. Compara la memoria asignable para los tipos de máquina n1-standard.
|
| Capacidad insuficiente en tu región (agotamiento de Compute Engine) | Los recursos no son suficientes en la región: REGION_NAME. Prueba con una región diferente o usa un acelerador diferente. | Un agotamiento ocurre cuando Compute Engine alcanza la capacidad de CPU o GPU seleccionada en tu región. No está relacionado con la cuota de tu proyecto.
Cuando esto sucede, Agent Platform intenta reiniciar el trabajo hasta
tres veces.
En el caso de los trabajos que se ejecutan en VMs A2 y A3, el programador de cargas de trabajo dinámico te permite programar trabajos que se ejecutan cuando los recursos de GPU solicitados están disponibles, en lugar de fallar con un error de agotamiento. Para obtener más información, consulta Programa trabajos de entrenamiento según la disponibilidad de recursos. |
Soluciona errores internos
Si Agent Platform tiene un error interno, intenta reiniciar un trabajo dos veces (tres intentos en total). Si los intentos de reinicio también fallan, Agent Platform muestra un error interno con el siguiente mensaje: Internal error occurred for the current attempt.