Usar una IP privada para conectarte a tus trabajos de entrenamiento proporciona más seguridad de red y una latencia de red menor que usar la IP pública. Para usar una IP privada, usa una nube privada virtual (VPC) a fin de intercambiar tráfico de tu red con cualquier tipo de trabajo de entrenamiento personalizado de Vertex AI. Esto permite que los trabajos de entrenamiento accedan a direcciones IP privadas dentro de tus redes locales o de Google Cloud.
En esta guía, se muestra cómo ejecutar trabajos de entrenamiento personalizados en tu red después de que hayas configurado el intercambio de tráfico entre redes de VPC para intercambiar tráfico de tu red con un recurso CustomJob
, HyperparameterTuningJob
, o TrainingPipeline
personalizado de Vertex AI.
Descripción general
Antes de enviar un trabajo de entrenamiento personalizado con una IP privada, debes configurar el acceso privado a los servicios para crear conexiones de intercambio de tráfico entre tu red y la Vertex AI. Si ya lo configuraste, puedes usar tus conexiones de intercambio de tráfico existentes.
En esta guía, se abarcan las siguientes tareas:
- Comprender qué rangos de IP para reservar para el entrenamiento personalizado
- Verificar el estado de las conexiones del intercambio de tráfico existentes.
- Realizar el entrenamiento personalizado de Vertex AI en tu red.
- Verifica el entrenamiento activo que se produce en una red antes de entrenar en otra red.
- Probar que tu código de entrenamiento pueda acceder a las IP privadas de tu red.
Reserva rangos de IP para el entrenamiento personalizado
Cuando reservas un rango de IP para productores de servicios, Vertex AI y otros servicios pueden usarlo. En esta tabla, se muestra la cantidad máxima de trabajos de entrenamiento paralelos que puedes ejecutar con rangos reservados de /16 a /19, en caso de que Vertex AI los use casi de forma exclusiva. Si te conectas con otros productores de servicios mediante el mismo rango, asigna un rango más grande para alojarlos a fin de evitar el agotamiento de la IP.
Configuración de la máquina para el trabajo de entrenamiento | Rango reservado | Cantidad máxima de trabajos paralelos | |
---|---|---|---|
Hasta 8 nodos. Por ejemplo: una réplica principal en el primer grupo de trabajadores, 6 réplicas en el segundo grupo de trabajadores y un trabajador en el tercer grupo de trabajadores (para que actúe como un servidor de parámetros) |
/16 | 63 | |
/17 | 31 | ||
/18 | 15 | ||
/19 | 7 | ||
Hasta 16 nodos. Por ejemplo: una réplica principal en el primer grupo de trabajadores, 14 réplicas en el segundo grupo de trabajadores y un trabajador en el tercer grupo de trabajadores (para que actúe como un servidor de parámetros) |
/16 | 31 | |
/17 | 15 | ||
/18 | 7 | ||
/19 | 3 | ||
Hasta 32 nodos. Por ejemplo: una réplica principal en el primer grupo de trabajadores, 30 réplicas en el segundo grupo de trabajadores y un trabajador en el tercer grupo de trabajadores (para que actúe como un servidor de parámetros) |
/16 | 15 | |
/17 | 7 | ||
/18 | 3 | ||
/19 | 1 |
Obtén más información sobre cómo configurar grupos de trabajadores para el entrenamiento distribuido.
Verificar el estado de las conexiones de intercambio de tráfico existentes
Si tienes conexiones de intercambio de tráfico existentes que usas con Vertex AI, puedes enumerarlas para verificar el estado:
gcloud compute networks peerings list --network NETWORK_NAME
Deberías ver que el estado de las conexiones de intercambio de tráfico es ACTIVE
.
Obtén más información sobre las conexiones de intercambio de tráfico activas.
Realiza entrenamientos personalizados
Cuando realices un entrenamiento personalizado, debes especificar el nombre de la red a la que quieres que Vertex AI tenga acceso.
Según cómo realices el entrenamiento personalizado, especifica la red en uno de los siguientes campos de la API:
Si creas un
CustomJob
, especifica el campoCustomJob.jobSpec.network
.Si usas la CLI de Google Cloud, puedes usar la marca
--config
en el comandogcloud ai custom-jobs create
para especificar el camponetwork
. .Obtén más información sobre cómo crear un
CustomJob
.Si creas un
HyperparameterTuningJob
, especifica el campoHyperparameterTuningJob.trialJobSpec.network
.Si usas la CLI de gcloud, puedes usar la marca
--config
en el comandogcloud ai hpt-tuning-jobs create
para especificar el camponetwork
.Obtén más información sobre cómo crear un
HyperparameterTuningJob
.Si creas una
TrainingPipeline
sin ajuste de hiperparámetros, especifica el campoTrainingPipeline.trainingTaskInputs.network
.Obtén más información sobre cómo crear un recurso
TrainingPipeline
personalizado.Si creas una
TrainingPipeline
con ajuste de hiperparámetros, especifica el campoTrainingPipeline.trainingTaskInputs.trialJobSpec.network
.
Si no especificas un nombre de red, Vertex AI ejecuta tu entrenamiento personalizado sin una conexión de intercambio de tráfico y sin acceso a IP privadas en tu proyecto.
Ejemplo: crea un CustomJob
con la CLI de gcloud
En el siguiente ejemplo, se muestra cómo especificar una red cuando usas la CLI de gcloud para ejecutar un CustomJob
que usa un contenedor compilado previamente. Si realizas un entrenamiento personalizado de manera diferente, agrega el campo network
como se describe para el tipo de trabajo de entrenamiento personalizado que usas.
Crea un archivo
config.yaml
para especificar la red. Si usas una VPC compartida, usa el número del proyecto host de VPC.Asegúrate de que el nombre de la red tenga el formato correcto:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") cat <<EOF > config.yaml network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME EOF
Crea una aplicación de entrenamiento para ejecutar en Vertex AI.
Crea el
CustomJob
y pasa tu archivoconfig.yaml
: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 \ --config=config.yaml
Para obtener información sobre cómo reemplazar los marcadores de posición de este comando, lee Crea trabajos de entrenamiento personalizados.
Ejecuta trabajos en diferentes redes
No puedes realizar el entrenamiento personalizado en una red nueva mientras sigues realizando un entrenamiento personalizado en otra red. Antes de cambiar a una red diferente, debes esperar a que finalicen todos los recursos CustomJob
, HyperparameterTuningJob
y TrainingPipeline
personalizados enviados, o bien cancelarlos.
Prueba el acceso al trabajo de entrenamiento
En esta sección, se explica cómo probar si un recurso de entrenamiento personalizado puede acceder a IP privadas en tu red.
- Crea una instancia de Compute Engine en tu red de VPC.
- Verifica tus reglas de firewall para asegurarte de que no restrinjan la entrada desde la red de Vertex AI. Si es así, agrega una regla para asegurarte de que la red de Vertex AI pueda acceder al rango de IP que reservaste para Vertex AI (y otros productores de servicios).
- Configura un servidor local en la instancia de VM para crear un extremo al que pueda acceder un
CustomJob
de Vertex AI. - Crea una aplicación de entrenamiento de Python para ejecutar en Vertex AI. En lugar del código de entrenamiento de modelos, crea el código que accede al extremo que configuraste en el paso anterior.
- Sigue el ejemplo anterior para crear un
CustomJob
.
Problemas comunes
En esta sección, se enumeran algunos problemas comunes para configurar el intercambio de tráfico entre redes de VPC con Vertex AI.
Cuando configures Vertex AI para usar tu red, especifica el nombre completo de la red:
“projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME”
Asegúrate de no realizar un entrenamiento personalizado en una red antes de realizar el entrenamiento personalizado en otra red.
Asegúrate de haber asignado un rango de IP suficiente para todos los productores de servicios a los que se conecta tu red, incluido Vertex AI.
Para obtener información adicional sobre la solución de problemas, consulta la Guía de solución de problemas de intercambio de tráfico entre redes de VPC.
¿Qué sigue?
- Obtén más información sobre el intercambio de tráfico entre redes de VPC.
- Consulta las arquitecturas de referencia y prácticas recomendadas para el diseño de VPC.