Supervisa trabajos de entrenamiento

Según el tamaño de tu conjunto de datos y la complejidad de tu modelo, el entrenamiento puede tardar mucho tiempo. El entrenamiento a partir de datos del mundo real puede durar varias horas. Puedes supervisar varios aspectos de tu trabajo mientras se ejecuta.

Verifica el estado del trabajo

Para el estado general, la forma más fácil de verificar tu trabajo es en la página Trabajos de AI Platform Training en la consola de Google Cloud. Puedes obtener los mismos detalles de manera programática y con Google Cloud CLI.

Console

  1. Abre la página Trabajos de AI Platform Training en la consola de Google Cloud.

    Abrir Trabajos en la consola de Google Cloud

  2. Haz clic en el nombre de tu trabajo en la lista para abrir la página Detalles del trabajo.

  3. Busca el estado de tu trabajo en la parte superior del informe. En el ícono y el texto, se describe el estado actual del trabajo.

    Información del estado del trabajo en la parte superior de la página Job details (Detalles del trabajo).

Filtra trabajos

En la página Trabajos, puedes filtrar los trabajos por varios parámetros diferentes, incluidos Tipo, ID de trabajo, Estado y hora de creación del trabajo.

  1. Haz clic en el el campo Filtrar por prefijo , que se encuentra sobre tu lista de trabajos. Selecciona el prefijo que quieres usar para filtrar. Por ejemplo, selecciona Tipo.
  2. Para completar el filtro, haz clic en el sufijo de filtro que deseas usar. Por ejemplo, las opciones de sufijo para el prefijo Tipo son las siguientes:

    • Entrenamiento de código personalizado
    • Entrenamiento de algoritmos integrados
    • Predicción
  3. El filtro se aplica a tu lista Trabajos, y el nombre del filtro se muestra en el campo de filtro. Por ejemplo, si seleccionaste Entrenamiento de código personalizado, el filtro Tipo: entrenamiento de código personalizado se mostrará en la parte superior y se filtrará tu lista de trabajos. Puedes agregar varios filtros, si es necesario.

Ve pruebas de hiperparámetros

En la página Detalles del trabajo, puedes ver las métricas de cada prueba en la tabla Pruebas de HyperTune. Esta tabla aparece solo para los trabajos que usan ajuste de hiperparámetro. Puedes activar o desactivar las métricas para mostrar las pruebas por rmse, Training steps y learning_rate más alto o más bajo.

Para ver los registros de una prueba específica, haz clic en more_vert el ícono y, a continuación, en Ver registros.

gcloud

Usa gcloud ai-platform jobs describe para obtener detalles sobre el estado actual del trabajo en la línea de comandos de la manera siguiente:

gcloud ai-platform jobs describe job_name

Puedes obtener una lista de trabajos asociados a tu proyecto que incluya el estado del trabajo y la hora de creación con gcloud ai-platform jobs list. Ten en cuenta que con este comando en su forma más sencilla se enumeran todos los trabajos creados para tu proyecto. Debes definir el alcance de tu solicitud para limitar la cantidad de trabajos informados. Con los ejemplos siguientes, obtendrás ayuda para comenzar:

Usa el argumento --limit para restringir la cantidad de trabajos. En este ejemplo, se enumeran los 5 trabajos más recientes:

gcloud ai-platform jobs list --limit=5

Usa el argumento --filter si quieres restringir la lista de trabajos a aquellos con un valor de atributo determinado. Puedes filtrar uno o más atributos del objeto Job. Además de los atributos principales del trabajo, puedes filtrar objetos en el trabajo, como el objeto TrainingInput.

Ejemplos de cómo filtrar la lista:

  • Enumera todos los trabajos que se iniciaron después de una hora determinada. En este ejemplo, se usan las 7:00 p.m. del 15 de enero de 2017:

    gcloud ai-platform jobs list --filter='createTime>2017-01-15T19:00'
    
  • Enumera los tres trabajos más recientes con nombres que comiencen con una string determinada. Por ejemplo, la string puede representar el nombre que usas para todos los trabajos de entrenamiento de un modelo en particular. En este ejemplo, se usa un modelo en el que el identificador de trabajos es “census” con un sufijo que es un índice incrementado para cada trabajo:

    gcloud ai-platform jobs list --filter='jobId:census*' --limit=3
    
  • Enumera todos los trabajos con errores y con nombres que comienzan con “rnn”:

    gcloud ai-platform jobs list --filter='jobId:rnn* AND state:FAILED'
    

