Entrenamiento personalizado de Hello: Entrena un modelo de clasificación de imágenes personalizado

En esta página, se muestra cómo ejecutar una aplicación de entrenamiento de TensorFlow Keras en AI Vertex. Este modelo en particular entrena un modelo de clasificación de imágenes que puede clasificar flores por tipo.

Este documento es parte del instructivo “entrenamiento personalizado de Hello”, que te guía a través del uso de Vertex AI para entrenar un modelo de clasificación de imágenes y entregar predicciones mediante el modelo. En este instructivo, usarás la función de entrenamiento personalizado de Vertex AI para ejecutar una aplicación de entrenamiento de Keras de TensorFlow en uno de los entornos de contenedores prediseñados de Vertex AI. Este trabajo de entrenamiento personalizado entrena un modelo de aprendizaje automático (AA) para clasificar imágenes de flores según su tipo. Después de entrenar el modelo de AA, en el instructivo se muestra cómo crear un extremo y entregar predicciones de ese extremo a una aplicación web simple.


Para seguir la guía paso a paso en esta tarea directamente en la consola de Google Cloud, haz clic en Guía:

GUIARME


En este instructivo, se incluyen las siguientes páginas:

  1. Configura tu proyecto y tu entorno.

  2. Entrena un modelo de clasificación de imágenes personalizada.

  3. Entrega predicciones desde un modelo de clasificación de imágenes personalizadas.

  4. Limpia tu proyecto.

En cada página, se supone que ya realizaste las instrucciones de las páginas anteriores del instructivo.

En el resto de este documento, se supone que usas el mismo entorno de Cloud Shell que creaste cuando sigues la primera página de este instructivo. Si tu sesión original de Cloud Shell ya no está abierta, puedes volver al entorno de la siguiente manera:

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

  2. En la sesión de Cloud Shell, ejecuta el siguiente comando:

    cd hello-custom-sample
    

Ejecuta una canalización de entrenamiento personalizado

