Usa una IP privada para el entrenamiento sin servidores de Gemini Enterprise Agent Platform

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) para intercambiar tráfico de tu red con cualquier tipo de trabajo de entrenamiento sin servidores de Gemini Enterprise Agent Platform. Esto permite que los trabajos de entrenamiento accedan a direcciones IP privadas dentro de tus Google Cloud redes locales o de Google Cloud.

En esta guía, se muestra cómo ejecutar trabajos de entrenamiento sin servidores 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 personalizado TrainingPipeline de Agent Platform.

Descripción general

Antes de enviar un trabajo de entrenamiento sin servidores con una IP privada, debes configurar el acceso privado a servicios para crear conexiones de intercambio de tráfico entre tu red y Agent Platform. 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 sin servidores
  • Verificar el estado de las conexiones del intercambio de tráfico existentes.
  • Realizar el entrenamiento sin servidores de Gemini Enterprise Agent Platform en tu red.
  • Verificar 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.

Reservar rangos de IP para el entrenamiento sin servidores

Cuando reservas un rango de IP para productores de servicios, Agent Platform 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 /18, suponiendo que Agent Platform use el rango casi exclusivamente. 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
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
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

Obtén más información sobre cómo configurar grupos de trabajadores para el entrenamiento distribuido.

Verifica el estado de las conexiones de intercambio de tráfico existentes

Si tienes conexiones de intercambio de tráfico existentes que usas con Agent Platform, 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 el entrenamiento sin servidores

Cuando realizas un entrenamiento sin servidores, debes especificar el nombre de la red a la que quieres que Agent Platform tenga acceso.

Según cómo realices el entrenamiento sin servidores, especifica la red en uno de los siguientes campos de la API:

Si no especificas un nombre de red, Agent Platform ejecuta tu entrenamiento sin servidores sin una conexión de intercambio de tráfico y sin acceso a IP privadas en tu proyecto.

Ejemplo: crea un CustomJob con gcloud CLI

En el siguiente ejemplo, se muestra cómo especificar una red cuando usas gcloud CLI para ejecutar un CustomJob que usa un contenedor compilado previamente. Si realizas un entrenamiento sin servidores de manera diferente, agrega el campo network como se describe para el tipo de trabajo de entrenamiento sin servidores que usas.

  1. 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
    
  2. Crea una aplicación de entrenamiento para ejecutar en Agent Platform.

  3. Crea el CustomJob y pasa tu archivo config.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 un entrenamiento sin servidores en una red nueva mientras aún realizas un entrenamiento sin servidores 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 sin servidores puede acceder a IP privadas en tu red.

  1. Crea una instancia de Compute Engine en tu red de VPC.
  2. Verifica las reglas de firewall para asegurarte de que no restrinjan el ingreso desde la red de Agent Platform. Si es así, agrega una regla para asegurarte de que la red de Agent Platform pueda acceder al rango de IP que reservaste para Agent Platform (y otros productores de servicios).
  3. Configura un servidor local en la instancia de VM para crear un extremo al que pueda acceder un CustomJob de Agent Platform.
  4. Crea una aplicación de entrenamiento de Python para ejecutar en Agent Platform. En lugar del código de entrenamiento de modelos, crea el código que accede al extremo que configuraste en el paso anterior.
  5. 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 Agent Platform.

  • Cuando configuras Agent Platform para que use 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 sin servidores en una red antes de realizar un entrenamiento sin servidores en una red diferente.

  • Asegúrate de haber asignado un rango de IP suficiente para todos los productores de servicios a los que se conecta tu red, incluido Agent Platform.

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?