Gérer un cluster

Si vous êtes intéressé par les clusters d'entraînement Vertex AI, contactez votre représentant commercial pour y accéder.

Une fois le cluster déployé, vous pouvez gérer son cycle de vie complet à l'aide des points de terminaison de l'API REST suivants.

  • List : affiche tous les clusters actifs de votre projet.
  • Get : récupère des informations détaillées sur un cluster spécifique.
  • Update : modifie une configuration de cluster existante.
  • Delete : supprime définitivement un cluster et ses ressources.

Authentification

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Répertoriez les clusters :

    gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters
    

La méthode list accepte les paramètres de requête facultatifs suivants pour contrôler la pagination.

  • pageSize (entier, facultatif) : nombre maximal de clusters à renvoyer dans la réponse. Le service peut renvoyer un nombre inférieur à cette valeur, même si d'autres éléments existent. Si aucune valeur n'est spécifiée, une taille de page par défaut sera utilisée.
  • pageToken (string, optional) : jeton reçu lors d'un appel de liste précédent. Fournissez ce jeton pour récupérer la page de résultats suivante.
L'exemple suivant demande la première page de résultats avec un maximum de cinq clusters par page.

    gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
    

Une réponse réussie contient un tableau de clusters avec un maximum de cinq ressources de cluster et peut également inclure une chaîne nextPageToken.

Obtenez un cluster :

    gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
    

Mettez à jour un cluster :

UPDATE_PAYLOAD spécifie le chemin d'accès local à un fichier JSON qui définit l'intégralité de ModelDevelopmentCluster que vous souhaitez mettre à jour.

Par exemple, pour mettre à jour le nombre de nœuds d'un pool d'un cluster avec processeur uniquement, utilisez la charge utile JSON suivante :

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "cpu",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": UPDATED_MIN_NODE_COUNT,
        "max_node_count": UPDATED_MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8",
      },
      "scaling_spec": {
        "min_node_count": 1,
        "max_node_count": 1
      },
         "zone": "ZONE",
         "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
  ],
  "orchestrator_spec": {
      "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
         {
          "id": "cpu",
          "node_pool_ids": [
            "cpu"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

gcurl -X PATCH -d @UPDATE_PAYLOAD https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
Paramètres de requête
  • updateMask (chaîne, facultatif) : FieldMask qui spécifie les champs de la ressource de cluster de développement de modèles à mettre à jour. Seuls les champs listés dans updateMask sont modifiés.

    Les champs suivants de la ressource ModelDevelopmentCluster peuvent être spécifiés dans updateMask :

    • node_pools
    • orchestrator_spec.slurm_spec.partitions
    • orchestrator_spec.slurm_spec.login_node_pool_id
    • orchestrator_spec.slurm_spec.prolog_bash_scripts
    • orchestrator_spec.slurm_spec.epilog_bash_scripts

La commande ci-dessous met à jour à la fois la configuration du pool de nœuds et les partitions Slurm.

gcurl -X PATCH -d @update-payload.json
'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.partitions,node_pools'
Remarque importante sur les champs répétés

Pour les champs répétés, tels que node_pools, prolog_bash_scripts et epilog_bash_scripts, l'API n'accepte que les opérations de remplacement complet. L'utilisateur doit fournir la liste complète des éléments attendus dans la charge utile de la requête pour remplacer complètement la liste existante.

Comportement après la mise à jour et état du cluster

Si la requête réussit, elle renvoie une opération de longue durée (LRO). Vous pouvez ensuite surveiller l'état de cette opération à l'aide de la commande suivante :

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Une fois l'opération de mise à jour terminée, la plupart des modifications prennent effet immédiatement (ou dans le délai de synchronisation Slurm de 15 secondes) et ne nécessitent aucune autre action. Seules les modifications apportées à l'infrastructure de calcul du cluster sous-jacent (y compris celles apportées aux sources de stockage et aux scripts de démarrage) nécessitent la recréation des ressources.

Supprimez un cluster :

  gcurl -X DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
  

En cas de réussite, cette commande renvoie une opération de longue durée que vous pouvez ensuite surveiller à l'aide de la commande operations describe.

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID

Étapes suivantes

La gestion de votre cluster d'entraînement Vertex AI vous permet d'optimiser son utilisation, de l'intégrer à des workflows automatisés et de préparer vos modèles entraînés pour le déploiement.

  • Orchestrez votre entraînement avec Vertex AI Pipelines : automatisez l'intégralité du cycle de vie de vos jobs d'entraînement, de la préparation des données à l'enregistrement des modèles, à l'aide de pipelines ciblant votre cluster géré.
  • Surveillez et déboguez vos jobs d'entraînement : suivez la progression et l'utilisation des ressources, et identifiez les problèmes liés à vos jobs d'entraînement distribués exécutés sur le cluster.
  • Déployez votre modèle pour l'inférence : une fois vos modèles entraînés et enregistrés, déployez-les sur un point de terminaison Vertex AI pour répondre aux demandes d'inférence en ligne à grande échelle.
  • Optimisez les coûts : examinez régulièrement l'utilisation de votre cluster et supprimez-le lorsqu'il n'est pas utilisé activement pour minimiser la facturation du matériel réservé.