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.
gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
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
-
updateMask(stringa, facoltativo): un FieldMask che specifica quali campi della risorsa cluster di sviluppo del modello aggiornare. Vengono modificati solo i campi elencati nel fileupdateMask.I seguenti campi all'interno 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 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'elenco completo 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 comando seguente:
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
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.