Gestisci il cluster

Se ti interessano i cluster di addestramento di Vertex AI, contatta il tuo rappresentante di vendita per l'accesso.

Una volta eseguito il deployment di un cluster, puoi gestirne l'intero ciclo di vita utilizzando i seguenti endpoint dell'API REST.

  • List: visualizza tutti i cluster attivi nel progetto.
  • Get: recupera informazioni dettagliate per un cluster specifico.
  • Update: modifica una configurazione del cluster esistente.
  • Delete: rimuove definitivamente un cluster e le relative risorse.

Autenticazione

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

Elenco dei cluster:

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

Il metodo list supporta i seguenti parametri di ricerca facoltativi per controllare la paginazione.

  • pageSize (integer, optional): il numero massimo di cluster da restituire nella risposta. Il servizio potrebbe restituire un numero inferiore a questo valore, anche se esistono altri elementi. Se non viene specificata, verrà utilizzata una dimensione della pagina predefinita.
  • pageToken (string, optional): un token ricevuto da una precedente chiamata dell'elenco. Fornisci questo token per recuperare la pagina successiva dei risultati.
L'esempio seguente richiede la prima pagina dei risultati con un massimo di 5 cluster per pagina.

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

Una risposta corretta contiene un array di cluster con un massimo di cinque risorse cluster e può includere anche una stringa nextPageToken.

Recupero di un cluster:

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

Aggiornamento di un cluster:

UPDATE_PAYLOAD specifica il percorso locale di un file JSON che definisce l'intero ModelDevelopmentCluster a cui vuoi eseguire l'aggiornamento.

Ad esempio, per aggiornare il numero di nodi di un pool di un cluster solo CPU, utilizza il seguente payload JSON:

{
  "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
Parametri di query
  • updateMask (string, optional): Una FieldMask che specifica i campi della risorsa cluster di sviluppo del modello da aggiornare. Vengono modificati solo i campi elencati in updateMask vengono modificati.

    I seguenti campi della risorsa ModelDevelopmentCluster possono essere specificati in 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

Il comando riportato di seguito aggiorna sia la configurazione del pool di nodi sia le partizioni 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'
Nota importante sui campi ripetuti

Per i campi ripetuti, come node_pools, prolog_bash_scripts e epilog_bash_scripts, l'API supporta solo un'operazione di sostituzione completa. L'utente deve fornire l'intero elenco previsto di elementi nel payload della richiesta per sostituire completamente l'elenco esistente.

Comportamento post-aggiornamento e stato del cluster

Una richiesta riuscita restituisce un'operazione a lunga esecuzione (LRO). Puoi quindi monitorare lo stato di questa operazione utilizzando il seguente comando:

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Una volta completata correttamente l'operazione di aggiornamento, la maggior parte delle modifiche ha effetto immediatamente (o entro il tempo di sincronizzazione Slurm di 15 secondi) e non richiede ulteriori azioni. Solo le modifiche all'infrastruttura di calcolo del cluster sottostante, incluse le modifiche alle origini di archiviazione e agli script di avvio, richiedono la ricreazione delle risorse.

Eliminazione di un cluster:

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

Se l'operazione va a buon fine, questo comando restituisce un'operazione a lunga esecuzione che puoi monitorare utilizzando il comando operations describe.

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

Passaggi successivi

La gestione del cluster di addestramento di Vertex AI ti consente di ottimizzarne l'utilizzo, integrarlo nei flussi di lavoro automatizzati e preparare i modelli addestrati per il deployment.

  • Orchestra l'addestramento con Vertex AI Pipelines: automatizza l'intero ciclo di vita dei job di addestramento, dalla preparazione dei dati alla registrazione dei modelli, utilizzando le pipeline che hanno come target il cluster gestito.
  • Monitora ed esegui il debug dei job di addestramento: monitora l'avanzamento e l'utilizzo delle risorse e identifica i problemi relativi ai job di addestramento distribuiti in esecuzione sul cluster.
  • Esegui il deployment del modello per l'inferenza: dopo aver addestrato e registrato i modelli, esegui il deployment su un endpoint Vertex AI per gestire le richieste di inferenza online su larga scala.
  • Ottimizza i costi: rivedi regolarmente l'utilizzo del cluster ed eliminalo quando non è in uso attivo per ridurre al minimo la fatturazione dell'hardware riservato.