Crea una risorsa permanente

Quando crei una risorsa permanente, il servizio di addestramento trova innanzitutto del pool di risorse Compute Engine in base alle specifiche fornito, quindi esegui il provisioning di un cluster a lunga esecuzione. Questa pagina mostra come creare una risorsa permanente per l'esecuzione dell'addestramento personalizzato i job utilizzando la console Google Cloud, Google Cloud CLI, l'SDK Vertex AI per Python l'API REST.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per creare una risorsa permanente, chiedi all'amministratore di concederti Ruolo IAM Amministratore Vertex AI (roles/aiplatform.admin) per il tuo progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene aiplatform.persistentResources.create, che è per creare una risorsa permanente.

Potresti anche riuscire a ottenere questa autorizzazione con ruoli personalizzati e altri ruoli predefiniti.

Crea una risorsa permanente

Seleziona una delle seguenti schede per istruzioni su come creare un risorsa.

Console

Per creare una risorsa permanente utilizzando la console Google Cloud, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Risorse permanenti.

    Vai a Risorse permanenti

  2. Fai clic su Crea cluster.

  3. Configura il cluster come segue:

    • Nome:inserisci un nome per il cluster.
    • (Facoltativo) Descrizione:inserisci una descrizione del cluster.
    • Regione:seleziona la regione in cui vuoi creare il cluster.
  4. Fai clic su Continua.

  5. Configura le risorse di computing per il cluster come segue:

    1. Fai clic su Pool di worker 1.
    2. Seleziona la scheda della famiglia di macchine che vuoi utilizzare e configura il pool di worker nel modo seguente:

      Uso generico

      Le VM per uso generico offrono il miglior rapporto prezzo/prestazioni per per diversi carichi di lavoro.

      • Serie: seleziona una serie di macchine.
      • Tipo di macchina:seleziona un tipo di macchina.
      • Tipo di disco: seleziona Disco standard o Disco SSD.
      • Dimensione disco: inserisci le dimensioni del disco che preferisci.
      • Numero minimo di repliche: inserisci il numero minimo di repliche nel pool di worker.
      • Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il worker il pool scala automaticamente il numero di repliche fino configurato il numero massimo di repliche, se necessario.

      Ottimizzata per il calcolo

      Le VM ottimizzate per il calcolo offrono le massime prestazioni per core e sono ottimizzate per carichi di lavoro ad alta intensità di calcolo.

      • Serie: seleziona una serie di macchine.
      • Tipo di macchina:seleziona un tipo di macchina.
      • Tipo di disco: seleziona Disco standard o Disco SSD.
      • Dimensione disco: inserisci le dimensioni del disco che preferisci.
      • Numero minimo di repliche: inserisci il numero minimo di repliche nel pool di worker.
      • Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il worker il pool scala automaticamente il numero di repliche fino configurato il numero massimo di repliche, se necessario.

      Ottimizzata per la memoria

      Le VM ottimizzate per la memoria sono ideali per carichi di lavoro che richiedono molta memoria, offrendo più memoria per core rispetto ad altre famiglie di macchine, con un fino a 12 TB di memoria.

      • Serie: seleziona una serie di macchine.
      • Tipo di macchina:seleziona un tipo di macchina.
      • Tipo di disco: seleziona Disco standard o Disco SSD.
      • Dimensione disco: inserisci le dimensioni del disco che preferisci.
      • Numero minimo di repliche: inserisci il numero minimo di repliche nel pool di worker.
      • Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il worker il pool scala automaticamente il numero di repliche fino configurato il numero massimo di repliche, se necessario.

      GPU

      Queste VM ottimizzate per l'acceleratore sono ideali per il caricamento in contemporanea carichi di lavoro di calcolo CUDA (Compute Unified Device Architecture), come come machine learning (ML) e computing ad alte prestazioni (HPC). Questo è l'opzione migliore per carichi di lavoro che richiedono GPU.

      • Tipo di GPU:seleziona il tipo di GPU che vuoi utilizzare.
      • Numero di GPU: inserisci il numero di GPU che vuoi utilizzare.
      • Serie: seleziona una serie di macchine.
      • Tipo di macchina:seleziona un tipo di macchina.
      • Tipo di disco: seleziona Disco standard o Disco SSD.
      • Dimensione disco: inserisci le dimensioni del disco che preferisci.
      • Numero minimo di repliche: inserisci il numero minimo di repliche nel pool di worker.
      • Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il worker il pool scala automaticamente il numero di repliche fino configurato il numero massimo di repliche, se necessario.
    3. Fai clic su Fine.

    4. (Facoltativo) Per aggiungere altri pool di worker, fai clic su Aggiungi pool di worker.

  6. Fai clic su Crea.

