Cuando realizas un entrenamiento personalizado, debes especificar qué código de aprendizaje automático (AA) deseas que Vertex AI ejecute. Para ello, establece la configuración de los contenedores de entrenamiento para un contenedor personalizado o una aplicación de entrenamiento de Python que se ejecuta en un contenedor compilado previamente.
Para determinar si deseas usar un contenedor personalizado o uno ya compilado, lee Requisitos del código de entrenamiento.
En este documento, se describen los campos de la API de Vertex AI que debes especificar en cualquiera de los casos anteriores.
Dónde especificar la configuración del contenedor
Especifica los detalles de configuración dentro de un WorkerPoolSpec
. Según cómo realices el entrenamiento personalizado, coloca este WorkerPoolSpec
en uno de los siguientes campos de la API:
Si creas un recurso
CustomJob
, especifica elWorkerPoolSpec
enCustomJob.jobSpec.workerPoolSpecs
.Si usas la CLI de Google Cloud, puedes usar la marca
--worker-pool-spec
o--config
en el comandogcloud ai custom-jobs create
para lo siguiente: especificar las opciones del grupo de trabajadores.Obtén más información sobre cómo crear un
CustomJob
.Si creas un recurso
HyperparameterTuningJob
, especifica elWorkerPoolSpec
enHyperparameterTuningJob.trialJobSpec.workerPoolSpecs
.Si usas la CLI de gcloud, puedes usar la marca
--config
en el comandogcloud ai hpt-tuning-jobs create
para especificar las opciones de los grupos de trabajadores.Obtén más información sobre cómo crear un
HyperparameterTuningJob
.Si creas un recurso
TrainingPipeline
sin ajuste de hiperparámetros, especifica elWorkerPoolSpec
enTrainingPipeline.trainingTaskInputs.workerPoolSpecs
.Obtén más información sobre cómo crear un recurso
TrainingPipeline
personalizado.Si creas un
TrainingPipeline
con ajuste de hiperparámetros, especifica elWorkerPoolSpec
enTrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs
.
Si realizas un entrenamiento distribuido, puedes usar opciones de configuración diferentes para cada grupo de trabajadores.
Configura el Contenedor de la siguiente forma:
Según si usas un contenedor previamente compilado o un contenedor personalizado, debes especificar campos diferentes dentro de WorkerPoolSpec
. Selecciona la pestaña de tu situación:
Contenedor previamente compilado
Selecciona un contenedor compilado previamente que admita el framework del AA que planeas usar para el entrenamiento. Especifica uno de los URI de la imagen de contenedor en el campo
pythonPackageSpec.executorImageUri
.Especifica los URI de Cloud Storage de tu aplicación de entrenamiento de Python en el campo
pythonPackageSpec.packageUris
.Especifica el módulo de punto de entrada de la aplicación de entrenamiento en el campo
pythonPackageSpec.pythonModule
.De manera opcional, especifica una lista de argumentos de la línea de comandos para pasar al módulo de punto de entrada de tu aplicación de entrenamiento en el campo
pythonPackageSpec.args
.
En los ejemplos siguientes, se destaca dónde especificarás estas opciones de configuración del contenedor cuando creas un CustomJob
:
Consola
En la consola de Google Cloud, no puedes crear un CustomJob
directamente. Sin embargo, puedes crear un TrainingPipeline
que cree un CustomJob
. Cuando creas un TrainingPipeline
en la consola de Google Cloud, puedes especificar una configuración de contenedor compilado previamente en ciertos campos del paso Contenedor de entrenamiento:
pythonPackageSpec.executorImageUri
: usa las listas desplegables Model Framework y Model Framework version.pythonPackageSpec.packageUris
: usa el campo Package location.pythonPackageSpec.pythonModule
: usa el campo Python module.pythonPackageSpec.args
: Usa el campo Argumentos.
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--python-package-uris=PYTHON_PACKAGE_URIS \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE
Para obtener más información, lee la guía para crear un CustomJob
.
Contenedor personalizado
Especifica el URI de Artifact Registry o Docker Hub de tu contenedor personalizado en el campo
containerSpec.imageUri
.De forma opcional, si deseas anular las instrucciones
ENTRYPOINT
oCMD
en tu contenedor, especifica los camposcontainerSpec.command
ocontainerSpec.args
. Estos campos afectan cómo se ejecuta el contenedor de acuerdo con las siguientes reglas:Si no especificas ningún campo: el contenedor se ejecuta según su instrucción
ENTRYPOINT
y la instrucciónCMD
(si existe). Consulta la documentación de Docker sobre cómo interactúanCMD
yENTRYPOINT
.Si especificas solo
containerSpec.command
: el contenedor se ejecutará con el valor decontainerSpec.command
, y se reemplazará la instrucciónENTRYPOINT
. Si el contenedor tiene una instrucciónCMD
, se ignora.Si especificas solo
containerSpec.args
: tu contenedor se ejecuta según su instrucciónENTRYPOINT
y el valor decontainerSpec.args
reemplaza a su instrucciónCMD
.Si especificas ambos campos: Tu contenedor se ejecuta con
containerSpec.command
y reemplaza su instrucciónENTRYPOINT
ycontainerSpec.args
con el reemplazo de la instrucciónCMD
.
En el siguiente ejemplo, se destaca dónde puedes especificar algunas de estas configuraciones de contenedor cuando creas un CustomJob
:
Consola
En la consola de Google Cloud, no puedes crear un CustomJob
directamente. Sin embargo, puedes crear un TrainingPipeline
que cree un CustomJob
. Cuando creas un TrainingPipeline
en la consola de Google Cloud, puedes especificar una configuración de contenedor personalizado en ciertos campos del paso Contenedor de entrenamiento:
containerSpec.imageUri
: usa el campo Container image.containerSpec.command
: este campo de API no se puede configurar en la consola de Google Cloud.containerSpec.args
: Usa el campo Argumentos.
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.
Para obtener más información, lee la guía para crear un CustomJob
.
¿Qué sigue?
- Obtén información sobre cómo realizar un entrenamiento personalizado mediante la creación de un
CustomJob
.