Quando crei una risorsa permanente, il servizio di addestramento trova innanzitutto le risorse del pool di risorse 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 l'esecuzione dei job di addestramento personalizzato utilizzando l'API Vertex AI o Google Cloud CLI.
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per creare una risorsa permanente,
chiedi all'amministratore di concederti il 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 l'autorizzazione aiplatform.persistentResources.create
, necessaria per creare una risorsa permanente.
Potresti anche essere in grado di 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.
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
.
La scalabilità automatica può essere abilitata o disabilitata per ogni pool di risorse. 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 che contiene le configurazioni.
Prima di utilizzare uno qualsiasi dei dati del comando riportati di seguito, apporta 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 la risorsa permanente. Per un elenco delle regioni supportate, vedi Disponibilità della 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 macchina.
Questo campo corrisponde al campo
machineSpec.machineType
nel messaggio APIResourcePool
. - ACCELERATOR_TYPE: (facoltativo) il tipo di GPU da collegare a ogni VM nel pool di risorse. Per un elenco delle GPU supportate, consulta la pagina dedicata alle GPU. Questo campo corrisponde al campo
machineSpec.acceleratorType
nel messaggio APIResourcePool
. - ACCELERATOR_COUNT: (facoltativo) il numero di GPU da collegare a ogni VM nel pool di risorse. Il valore predefinito è
1
. Questo campo corrisponde al campomachineSpec.acceleratorCount
nel messaggio APIResourcePool
. - REPLICA_COUNT: il numero di repliche da creare durante la creazione di questo pool di risorse. Questo campo corrisponde al campo
replicaCount
nel messaggio APIResourcePool
. Questo campo è obbligatorio se non stai specificando MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (facoltativo) numero minimo di repliche a cui è possibile fare lo scale down della scalabilità automatica per questo pool di risorse. Sia MIN_REPLICA_COUNT che MAX_REPLICA_COUNT sono necessari per abilitare la scalabilità automatica in questo pool di risorse.
- MAX_REPLICA_COUNT: (facoltativo) numero massimo di repliche a cui è possibile fare lo scale up con la scalabilità automatica per questo pool di risorse. Sia MIN_REPLICA_COUNT che MAX_REPLICA_COUNT sono 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 campo
diskSpec.bootDiskType
nel messaggio APIResourcePool
. I valori accettati 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 accettati sono da
100
(valore predefinito) a64000
. Questo campo corrisponde al campodiskSpec.bootDiskSizeGb
nel messaggio APIResourcePool
. - CONFIG: percorso del file di configurazione YAML delle risorse permanenti. Questo file deve contenere un elenco di pool di risorse. Se un'opzione è specificata sia nel file di configurazione sia negli argomenti della riga di comando, gli argomenti della riga di comando sostituiscono il 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 seguente:
Linux, macOS o Cloud Shell
gcloud beta 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 beta 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 beta 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 [http://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 beta ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789
Esempio di comando gcloud
:
gcloud beta 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_K80,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 opzioni di configurazione che non sono disponibili negli
esempi precedenti, puoi utilizzare il flag --config
per specificare il percorso di un
file config.yaml
nel tuo ambiente locale contenente i campi di
persistentResources
. Ad esempio:
gcloud beta ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG
REST
Una risorsa permanente può avere uno o più pool di risorse (machine_spec
) e la scalabilità automatica può essere abilitata o disabilitata per ogni pool di risorse.
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 la risorsa permanente. Per un elenco delle regioni supportate, vedi Disponibilità della 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 macchina.
Questo campo corrisponde al campo
machineSpec.machineType
nel messaggio APIResourcePool
. - ACCELERATOR_TYPE: (facoltativo) il tipo di GPU da collegare a ogni VM nel pool di risorse. Per un elenco delle GPU supportate, consulta la pagina dedicata alle GPU. Questo campo corrisponde al campo
machineSpec.acceleratorType
nel messaggio APIResourcePool
. - ACCELERATOR_COUNT: (facoltativo) il numero di GPU da collegare a ogni VM nel pool di risorse. Il valore predefinito è
1
. Questo campo corrisponde al campomachineSpec.acceleratorCount
nel messaggio APIResourcePool
. - REPLICA_COUNT: il numero di repliche da creare durante la creazione di questo pool di risorse. Questo campo corrisponde al campo
replicaCount
nel messaggio APIResourcePool
. Questo campo è obbligatorio se non stai specificando MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (facoltativo) numero minimo di repliche a cui è possibile fare lo scale down della scalabilità automatica per questo pool di risorse. Sia MIN_REPLICA_COUNT che MAX_REPLICA_COUNT sono necessari per abilitare la scalabilità automatica in questo pool di risorse.
- MAX_REPLICA_COUNT: (facoltativo) numero massimo di repliche a cui è possibile fare lo scale up con la scalabilità automatica per questo pool di risorse. Sia MIN_REPLICA_COUNT che MAX_REPLICA_COUNT sono 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 campo
diskSpec.bootDiskType
nel messaggio APIResourcePool
. I valori accettati 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 accettati sono da
100
(valore predefinito) a64000
. Questo campo corrisponde al campodiskSpec.bootDiskSizeGb
nel messaggio APIResourcePool
.
Metodo HTTP e URL:
POST http://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID
Corpo JSON 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.v1beta1.CreatePersistentResourceOperationMetadata", "genericMetadata": { "createTime": "2023-02-08T21:17:15.009668Z", "updateTime": "2023-02-08T21:17:15.009668Z" } } }
Quantità di risorse disponibile
È possibile che sia disponibile una scorta di risorse scarse come le GPU A100, che possono causare errori permanenti nella creazione delle risorse quando non sono disponibili risorse nell'area geografica specificata. In questo caso, puoi provare a ridurre il numero di repliche, passare a un tipo di acceleratore diverso o riprovare durante le ore non di punta.
Passaggi successivi
- Esegui job di addestramento su una risorsa permanente.
- Scopri di più sulla risorsa permanente.
- Ottenere informazioni su una risorsa permanente.
- Elimina una risorsa permanente.