Gestisci cluster

Se ti interessano i cluster di addestramento di Gemini Enterprise Agent Platform, contatta il tuo rappresentante di vendita per l'accesso.

Una volta eseguito il deployment di un cluster, puoi modificarlo o rimuoverlo utilizzando i seguenti endpoint dell'API Agent Platform:

  • Update: modifica una configurazione del cluster esistente.
  • Delete: rimuove definitivamente un cluster e le relative risorse.

L'aggiornamento di un cluster è disponibile solo tramite l'API Agent Platform. Puoi eliminare un cluster dall'API Agent Platform o dalla Google Cloud console.

Per istruzioni su come elencare tutti i cluster o visualizzare i singoli cluster, vedi Visualizzare i cluster.

Autenticazione

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

Aggiorna un cluster

UPDATE_PAYLOAD specifica il percorso locale di un file JSON che definisce l'oggetto completo 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 (stringa, facoltativo): una FieldMask che specifica i campi della risorsa del 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:

    • labels
    • 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
  • updateMode (enum, facoltativo): specifica la modalità di aggiornamento. I valori possibili sono:

    • UPDATE_MODE_UNSPECIFIED: il valore predefinito, trattato come USER_AND_SERVICE.
    • USER_ONLY: applica solo le modifiche ai campi specificate dall'utente nella richiesta. Il servizio non aggiornerà i campi gestiti dal servizio, come gli script di avvio, prolog o epilog. Inoltre, ogni pool di nodi rimane sull'immagine su cui è attualmente in esecuzione, a meno che tu non imposti node_image personalmente, pertanto un aggiornamento USER_ONLY che omette node_image non ricreerà i nodi.
    • USER_AND_SERVICE: applica le modifiche ai campi specificate dall'utente e consente al servizio di aggiornare i campi gestiti dal servizio.
    Ti consigliamo di utilizzare USER_AND_SERVICE per assicurarti che il cluster sia aggiornato.

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&updateMode=USER_AND_SERVICE'
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.

Selezione dell'immagine del nodo

Poiché node_pools viene sostituito completamente, un pool di nodi nel payload di aggiornamento che omette node_image viene risolto nell'immagine predefinita corrente per il tipo di macchina. Il valore predefinito cambia nel tempo, quindi l'omissione di node_image sposta il pool di nodi all'ultima immagine disponibile, che spesso è ciò che vuoi: vengono applicate correzioni di driver, sicurezza e bug.

Per mantenere un pool di nodi su un'immagine specifica durante gli aggiornamenti, imposta node_image su quell'immagine. Se leggi il valore corrente da Get per inviarlo di nuovo, tieni presente che un cluster che non è mai stato aggiornato segnala un node_image vuoto.

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 viene applicata 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.

Elimina un cluster

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

Questo comando restituisce un'operazione a lunga esecuzione in caso di successo, 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 Gemini Enterprise Agent Platform ti consente di ottimizzarne l'utilizzo, integrarlo nei workflow automatizzati e preparare i modelli addestrati per il deployment.

  • Orchestra l'addestramento con le pipeline di Gemini Enterprise Agent Platform: 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 di Gemini Enterprise Agent Platform 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.