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 elWorkerPoolSpecenCustomJob.jobSpec.workerPoolSpecs.Si usas la CLI de Google Cloud, puedes usar la marca
--worker-pool-speco--configen el comandogcloud ai custom-jobs createpara 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 elWorkerPoolSpecenHyperparameterTuningJob.trialJobSpec.workerPoolSpecs.Si usas la CLI de gcloud, puedes usar la marca
--configen el comandogcloud ai hpt-tuning-jobs createpara especificar las opciones de los grupos de trabajadores.Obtén más información sobre cómo crear un
HyperparameterTuningJob.Si creas un recurso
TrainingPipelinesin ajuste de hiperparámetros, especifica elWorkerPoolSpecenTrainingPipeline.trainingTaskInputs.workerPoolSpecs.Obtén más información sobre cómo crear un recurso
TrainingPipelinepersonalizado.Si creas un
TrainingPipelinecon ajuste de hiperparámetros, especifica elWorkerPoolSpecenTrainingPipeline.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:
Console
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 Google Cloud consola, 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
ENTRYPOINToCMDen tu contenedor, especifica los camposcontainerSpec.commandocontainerSpec.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
ENTRYPOINTy la instrucciónCMD(si existe). Consulta la documentación de Docker sobre cómo interactúanCMDyENTRYPOINT.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ónENTRYPOINTy el valor decontainerSpec.argsreemplaza a su instrucciónCMD.Si especificas ambos campos: Tu contenedor se ejecuta con
containerSpec.commandy reemplaza su instrucciónENTRYPOINTycontainerSpec.argscon 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:
Console
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 deGoogle 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. Para 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.