Quando crei una risorsa permanente, il servizio di addestramento trova innanzitutto le risorse nel pool di risorse di Compute Engine in base alle specifiche che hai fornito, quindi esegue automaticamente il provisioning di un cluster a lunga esecuzione. Questa pagina mostra come creare una risorsa permanente per l'esecuzione di job di addestramento personalizzati utilizzando la console Google Cloud, Google Cloud CLI, l'SDK Vertex AI per Python 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 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 riuscire a ottenere questa autorizzazione anche con i 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 console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Risorse permanenti.
Fai clic su Crea cluster.
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.
Fai clic su Continua.
Configura le risorse di computing per il cluster come segue:
- Fai clic su Pool di worker 1.
Seleziona la scheda della famiglia di macchine che vuoi utilizzare e configura il pool di worker come segue:
Uso generico
Le VM per uso generico offrono il miglior rapporto prezzo/prestazioni 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 che devono essere presenti nel pool di worker.
- Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo configurato 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 che devono essere presenti nel pool di worker.
- Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo configurato di repliche, se necessario.
Ottimizzata per la memoria
Le VM ottimizzate per la memoria sono ideali per carichi di lavoro che richiedono molta memoria, poiché 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.
- Dimensione disco: inserisci le dimensioni del disco che preferisci.
- Numero minimo di repliche: inserisci il numero minimo di repliche che devono essere presenti nel pool di worker.
- Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo configurato di repliche, se necessario.
GPU
Queste VM ottimizzate per l'acceleratore sono ideali per carichi di lavoro 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 i 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 che devono essere presenti nel pool di worker.
- Numero massimo di repliche: (facoltativo) inserisci il numero massimo di repliche consentite nel pool di worker. Se specificato, il pool di worker scala automaticamente il numero di repliche fino al numero massimo configurato di repliche, se necessario.
Fai clic su Fine.
(Facoltativo) Per aggiungere altri pool di worker, fai clic su Aggiungi pool di worker.
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
.
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 tramite la riga di comando
o utilizzare il flag --config
per specificare il percorso di un file YAML che
contiene le configurazioni.
Prima di utilizzare qualsiasi dato di comando riportato 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 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: tipo di VM da utilizzare. Per un elenco delle VM supportate, vedi Tipi di macchine.
Questo campo corrisponde al campo
machineSpec.machineType
nel messaggio dell'APIResourcePool
. - 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 al campo
machineSpec.acceleratorType
nel messaggio dell'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
quando si crea questo pool di risorse. Questo campo corrisponde al campo
replicaCount
nel messaggio dell'APIResourcePool
. Questo campo è obbligatorio se non specifichi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT (Facoltativo) Il numero minimo di repliche fino a cui è possibile fare lo scale down della scalabilità automatica per questo pool di risorse. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi obbligatori per abilitare la scalabilità automatica in questo pool di risorse.
- MAX_REPLICA_COUNT: (facoltativo) il numero massimo di repliche di cui è possibile fare lo scale up della scalabilità automatica per questo pool di risorse. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi obbligatori 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 dell'APIResourcePool
. I valori accettati sono:pd-standard
(valore predefinito)pd-ssd
- BOOT_DISK_SIZE_GB: (facoltativo) la dimensione 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 dell'APIResourcePool
. - CONFIG: percorso del file di configurazione YAML della risorsa permanente. 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, questi ultimi sostituiscono 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 questo seguente 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 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 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 nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Vertex AI.
Per eseguire l'autenticazione su Vertex AI, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 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, consulta Disponibilità delle funzionalità.
- PERSISTENT_RESOURCE_ID: l'ID della risorsa permanente.
- DISPLAY_NAME (Facoltativo) Il nome visualizzato della risorsa permanente.
- MACHINE_TYPE: tipo di VM da utilizzare. Per un elenco delle VM supportate, vedi Tipi di macchine.
Questo campo corrisponde al campo
machineSpec.machineType
nel messaggio dell'APIResourcePool
. - 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 al campo
machineSpec.acceleratorType
nel messaggio dell'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
quando si crea questo pool di risorse. Questo campo corrisponde al campo
replicaCount
nel messaggio dell'APIResourcePool
. Questo campo è obbligatorio se non specifichi MIN_REPLICA_COUNT e MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT (Facoltativo) Il numero minimo di repliche fino a cui è possibile fare lo scale down della scalabilità automatica per questo pool di risorse. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi obbligatori per abilitare la scalabilità automatica in questo pool di risorse.
- MAX_REPLICA_COUNT: (facoltativo) il numero massimo di repliche di cui è possibile fare lo scale up della scalabilità automatica per questo pool di risorse. MIN_REPLICA_COUNT e MAX_REPLICA_COUNT sono entrambi obbligatori 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 dell'APIResourcePool
. I valori accettati sono:pd-standard
(valore predefinito)pd-ssd
- BOOT_DISK_SIZE_GB: (facoltativo) la dimensione 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 dell'APIResourcePool
.
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
Le risorse scarse come le GPU A100 potrebbero esaurirsi, il che può causare errori permanenti nella creazione delle risorse quando non sono disponibili risorse 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.
Passaggi successivi
- Esegui job di addestramento su una risorsa permanente.
- Scopri di più sulle risorse permanenti.
- Recuperare informazioni su una risorsa permanente.
- Riavvia una risorsa permanente.
- Elimina una risorsa permanente.