Utiliser une adresse IP privée pour l'entraînement personnalisé

L'utilisation d'une adresse IP privée pour vous connecter à vos tâches d'entraînement offre une sécurité réseau et une latence réseau inférieures à celles d'une adresse IP publique. Pour utiliser une adresse IP privée, vous devez faire appel à un cloud privé virtuel (VPC) pour appairer votre réseau avec n'importe quel type de tâche d'entraînement personnalisé Vertex AI. Cela permet à votre code d'entraînement d'accéder à des adresses IP privées au sein de vos réseaux Google Cloud ou sur site.

Ce guide explique comment exécuter des tâches d'entraînement personnalisé sur votre réseau une fois que vous avez configuré l'appairage de réseaux VPC pour appairer votre réseau avec une ressource Vertex AI CustomJob, HyperparameterTuningJob, ou une ressource TrainingPipeline personnalisée.

Notez que vous ne pouvez pas utiliser d'adresses IP privées pour l'entraînement personnalisé si vous utilisez une VM TPU.

Présentation

Avant d'envoyer une tâche d'entraînement personnalisé à l'aide d'une adresse IP privée, vous devez configurer l'accès aux services privés pour créer des connexions d'appairage entre votre réseau et Vertex AI. Si vous l'avez déjà configuré, vous pouvez utiliser vos connexions d'appairage existantes.

Ce guide couvre les tâches suivantes :

  • Analyser les plages d'adresses IP à réserver pour un entraînement personnalisé
  • Vérifiez l'état de vos connexions d'appairage existantes.
  • Effectuer des entraînements personnalisés Vertex AI sur votre réseau
  • Vérifier l'entraînement actif sur un réseau avant de démarrer l'entraînement sur un autre réseau.
  • Vérifier que le code d'entraînement peut accéder aux adresses IP privées de votre réseau.

Réserver des plages d'adresses IP pour l'entraînement personnalisé

Lorsque vous réservez une plage d'adresses IP pour des producteurs de services, cette plage peut être utilisée par Vertex AI ainsi que par d'autres services. Ce tableau présente le nombre maximal de tâches d'entraînement parallèles que vous pouvez exécuter avec des plages réservées de /16 à /19, en supposant que la plage est utilisée presque exclusivement par Vertex AI. Si vous communiquez avec d'autres producteurs de services utilisant la même plage, allouez-en une plus grande pour les adapter, afin d'éviter l'épuisement des adresses IP.

Configurer la machine pour la tâche d'entraînement Plage réservée Nombre maximal de tâches parallèles
Jusqu'à 8 nœuds.
Par exemple : une instance dupliquée principale dans le premier pool de nœuds de calcul, 6 instances dupliquées dans le deuxième pool de nœuds de calcul, et un nœud de calcul dans le troisième pool de nœuds de calcul (pour agir en tant que serveur de paramètres).
/16 63
/17 31
/18 15
/19 7
Jusqu'à 16 nœuds.
Par exemple : une instance dupliquée principale dans le premier pool de nœuds de calcul, 14 instances dupliquées dans le deuxième pool de nœuds de calcul et un nœud de calcul dans le troisième pool de nœuds de calcul (pour agir en tant que serveur de paramètres).
/16 31
/17 15
/18 7
/19 3
Jusqu'à 32 nœuds.
Par exemple : une instance dupliquée principale dans le premier pool de nœuds de calcul, 30 instances dupliquées dans le deuxième pool de nœuds de calcul et un nœud de calcul dans le troisième pool de nœuds de calcul (pour agir en tant que serveur de paramètres).
/16 15
/17 7
/18 3
/19 1

Découvrez comment configurer des pools de nœuds de calcul pour l'entraînement distribué.

Vérifier l'état des connexions d'appairage existantes

Si vous disposez de connexions d'appairage existantes avec Vertex AI, vous pouvez les répertorier pour vérifier leur état :

gcloud compute networks peerings list --network NETWORK_NAME

Vous devriez voir que l'état de vos connexions d'appairage est ACTIVE. En savoir plus sur les connexions d'appairage actives

Réaliser un entraînement personnalisé

Lorsque vous réalisez un entraînement personnalisé, vous devez spécifier le nom du réseau auquel vous souhaitez que Vertex AI ait accès.

Selon votre mode d'entraînement personnalisé, spécifiez le réseau dans l'un des champs d'API suivants :

Si vous ne spécifiez pas de nom de réseau, Vertex AI exécute votre entraînement personnalisé sans connexion d'appairage et sans accès aux adresses IP privées de votre projet.

Exemple : créer une CustomJob avec la CLI gcloud

L'exemple suivant montre comment spécifier un réseau lorsque vous utilisez gcloud CLI pour exécuter un CustomJob qui utilise un conteneur prédéfini. Si vous effectuez un entraînement personnalisé d'une autre manière, ajoutez le champ network comme décrit pour le type de job d'entraînement personnalisé que vous utilisez.

  1. Créez un fichier config.yaml pour spécifier le réseau. Si vous utilisez un VPC partagé, utilisez le numéro de votre projet hôte VPC.

    Assurez-vous que le format du nom du réseau est correct :

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    
    cat <<EOF > config.yaml
    network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
    EOF
    
  2. Créez une application d'entraînement à exécuter sur l'IA Vertex.

  3. Créez le fichier CustomJob en transmettant votre fichier 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
    

Pour savoir comment remplacer les espaces réservés dans cette commande, consultez la page Créer des tâches d'entraînement personnalisées.

Exécuter des tâches sur différents réseaux

Vous ne pouvez pas effectuer d'entraînement personnalisé sur un nouveau réseau lorsque l'entraînement personnalisé est encore en cours sur un autre réseau. Avant de basculer vers un autre réseau, vous devez attendre que tous les CustomJob, les HyperparameterTuningJob et les ressources TrainingPipeline personnalisées que vous avez envoyés soient terminés, ou vous devez les annuler.

Tester l'accès aux tâches d'entraînement

Cette section explique comment vérifier qu'une ressource d'entraînement personnalisée peut accéder aux adresses IP privées de votre réseau.

  1. Créez une instance Compute Engine dans votre réseau VPC.
  2. Vérifiez vos règles de pare-feu pour vous assurer qu'elles ne limitent pas l'entrée du réseau de Vertex AI. Si tel est le cas, ajoutez une règle pour vous assurer que le réseau d'IA Vertex peut accéder à la plage d'adresses IP que vous avez réservée pour Vertex AI (et à d'autres producteurs de services).
  3. Configurez un serveur local sur l'instance de VM afin de créer un point de terminaison auquel un CustomJob Vertex AI peut accéder.
  4. Créer une application d'entraînement Python à exécuter sur l'IA Vertex. À la place du code d'entraînement du modèle, créez du code qui accède au point de terminaison que vous avez configuré à l'étape précédente.
  5. Suivez l'exemple précédent pour créer une tâche CustomJob.

Problèmes courants

Cette section répertorie certains problèmes courants de configuration de l'appairage de réseaux VPC avec Vertex AI.

  • Lorsque vous configurez Vertex AI pour utiliser votre réseau, spécifiez le nom complet du réseau :

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

  • Assurez-vous qu'aucun entraînement personnalisé n'est en cours sur un réseau avant d'effectuer l'entraînement personnalisé sur un autre réseau.

  • Assurez-vous d'avoir alloué une plage d'adresses IP suffisante à tous les producteurs de services auxquels votre réseau se connecte, y compris Vertex AI.

Pour plus d'informations sur le dépannage, consultez le guide de dépannage sur l'appairage de réseaux VPC.

Étape suivante