gcloud

Una risorsa permanente può avere uno o più pool di risorse. Per creare più elementi pool di risorse in una risorsa permanente, specifica --resource-pool-spec flag.

La scalabilità automatica può essere abilitata o disabilitata per ogni pool di risorse. Per attivare la scalabilità automatica, specifica min_replica_count max_replica_count.

Puoi specificare tutte le configurazioni del pool di risorse nell'interfaccia a riga di comando oppure utilizza il flag --config per specificare il percorso di un file YAML contiene le configurazioni.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi creare la risorsa permanente.
  • LOCATION: la regione in cui vuoi creare una risorsa permanente. Per un elenco delle regioni supportate, vedi Disponibilità delle funzionalità.
  • PERSISTENT_RESOURCE_ID: l'ID del una risorsa permanente.
  • DISPLAY_NAME: (facoltativo) il nome visualizzato della una risorsa permanente.
  • MACHINE_TYPE: tipo di VM da utilizzare. Per una lista delle VM supportate, vedi Tipi di macchine. Questo campo corrisponde al campo machineSpec.machineType nella Messaggio API ResourcePool.
  • ACCELERATOR_TYPE: (facoltativo) il tipo di GPU da collegare a ogni VM nel pool di risorse. Per un elenco delle GPU supportate, consulta GPU. Questo campo corrisponde il campo machineSpec.acceleratorType nel messaggio dell'API ResourcePool.
  • ACCELERATOR_COUNT: (facoltativo) il numero di GPU da a ogni VM nel pool di risorse. Il valore predefinito è 1. Questo campo corrisponde al campo machineSpec.acceleratorCount in ResourcePool Messaggio API.
  • REPLICA_COUNT: il numero di repliche da creare quando crei questo pool di risorse. Questo campo corrisponde al campo replicaCount nel messaggio dell'API ResourcePool. Questo campo è obbligatorio se non specifichi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT.
  • (Facoltativo) MIN_REPLICA_COUNT: la soglia minima di repliche di cui è possibile fare lo scale down con la scalabilità automatica per questo pool di risorse. Entrambi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono obbligatori per l'attivazione e la scalabilità automatica su questo pool di risorse.
  • (Facoltativo) MAX_REPLICA_COUNT: la soglia massima di repliche di cui è possibile fare lo scale up con la scalabilità automatica per questo pool di risorse. Entrambi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono obbligatori per l'attivazione e la scalabilità automatica su questo pool di risorse.
  • BOOT_DISK_TYPE: (facoltativo) il tipo di disco da utilizzare per come disco di avvio di ogni VM nel pool di risorse. Questo campo corrisponde Campo diskSpec.bootDiskType nel messaggio dell'API ResourcePool. I valori accettati sono:
    • pd-standard (valore predefinito)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (facoltativo) la dimensione del disco in GiB per di avvio di ogni VM nel pool di risorse. I valori accettati sono 100 (valore predefinito) a 64000. Questo campo corrisponde al campo diskSpec.bootDiskSizeGb nel messaggio dell'API ResourcePool.
  • CONFIG: percorso della risorsa permanente YAML di configurazione del deployment. Questo file deve contenere un elenco di pool di risorse. Se viene specificata un'opzione nel file di configurazione e negli argomenti della riga di comando, il file di configurazione. Tieni presente che le chiavi con trattini bassi non sono valide.

    File di configurazione YAML di esempio:

    resourcePoolSpecs:
      machineSpec:
        machineType: n1-standard-4
      replicaCount: 1
        

Esegui la persone che seguo :

Linux, macOS o Cloud Shell

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --display-name=DISPLAY_NAME \
    --project=PROJECT_ID \
    --region=LOCATION \
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows (PowerShell)

