Gestisci il cluster

Se ti interessano i cluster di addestramento 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 API REST.

  • List: Visualizza tutti i cluster attivi nel tuo 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"'

Elenca i 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, facoltativo): il numero massimo di cluster da restituire nella risposta. Il servizio potrebbe restituire un numero di elementi inferiore a questo valore, anche se ne esistono altri. Se non specificato, 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.
Il seguente esempio 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 potrebbe anche includere una stringa nextPageToken.

Recupera un cluster:

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

Aggiorna un cluster:

UPDATE_PAYLOAD specifica il percorso locale di un file JSON che definisce la versione completa di ModelDevelopmentCluster che vuoi aggiornare.

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 (stringa, facoltativo): un FieldMask che specifica quali campi della risorsa cluster di sviluppo del modello aggiornare. Vengono modificati solo i campi elencati nel file updateMask.

    I seguenti campi all'interno 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 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'elenco completo 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 comando seguente:

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 immediato (o entro il tempo di sincronizzazione di 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.

Elimina 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 Vertex AI ti consente di ottimizzarne l'utilizzo, integrarlo in 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 del modello, utilizzando 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 distribuito in esecuzione sul cluster.
  • Esegui il deployment del modello per l'inferenza: dopo l'addestramento e la registrazione dei modelli, esegui il deployment in 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.