Si quieres obtener detalles de las expresiones admitidas mediante la opción de filtro, consulta la documentación del comando gcloud.

Python

  1. Arma tu string de identificador de trabajo y, para eso, combina el nombre de tu proyecto y el nombre del trabajo en este formato: 'projects/your_project_name/jobs/your_job_name':

    projectName = 'your_project_name'
    projectId = 'projects/{}'.format(projectName)
    jobName = 'your_job_name'
    jobId = '{}/jobs/{}'.format(projectId, jobName)
    
  2. Crea la solicitud a projects.jobs.get:

    request = ml.projects().jobs().get(name=jobId)
    
  3. Ejecuta la solicitud (este ejemplo coloca la llamada execute en un bloque try para detectar excepciones):

    response = None
    
    try:
        response = request.execute()
    except errors.HttpError, err:
        # Something went wrong. Handle the exception in an appropriate
        #  way for your application.
    
  4. Verifica la respuesta para asegurarte de que la llamada de servicio muestre los datos, sin tener en cuenta los errores HTTP.

    if response == None:
        # Treat this condition as an error as best suits your
        # application.
    
  5. Obtén datos de estado. El objeto de respuesta es un diccionario que contiene todos los miembros aplicables del recurso Job, incluido el recurso TrainingInput completo y los miembros aplicables del recurso TrainingOutput. En el ejemplo siguiente, se muestra el estado del trabajo y la cantidad de unidades del AA que consume el trabajo.

    print('Job status for {}.{}:'.format(projectName, jobName))
    print('    state : {}'.format(response['state']))
    print('    consumedMLUnits : {}'.format(
        response['trainingOutput']['consumedMLUnits']))
    

Puede haber errores en los trabajos si hay un problema con la aplicación de entrenamiento o con la infraestructura de AI Platform Training. Puedes usar Cloud Logging para iniciar la depuración.

También puedes usar una shell interactiva para inspeccionar los contenedores de entrenamiento mientras se ejecuta el trabajo de entrenamiento.

Supervisa el consumo de recursos

Puedes encontrar los siguientes gráficos de uso de recursos para tus trabajos de entrenamiento en la página Detalles del trabajo:

  • El uso agregado de CPU o GPU del trabajo y el uso de memoria. Estos se desglosan por principal, trabajador y servidor de parámetros.
  • El uso de red del trabajo, medido en bytes por segundo. Hay gráficos separados para los bytes enviados y recibidos.
  1. Ve a la página Trabajos de AI Platform Training en la consola de Google Cloud.

    Ir a la página Trabajos de AI Platform Training

  2. Busca tu trabajo en la lista.

  3. Haz clic en el nombre de tu trabajo en la lista para abrir la página Detalles del trabajo.

  4. Selecciona las pestañas etiquetadas CPU, GPU o Red si quieres ver los gráficos de uso de recursos asociados.

También puedes acceder a la información sobre los recursos en línea que usan tus trabajos de entrenamiento con Cloud Monitoring. AI Platform Training exporta metrics a Cloud Monitoring.

Cada tipo de métrica de AI Platform Training incluye “training” en su nombre. Por ejemplo, ml.googleapis.com/training/cpu/utilization o ml.googleapis.com/training/accelerator/memory/utilization.

Supervisa con TensorBoard

Puedes configurar tu aplicación de entrenamiento para guardar los datos de resumen que puedes examinar y visualizar con TensorBoard.

Guarda los datos de resumen en una ubicación de Cloud Storage y orienta TensorBoard a esa ubicación para examinar los datos. También puedes orientar TensorBoard a un directorio con subdirectorios que contengan la salida de varios trabajos.

Para obtener más información sobre TensorBoard y AI Platform Training, consulta la guía de introducción.

¿Qué sigue?