Crea una risorsa permanente

Quando crei una risorsa permanente, il servizio di addestramento trova prima le risorse nel pool di risorse di Compute Engine in base alle specifiche che hai fornito, quindi esegue il provisioning di un cluster a lunga esecuzione. Questa pagina mostra come creare una risorsa permanente per eseguire i job di addestramento serverless utilizzando la Google Cloud console, Google Cloud CLI e l'API REST.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per creare una risorsa permanente, chiedi all'amministratore di concederti il ruolo IAM Amministratore di Vertex AI (roles/aiplatform.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l' aiplatform.persistentResources.create autorizzazione, necessaria per creare una risorsa permanente.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Crea una risorsa permanente

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

Console

Per creare una risorsa permanente utilizzando la Google Cloud console:

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

    Vai a Risorse permanenti

  2. Fai clic su Crea cluster.

  3. Configura il cluster nel modo seguente:

    • Nome:inserisci un nome per il cluster.
    • Descrizione : (facoltativo) 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 nel modo seguente:

    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 una varietà di workload.

      • Serie:seleziona una serie di macchine.
      • Tipo di macchina:seleziona un tipo di macchina.
      • Tipo di disco:seleziona Disco standard o Disco SSD.
      • Dimensioni del disco:inserisci le dimensioni del disco che vuoi.
      • Numero minimo di repliche:inserisci il numero minimo di repliche da avere nel pool di worker.
      • Numero massimo di repliche : (facoltativo) inserisci il numero massimo di repliche consentito nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo di repliche configurato, in base alle esigenze.

      Ottimizzata per il calcolo

      Le VM ottimizzate per il calcolo offrono le massime prestazioni per core e sono ottimizzate per workload 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.
      • Dimensioni del disco:inserisci le dimensioni del disco che vuoi.
      • Numero minimo di repliche:inserisci il numero minimo di repliche da avere nel pool di worker.
      • Numero massimo di repliche : (facoltativo) inserisci il numero massimo di repliche consentito nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo di repliche configurato, in base alle esigenze.

      Ottimizzata per la memoria

      Le VM ottimizzate per la memoria sono ideali per workload che richiedono molta memoria, offrono più memoria per core rispetto ad altre famiglie di macchine, con un massimo di 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.
      • Dimensioni del disco:inserisci le dimensioni del disco che vuoi.
      • Numero minimo di repliche:inserisci il numero minimo di repliche da avere nel pool di worker.
      • Numero massimo di repliche : (facoltativo) inserisci il numero massimo di repliche consentito nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo di repliche configurato, in base alle esigenze.

      GPU

      Queste VM ottimizzate per l'acceleratore sono ideali per workload di calcolo CUDA (Compute Unified Device Architecture) altamente parallelizzati, come il machine learning (ML) e il computing ad alte prestazioni (HPC). Questa famiglia è l'opzione migliore per workload 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.
      • Dimensioni del disco:inserisci le dimensioni del disco che vuoi.
      • Numero minimo di repliche:inserisci il numero minimo di repliche da avere nel pool di worker.
      • Numero massimo di repliche : (facoltativo) inserisci il numero massimo di repliche consentito nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo di repliche configurato, in base alle esigenze.
    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ù pool di risorse in una risorsa permanente, specifica più flag --resource-pool-spec.

Ogni pool di risorse può avere la scalabilità automatica abilitata o disabilitata. Per abilitare la scalabilità automatica, specifica min_replica_count e max_replica_count.

Puoi specificare tutte le configurazioni del pool di risorse come parte della riga di comando o utilizzare il flag --config per specificare il percorso di un file YAML contenente le configurazioni.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del progetto in cui vuoi creare la risorsa permanente. Google Cloud
  • LOCATION: la regione in cui vuoi creare la risorsa permanente. Per un elenco delle regioni supportate, consulta Disponibilità delle funzionalità.
  • PERSISTENT_RESOURCE_ID: l'ID della risorsa permanente.
  • DISPLAY_NAME: (facoltativo) il nome visualizzato della risorsa permanente.
  • MACHINE_TYPE: il tipo di VM da utilizzare. Per un elenco delle VM supportate, consulta Tipi di macchine. Questo campo corrisponde al campo machineSpec.machineType nel ResourcePool messaggio API.
  • 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 a il campo machineSpec.acceleratorType nel messaggio API ResourcePool.
  • ACCELERATOR_COUNT: (facoltativo) il numero di GPU da collegare a ogni VM nel pool di risorse. Il valore predefinito è 1. Questo campo corrisponde al campo machineSpec.acceleratorCount nel messaggio API ResourcePool.
  • REPLICA_COUNT: il numero di repliche da creare quando crei questo pool di risorse. Questo campo corrisponde al replicaCount campo in the ResourcePool messaggio API. Questo campo è obbligatorio se non specifichi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: (facoltativo) il numero minimo di repliche a cui la scalabilità automatica può fare lo scale down per questo pool di risorse. Both MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi necessari per abilitare la scalabilità automatica in questo pool di risorse.
  • MAX_REPLICA_COUNT: (facoltativo) il numero massimo di repliche a cui la scalabilità automatica può fare lo scale up per questo pool di risorse. Both MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi necessari per abilitare la scalabilità automatica in questo pool di risorse.
  • BOOT_DISK_TYPE: (facoltativo) il tipo di disco da utilizzare come disco di avvio di ogni VM nel pool di risorse. Questo campo corrisponde al diskSpec.bootDiskType campo nel ResourcePool messaggio API. I valori accettabili includono:
    • pd-standard (valore predefinito)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (facoltativo) le dimensioni del disco in GiB per il disco di avvio di ogni VM nel pool di risorse. I valori accettabili vanno da 100 (valore predefinito) a 64000. Questo campo corrisponde al diskSpec.bootDiskSizeGb campo nel ResourcePool messaggio API.
  • CONFIG: il percorso del file di configurazione YAML della risorsa permanente. Questo file deve contenere un elenco di ResourcePool. Se un'opzione è specificata sia nel file di configurazione sia negli argomenti della riga di comando, questi ultimi prevalgono sul file di configurazione. Tieni presente che le chiavi con trattini bassi non sono valide.

    Esempio di file di configurazione YAML:

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

Esegui questo comando:

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 gcloud avanzate

Per specificare opzioni di configurazione non disponibili negli esempi precedenti, puoi utilizzare il flag --config per indicare il percorso di un file config.yaml nell'ambiente locale contenente 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 di configurazione Python nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell' API Python di Vertex AI.

Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Per creare una risorsa permanente da utilizzare con un'esecuzione della pipeline, imposta il enable_custom_service_account parametro su True nell'oggetto ResourceRuntimeSpec durante la creazione della risorsa permanente.

from google.cloud.aiplatform.preview import persistent_resource
from google.cloud.aiplatform_v1beta1.types.persistent_resource import ResourcePool
from google.cloud.aiplatform_v1beta1.types.machine_resources import MachineSpec

# Create the persistent resource. This method returns the created resource.

my_example_resource = persistent_resource.PersistentResource.create(
    persistent_resource_id='PERSISTENT_RESOURCE_ID',
    display_name='DISPLAY_NAME',
    resource_pools=[
        ResourcePool(
            machine_spec=MachineSpec(
                machine_type='MACHINE_TYPE'
            ),
            replica_count=REPLICA_COUNT
        )
    ],
    enable_custom_service_account=True,
)

# Setting `sync` to `False` makes the method is non-blocking and the resource
# object returned syncs when the method completes.

SYNC=False

if not SYNC:
    my_example_resource.wait()

Sostituisci quanto segue:

  • PERSISTENT_RESOURCE_ID: un ID univoco definito dall'utente per la risorsa permanente. Deve iniziare con una lettera, terminare con una lettera o un numero e contenere solo lettere minuscole, numeri e trattini (-).
  • DISPLAY_NAME: (facoltativo) Il nome visualizzato della risorsa permanente.
  • MACHINE_TYPE: il tipo di macchina virtuale (VM) da utilizzare. Per un elenco delle VM supportate, consulta Tipi di macchine. Questo campo corrisponde al campo machineSpec.machineType in
  • REPLICA_COUNT: il numero di repliche da creare quando crei questo pool di risorse.

REST

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

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

  • PROJECT_ID: l'ID del progetto in cui vuoi creare la risorsa permanente. Google Cloud
  • LOCATION: la regione in cui vuoi creare la risorsa permanente. Per un elenco delle regioni supportate, consulta Disponibilità delle funzionalità.
  • PERSISTENT_RESOURCE_ID: l'ID della risorsa permanente.
  • DISPLAY_NAME: (facoltativo) il nome visualizzato della risorsa permanente.
  • MACHINE_TYPE: il tipo di VM da utilizzare. Per un elenco delle VM supportate, consulta Tipi di macchine. Questo campo corrisponde al campo machineSpec.machineType nel ResourcePool messaggio API.
  • 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 a il campo machineSpec.acceleratorType nel messaggio API ResourcePool.
  • ACCELERATOR_COUNT: (facoltativo) il numero di GPU da collegare a ogni VM nel pool di risorse. Il valore predefinito è 1. Questo campo corrisponde al campo machineSpec.acceleratorCount nel messaggio API ResourcePool.
  • REPLICA_COUNT: il numero di repliche da creare quando crei questo pool di risorse. Questo campo corrisponde al replicaCount campo in the ResourcePool messaggio API. Questo campo è obbligatorio se non specifichi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: (facoltativo) il numero minimo di repliche a cui la scalabilità automatica può fare lo scale down per questo pool di risorse. Both MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi necessari per abilitare la scalabilità automatica in questo pool di risorse.
  • MAX_REPLICA_COUNT: (facoltativo) il numero massimo di repliche a cui la scalabilità automatica può fare lo scale up per questo pool di risorse. Both MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi necessari per abilitare la scalabilità automatica in questo pool di risorse.
  • BOOT_DISK_TYPE: (facoltativo) il tipo di disco da utilizzare come disco di avvio di ogni VM nel pool di risorse. Questo campo corrisponde al diskSpec.bootDiskType campo nel ResourcePool messaggio API. I valori accettabili includono:
    • pd-standard (valore predefinito)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (facoltativo) le dimensioni del disco in GiB per il disco di avvio di ogni VM nel pool di risorse. I valori accettabili vanno da 100 (valore predefinito) a 64000. Questo campo corrisponde al diskSpec.bootDiskSizeGb campo nel ResourcePool messaggio API.

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 di queste 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"
    }
  }
}

