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.
gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
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
-
updateMask(string, optional): Una FieldMask che specifica i campi della risorsa cluster di sviluppo del modello da aggiornare. Vengono modificati solo i campi elencati inupdateMaskvengono modificati.I seguenti campi della risorsa
ModelDevelopmentClusterpossono essere specificati inupdateMask:node_poolsorchestrator_spec.slurm_spec.partitionsorchestrator_spec.slurm_spec.login_node_pool_idorchestrator_spec.slurm_spec.prolog_bash_scriptsorchestrator_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'
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.
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
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.