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 variableJOB_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:
En la Google Cloud consola, ve a la página Endpoints.
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á a1
.A continuación, se muestra un endpoint después de crearse y antes de que se despliegue un modelo en él.
A continuación, se muestra un endpoint después de crearlo y de implementar un modelo en él.