gcloud ai persistent-resources create `
    --persistent-resource-id=PERSISTENT_RESOURCE_ID `
    --display-name=DISPLAY_NAME `
    --project=PROJECT_ID `
    --region=LOCATION `
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows (cmd.exe)

gcloud ai persistent-resources create ^
    --persistent-resource-id=PERSISTENT_RESOURCE_ID ^
    --display-name=DISPLAY_NAME ^
    --project=PROJECT_ID ^
    --region=LOCATION ^
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Dovresti ricevere una risposta simile alla seguente:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully.

You may view the status of your PersistentResource create operation with the command

  $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789

Esempio di comando gcloud:

gcloud ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_T4,accelerator-count=1,disk-type=pd-standard,disk-size=200" \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"

Configurazioni avanzate di gcloud

Se vuoi specificare le opzioni di configurazione che non sono disponibili nel esempi precedenti, puoi utilizzare il flag --config per specificare il percorso di config.yaml nel tuo ambiente locale che contiene i campi di persistentResources. Ad esempio:

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --project=PROJECT_ID \
    --region=LOCATION \
    --config=CONFIG

Python

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Python Vertex AI documentazione di riferimento.

Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

# Create the persistent resource. This method returns the created resource.
# Setting `sync` to `FALSE` makes the method is non-blocking and the resource
# object returned syncs when the method completes.
my_example_resource = persistent_resource.PersistentResource.create(
    persistent_resource_id=EXAMPLE_PERSISTENT_RESOURCE_ID,
    display_name=EXAMPLE_PERSISTENT_RESOURCE_NAME,
    resource_pools=[
        EXAMPLE_RESOURCE_POOL # EXAMPLE_AUTOSCALED_RESOURCE_POOL
    ],
    labels=EXAMPLE_LABELS,
    sync=SYNC,
)

if not SYNC:
    my_example_resource.wait()

REST

Una risorsa permanente può avere uno o più pool di risorse (machine_spec) e ogni pool di risorse può avere scalabilità automatica abilitato o disabilitato.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi creare la risorsa permanente.
  • LOCATION: la regione in cui vuoi creare una risorsa permanente. Per un elenco delle regioni supportate, vedi Disponibilità delle funzionalità.
  • PERSISTENT_RESOURCE_ID: l'ID del una risorsa permanente.
  • DISPLAY_NAME: (facoltativo) il nome visualizzato della una risorsa permanente.
  • MACHINE_TYPE: tipo di VM da utilizzare. Per una lista delle VM supportate, vedi Tipi di macchine. Questo campo corrisponde al campo machineSpec.machineType nella Messaggio API ResourcePool.
  • ACCELERATOR_TYPE: (facoltativo) il tipo di GPU da collegare a ogni VM nel pool di risorse. Per un elenco delle GPU supportate, consulta GPU. Questo campo corrisponde il campo machineSpec.acceleratorType nel messaggio dell'API ResourcePool.
  • ACCELERATOR_COUNT: (facoltativo) il numero di GPU da a ogni VM nel pool di risorse. Il valore predefinito è 1. Questo campo corrisponde al campo machineSpec.acceleratorCount in ResourcePool Messaggio API.
  • REPLICA_COUNT: il numero di repliche da creare quando crei questo pool di risorse. Questo campo corrisponde al campo replicaCount nel messaggio dell'API ResourcePool. Questo campo è obbligatorio se non specifichi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT.
  • (Facoltativo) MIN_REPLICA_COUNT: la soglia minima di repliche di cui è possibile fare lo scale down con la scalabilità automatica per questo pool di risorse. Entrambi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono obbligatori per l'attivazione e la scalabilità automatica su questo pool di risorse.
  • (Facoltativo) MAX_REPLICA_COUNT: la soglia massima di repliche di cui è possibile fare lo scale up con la scalabilità automatica per questo pool di risorse. Entrambi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono obbligatori per l'attivazione e la scalabilità automatica su questo pool di risorse.
  • BOOT_DISK_TYPE: (facoltativo) il tipo di disco da utilizzare per come disco di avvio di ogni VM nel pool di risorse. Questo campo corrisponde Campo diskSpec.bootDiskType nel messaggio dell'API ResourcePool. I valori accettati sono:
    • pd-standard (valore predefinito)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (facoltativo) la dimensione del disco in GiB per di avvio di ogni VM nel pool di risorse. I valori accettati sono 100 (valore predefinito) a 64000. Questo campo corrisponde al campo diskSpec.bootDiskSizeGb nel messaggio dell'API ResourcePool.

Metodo HTTP e URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID

Corpo JSON della richiesta:

{
  "display_name": "DISPLAY_NAME",
  "resource_pools": [
    {
      "machine_spec": {
        "machine_type": "MACHINE_TYPE",
        "accelerator_type": "ACCELERATOR_TYPE",
        "accelerator_count": ACCELERATOR_COUNT
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      },
      "disk_spec": {
        "boot_disk_type": "BOOT_DISK_TYPE",
        "boot_disk_size_gb": BOOT_DISK_SIZE_GB
      }
    }
  ]
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-02-08T21:17:15.009668Z",
      "updateTime": "2023-02-08T21:17:15.009668Z"
    }
  }
}

Disponibilità delle risorse

Potrebbe esserci disponibilità per risorse scarse come le GPU A100, il che può portare errore di creazione di risorse permanente quando non sono disponibili risorse nella regione da te specificato. In questo caso, puoi provare a ridurre il numero di repliche, passa a un tipo di acceleratore diverso, riprova durante le ore non di punta o prova in un'altra regione.

Passaggi successivi