Entrenar y desplegar un modelo

En los pasos anteriores de este tutorial, has preparado los datos para el entrenamiento y has creado una secuencia de comandos que Vertex AI usa para entrenar el modelo. Ahora puedes usar el SDK de Vertex AI para Python y crear un CustomTrainingJob.

Cuando creas un CustomTrainingJob, defines un flujo de procesamiento de entrenamiento en segundo plano. Vertex AI usa la canalización de entrenamiento y el código de tu secuencia de comandos de entrenamiento de Python para entrenar y crear tu modelo. Para obtener más información, consulta Crear flujos de entrenamiento.

Definir el flujo de procesamiento de entrenamiento

Para crear un flujo de procesamiento de entrenamiento, debes crear un objeto CustomTrainingJob. En el paso siguiente, usará el comando run de CustomTrainingJob para crear y entrenar su modelo. Para crear un CustomTrainingJob, debes pasar los siguientes parámetros a su constructor:

  • display_name: la variable JOB_NAME que creaste al definir los argumentos de comando de la secuencia de comandos de entrenamiento de Python.

  • script_path: la ruta a la secuencia de comandos de entrenamiento de Python que has creado anteriormente en este tutorial.

  • container_url: URI de una imagen de contenedor Docker que se usa para entrenar tu modelo.

  • requirements: lista de las dependencias de paquetes de Python de la secuencia de comandos.

  • model_serving_container_image_uri: el URI de una imagen de contenedor Docker que proporciona predicciones para tu modelo. Este contenedor puede ser una imagen precompilada o una imagen personalizada. En este tutorial se usa un contenedor prediseñado.

Ejecuta el siguiente código para crear tu flujo de procesamiento de entrenamiento. El método CustomTrainingJob usa la secuencia de comandos de entrenamiento de Python del archivo task.py para crear un CustomTrainingJob.

job = aiplatform.CustomTrainingJob(
    display_name=JOB_NAME,
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes", "protobuf<3.20.0"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest",
)

Crear y entrenar un modelo

En el paso anterior, has creado un CustomTrainingJob llamado job. Para crear y entrenar tu modelo, llama al método run en tu objeto CustomTrainingJob y pásale los siguientes parámetros:

  • dataset: el conjunto de datos tabulares que has creado anteriormente en este tutorial. Este parámetro puede ser un conjunto de datos tabulares, de imagen, de vídeo o de texto.

  • model_display_name: el nombre del modelo.

  • bigquery_destination: cadena que especifica la ubicación de tu conjunto de datos de BigQuery.

  • args: los argumentos de línea de comandos que se transfieren a la secuencia de comandos de entrenamiento de Python.

Para empezar a entrenar tus datos y crear tu modelo, ejecuta el siguiente código en tu cuaderno:

MODEL_DISPLAY_NAME = "penguins_model_unique"

# Start the training and create your model
model = job.run(
    dataset=dataset,
    model_display_name=MODEL_DISPLAY_NAME,
    bigquery_destination=f"bq://{project_id}",
    args=CMDARGS,
)

Antes de continuar con el siguiente paso, comprueba que aparece lo siguiente en el resultado del comando job.run para verificar que se ha completado:

CustomTrainingJob run completed.

Una vez que se haya completado el trabajo de entrenamiento, podrás desplegar tu modelo.

Desplegar un modelo

Cuando despliegas tu modelo, también creas un recurso Endpoint que se usa para hacer predicciones. Para implementar el modelo y crear un endpoint, ejecuta el siguiente código en tu cuaderno:

DEPLOYED_NAME = "penguins_deployed_unique"

endpoint = model.deploy(deployed_model_display_name=DEPLOYED_NAME)

Espera a que se implemente el modelo antes de continuar con el siguiente paso. Una vez que se haya implementado el modelo, el resultado incluirá el texto Endpoint model deployed.

Para ver el estado de tu implementación en la consola de Google Cloud , haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Endpoints.

    Ir a Endpoints

  2. Monitoriza el valor de Modelos. El valor es 0 después de crear el endpoint y antes de desplegar el modelo. Una vez que se haya implementado el modelo, el valor cambiará a 1.

    A continuación, se muestra un endpoint después de crearse y antes de que se despliegue un modelo en él.

    Un endpoint sin ningún modelo desplegado.

    A continuación, se muestra un endpoint después de crearlo y de implementar un modelo en él.

    Un endpoint sin ningún modelo desplegado.