Usar 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 la plataforma de agentes de Gemini Enterprise. Esto permite que el código de entrenamiento acceda a direcciones IP privadas dentro de tus redes locales o deGoogle 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 TrainingPipeline personalizado 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 los 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 reservar para el entrenamiento sin servidores
  • Verificar el estado de las conexiones del intercambio de tráfico existentes.
  • Realiza el entrenamiento sin servidores de Gemini Enterprise Agent Platform 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 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, en caso de que Agent Platform 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
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 un entrenamiento sin servidores

Cuando realices un entrenamiento sin servidores, debes especificar el nombre de la red a la que deseas 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 la gcloud CLI para ejecutar un CustomJob que usa un contenedor compilado previamente. Si realizas un entrenamiento sin servidores de otra manera, 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 el entrenamiento sin servidores en una red nueva mientras sigues realizando 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 IPs 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 que se ejecute 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 configures Agent Platform 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 sin servidores en una red antes de realizar el entrenamiento sin servidores 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, incluida 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?