Esaurimento delle scorte di risorse

Potrebbe verificarsi un esaurimento delle scorte per risorse scarse come le GPU A100, che può causare un errore di creazione della risorsa permanente quando non è disponibile alcuna risorsa nella regione specificata. In questo caso, puoi provare a ridurre il numero di repliche, passare a un tipo di acceleratore diverso, riprovare durante le ore non di punta o provare un'altra regione.

Responsabilità condivisa

La protezione dei workload su Vertex AI è una responsabilità condivisa. Sebbene Vertex AI aggiorni regolarmente le configurazioni dell'infrastruttura per risolvere le vulnerabilità di sicurezza, Vertex AI non esegue automaticamente l'upgrade dei cluster Ray on Vertex AI e delle risorse permanenti esistenti per evitare di interrompere i workload in esecuzione. Pertanto, sei responsabile di attività come le seguenti:

  1. Elimina e ricrea periodicamente i cluster Ray on Vertex AI e le risorse permanenti per utilizzare le versioni più recenti dell'infrastruttura. Vertex AI consiglia di ricreare i cluster e le risorse permanenti almeno una volta ogni 30 giorni.
  2. Configura correttamente le immagini personalizzate che utilizzi.

Per saperne di più, consulta Responsabilità condivisa.

Passaggi successivi