En esta sección, se describe el uso del paquete de entrenamiento que subiste a Cloud Storage para ejecutar una canalización de entrenamiento personalizado de Vertex AI.

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Canalizaciones de entrenamiento.

    Ve a Canalizaciones de entrenamiento

  2. Haz clic en Crear para abrir el panel Entrenar modelo nuevo.

  3. En el paso Elige un método de entrenamiento, haz lo siguiente:

    1. De lo contrario, en la lista desplegable Conjunto de datos, selecciona No hay ningún conjunto de datos administrado. Esta aplicación de entrenamiento en particular carga datos de la biblioteca de conjuntos de datos de TensorFlow en lugar de un conjunto de datos administrado de Vertex AI.

    2. Asegúrate de que esté seleccionado Entrenamiento personalizado (avanzado).

    Haga clic en Continuar.

  4. En el paso Detalles del modelo, ingresa hello_custom en el campo Nombre. Haga clic en Continuar.

  5. En el paso Contenedor de entrenamiento, proporciona a Vertex AI la información que necesita para usar el paquete de entrenamiento que subiste a Cloud Storage:

    1. Selecciona Contenedor compilado previamente.

    2. En la lista desplegable Framework del modelo, selecciona TensorFlow.

    3. En la lista desplegable de Versión del framework del modelo, selecciona 2.3.

    4. En el campo Ubicación del paquete, ingresa cloud-samples-data/ai-platform/hello-custom/hello-custom-sample-v1.tar.gz.

    5. En el campo Módulo de Python, ingresa trainer.task. trainer es el nombre del paquete de Python en tu archivo comprimido y task.py contiene tu código de entrenamiento. Por lo tanto, trainer.task es el nombre del módulo que deseas que ejecute Vertex AI.

    6. En el campo Directorio de resultados de modelos, haz clic en Explorar. Haz lo siguiente en el panel Seleccionar carpeta:

      1. Navega a tu bucket de Cloud Storage.

      2. Haz clic en Crear nueva carpeta .

      3. Asigna el nombre output a la carpeta nueva. Luego, haz clic en Crear.

      4. Haz clic en Seleccionar.

      Confirma que el campo tenga el valor gs://BUCKET_NAME/output, en el que BUCKET_NAME es el nombre de tu bucket de Cloud Storage.

      Este valor se pasa a Vertex AI en el campo de API baseOutputDirectory, que establece distintas variables de entorno a las que puede acceder tu aplicación de entrenamiento cuando se ejecuta.

      Por ejemplo, cuando configuras este campo como gs://BUCKET_NAME/output, Vertex AI establece la variable de entorno AIP_MODEL_DIR en gs://BUCKET_NAME/output/model. Al final del entrenamiento, Vertex AI usa cualquier artefacto del directorio AIP_MODEL_DIR para crear un recurso del modelo.

      Obtén más información sobre las variables de entorno que se configuran con este campo.

    Haga clic en Continuar.

  6. En el paso opcional Hiperparámetros, asegúrate de que la casilla de verificación Habilitar ajuste de hiperparámetro esté desmarcada. En este instructivo, no se usa el ajuste de hiperparámetros. Haz clic en Continuar.

  7. En el paso Procesamiento y precios, asigna recursos al trabajo de entrenamiento personalizado:

    1. En la lista desplegable Región, selecciona us-central1 (Iowa).

    2. En la lista desplegable Tipo de máquina, selecciona n1-standard-4 de la sección Estándar.

    No agregues aceleradores ni grupos de trabajadores para este instructivo. Haz clic en Continuar.

  8. En el paso Contenedor de predicción, proporciona a Vertex AI la información que necesita para entregar predicciones:

    1. Selecciona Contenedor compilado previamente.

    2. En la sección Configuración de contenedor compilado previamente, haz lo siguiente:

      1. En la lista desplegable Framework del modelo, selecciona TensorFlow.

      2. En la lista desplegable de Versión del framework del modelo, selecciona 2.3.

      3. En la lista desplegable Tipo de acelerador, selecciona Ninguno.

      4. Confirma que el campo Directorio de modelo tenga el valor gs://BUCKET_NAME/output, en el que BUCKET_NAME es el nombre de tu bucket de Cloud Storage. Esto coincide con el valor del Directorio de salida del modelo que proporcionaste en un paso anterior.

    3. Deja en blanco los campos de la sección Esquema de predicción.

  9. Haz clic en Comenzar el entrenamiento para comenzar la canalización de entrenamiento personalizada.

Ahora puedes ver la nueva canalización de entrenamiento, llamada hello_custom, en la página Entrenamiento. Es posible que debas actualizar la página. En esta canalización de entrenamiento, se realizan dos tareas principales:

  1. La canalización de entrenamiento crea un recurso de trabajo personalizado llamado hello_custom-custom-job. Después de unos momentos, puedes ver este recurso en la página Trabajos personalizados de la sección Entrenamiento:

    Ve a Trabajos personalizados

    El trabajo personalizado ejecuta la aplicación de entrenamiento mediante los recursos de procesamiento que especificaste en esta sección.

  2. Una vez que se completa el trabajo personalizado, la canalización de entrenamiento encuentra los artefactos que crea la aplicación de entrenamiento en el directorio output/model/ del bucket de Cloud Storage. Usa estos artefactos para crear un recurso de modelo.

Supervisa el entrenamiento

Para ver los registros de entrenamiento, haz lo siguiente:

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Trabajos personalizados.

    Ve a Trabajos personalizados

  2. Para ver los detalles de la CustomJob que acabas de crear, haz clic en hello_custom-custom-job en la lista.

  3. En la página de detalles del trabajo, haz clic en Ver registros.

Observa tu modelo entrenado

Cuando se completa la canalización de entrenamiento personalizada, puedes encontrar el modelo entrenado en la consola de Google Cloud, en la página Modelos de la sección Vertex AI.

Ve a los modelos

El modelo tiene el nombre hello_custom.

¿Qué sigue?

Sigue la página siguiente de este instructivo para entregar predicciones de tu modelo de AA entrenado.