Quando esegui l'addestramento personalizzato, il codice di addestramento viene eseguito su uno o più di macchine virtuali (VM). Puoi configurare i tipi di VM da utilizzare di addestramento: l'utilizzo di VM con più risorse di calcolo può accelerare l'addestramento lavori con set di dati più grandi, ma possono anche richiedere addestramento maggiore aggiuntivi.
In alcuni casi, puoi utilizzare le GPU anche per accelerare l'addestramento. Le GPU sono soggette costi aggiuntivi.
Facoltativamente, puoi anche personalizzare il tipo e le dimensioni delle VM di addestramento avvio i dischi permanenti.
Questo documento descrive le diverse risorse di computing che puoi utilizzare per addestramento personalizzato e come configurarli.
Dove specificare le risorse di computing
Specifica i dettagli di configurazione all'interno di un
WorkerPoolSpec
In base a come
esegui l'addestramento personalizzato, inserisci questo WorkerPoolSpec
in uno dei seguenti
Campi API:
Se crei un
CustomJob
, specificaWorkerPoolSpec
aCustomJob.jobSpec.workerPoolSpecs
.Se utilizzi Google Cloud CLI, puoi utilizzare
--worker-pool-spec
o--config
sulla bandieragcloud ai custom-jobs create
: comando per specificare il worker piscine.Scopri di più sulla creazione di un
CustomJob
.Se crei un
HyperparameterTuningJob
, specificaWorkerPoolSpec
inHyperparameterTuningJob.trialJobSpec.workerPoolSpecs
.Se utilizzi gcloud CLI, puoi utilizzare
--config
flag ingcloud ai hpt-tuning-jobs create
per specificare pool di worker.Scopri di più su la creazione di un
HyperparameterTuningJob
.Se crei un
TrainingPipeline
di archiviazione senza dell'ottimizzazione degli iperparametri,WorkerPoolSpec
aTrainingPipeline.trainingTaskInputs.workerPoolSpecs
.Scopri di più sulla creazione di un modello
TrainingPipeline
.Se stai creando un
TrainingPipeline
con l'ottimizzazione degli iperparametri, specificaWorkerPoolSpec
inTrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs
.
Se stai eseguendo distribuzioni addestramento, puoi utilizzare diversi impostazioni per ogni pool di worker.
Tipi di macchina
Nel tuo WorkerPoolSpec
, devi specificare uno dei seguenti tipi di macchina in
il campo machineSpec.machineType
. Ogni replica
Il pool di worker viene eseguito su una VM separata che ha il tipo di macchina specificato.
a2-ultragpu-1g
*a2-ultragpu-2g
*a2-ultragpu-4g
*a2-ultragpu-8g
*a2-highgpu-1g
*a2-highgpu-2g
*a2-highgpu-4g
*a2-highgpu-8g
*a2-megagpu-16g
*a3-highgpu-8g
*e2-standard-4
e2-standard-8
e2-standard-16
e2-standard-32
e2-highmem-2
e2-highmem-4
e2-highmem-8
e2-highmem-16
e2-highcpu-16
e2-highcpu-32
n2-standard-4
n2-standard-8
n2-standard-16
n2-standard-32
n2-standard-48
n2-standard-64
n2-standard-80
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-48
n2-highmem-64
n2-highmem-80
n2-highcpu-16
n2-highcpu-32
n2-highcpu-48
n2-highcpu-64
n2-highcpu-80
n1-standard-4
n1-standard-8
n1-standard-16
n1-standard-32
n1-standard-64
n1-standard-96
n1-highmem-2
n1-highmem-4
n1-highmem-8
n1-highmem-16
n1-highmem-32
n1-highmem-64
n1-highmem-96
n1-highcpu-16
n1-highcpu-32
n1-highcpu-64
n1-highcpu-96
c2-standard-4
c2-standard-8
c2-standard-16
c2-standard-30
c2-standard-60
ct5lp-hightpu-1t
*ct5lp-hightpu-4t
*ct5lp-hightpu-8t
*c2-standard-60
c2-standard-60
c2-standard-60
c2-standard-60
m1-ultramem-40
m1-ultramem-80
m1-ultramem-160
m1-megamem-96
g2-standard-4
*g2-standard-8
*g2-standard-12
*g2-standard-16
*g2-standard-24
*g2-standard-32
*g2-standard-48
*g2-standard-96
*cloud-tpu
*
* I tipi di macchina contrassegnati con asterischi nell'elenco precedente devono essere utilizzati con alcune GPU o TPU. Consulta le seguenti sezioni di questa guida.
Per conoscere le specifiche tecniche di ciascun tipo di macchina, consulta Documentazione di Compute Engine sulla macchina di classificazione. Per saperne di più sul costo utilizzando ciascun tipo di macchina per l'addestramento personalizzato, Prezzi.
I seguenti esempi evidenziano dove specifichi un tipo di macchina quando
crea un CustomJob
:
Console
Nella console Google Cloud, non puoi creare direttamente un CustomJob
. Tuttavia,
puoi creare un TrainingPipeline
che crea un
CustomJob
. Quando crei un
TrainingPipeline
nella console Google Cloud, specifica un tipo di macchina per
per ogni pool di worker nel passaggio Compute e prezzi, in Tipo di macchina
.
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Java 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.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Node.js 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.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Per saperne di più, leggi la guida alla creazione di una
CustomJob
.
GPU
Se hai scritto il codice di addestramento per utilizzare
GPU, puoi
configurare il pool di worker in modo che utilizzi una o più GPU su ogni VM. Per utilizzare le GPU,
deve utilizzare un tipo di macchina A2, N1 o G2. Inoltre, l'utilizzo di tipi di macchine più piccoli
come n1-highmem-2
con GPU, potrebbe causare la mancata riuscita del logging per alcuni carichi di lavoro
a causa di vincoli della CPU. Se il job di addestramento smette di restituire i log, prendi in considerazione
selezionando un tipo di macchina più grande.
Vertex AI supporta i seguenti tipi di GPU per l'addestramento personalizzato:
NVIDIA_H100_80GB
NVIDIA_A100_80GB
NVIDIA_TESLA_A100
(NVIDIA A100 da 40 GB)NVIDIA_TESLA_P4
NVIDIA_TESLA_P100
NVIDIA_TESLA_T4
NVIDIA_TESLA_V100
NVIDIA_L4
Per ulteriori informazioni sulle specifiche tecniche di ciascun tipo di GPU, leggi l'articolo Breve documentazione di Compute Engine sulle GPU per il computing carichi di lavoro standard. Per conoscere i costi di utilizzo di ogni per l'addestramento personalizzato, leggi Pricing (Prezzi).
Nel tuo WorkerPoolSpec
, specifica il tipo di GPU che vuoi utilizzare
Campo machineSpec.acceleratorType
e numero di
le GPU che devono essere utilizzate da ogni VM nel pool di worker
campo machineSpec.acceleratorCount
. Tuttavia,
le scelte per questi campi devono soddisfare le seguenti limitazioni:
Il tipo di GPU scelto deve essere disponibile nella località in cui che eseguono l'addestramento personalizzato. Non tutti i tipi di GPU sono disponibili in tutti regioni. Scopri di più sulla disponibilità a livello regionale.
Puoi utilizzare solo un determinato numero di GPU nella configurazione. Ad esempio: puoi utilizzare 2 o 4 GPU
NVIDIA_TESLA_T4
su una VM, ma non tre. Per vedere cosa I valori diacceleratorCount
sono validi per ogni tipo di GPU; consulta le tabella di compatibilità riportata di seguito.Devi assicurarti che la configurazione della GPU fornisca una quantità sufficiente CPU e memoria al tipo di macchina con cui la utilizzi. Ad esempio, se utilizza il tipo di macchina
n1-standard-32
nel tuo pool di worker, ogni VM avrà 32 CPU virtuali e 120 GB di memoria. Poiché ogni GPUNVIDIA_TESLA_V100
può fino a 12 CPU virtuali e 76 GB di memoria, è necessario utilizzare GPU per ogni VMn1-standard-32
per supportare i relativi requisiti. (2 GPU forniscono risorse insufficienti e non puoi specificare tre GPU.)La seguente tabella di compatibilità tiene conto di questo requisito.
Nota le seguenti limitazioni aggiuntive relative all'uso di GPU per l'addestramento personalizzato che differiscono dall'uso di GPU con Compute Engine:
- Una configurazione con 4 GPU
NVIDIA_TESLA_P100
fornisce solo fino a 64 GPU CPU virtuali e fino a 208 GB di memoria in tutte le regioni e le zone.
- Una configurazione con 4 GPU
La seguente tabella di compatibilità elenca i valori validi per
machineSpec.acceleratorCount
a seconda delle tue scelte per
machineSpec.machineType
e machineSpec.acceleratorType
:
Numeri validi di GPU per ogni tipo di macchina | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tipo di macchina | NVIDIA_H100_80GB |
NVIDIA_A100_80GB |
NVIDIA_TESLA_A100 |
NVIDIA_TESLA_P4 |
NVIDIA_TESLA_P100 |
NVIDIA_TESLA_T4 |
NVIDIA_TESLA_V100 |
NVIDIA_L4 |
|
a3-highgpu-8g |
8 | ||||||||
a2-ultragpu-1g |
1 | ||||||||
a2-ultragpu-2g |
2 | ||||||||
a2-ultragpu-4g |
4 | ||||||||
a2-ultragpu-8g |
8 | ||||||||
a2-highgpu-1g |
1 | ||||||||
a2-highgpu-2g |
2 | ||||||||
a2-highgpu-4g |
4 | ||||||||
a2-highgpu-8g |
8 | ||||||||
a2-megagpu-16g |
16 | ||||||||
n1-standard-4 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||||
n1-standard-8 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||||
n1-standard-16 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 | |||||
n1-standard-32 |
2, 4 | 2, 4 | 2, 4 | 4 e 8 | |||||
n1-standard-64 |
4 | 4 | 8 | ||||||
n1-standard-96 |
4 | 4 | 8 | ||||||
n1-highmem-2 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||||
n1-highmem-4 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||||
n1-highmem-8 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||||
n1-highmem-16 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 | |||||
n1-highmem-32 |
2, 4 | 2, 4 | 2, 4 | 4 e 8 | |||||
n1-highmem-64 |
4 | 4 | 8 | ||||||
n1-highmem-96 |
4 | 4 | 8 | ||||||
n1-highcpu-16 |
1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 | |||||
n1-highcpu-32 |
2, 4 | 2, 4 | 2, 4 | 4 e 8 | |||||
n1-highcpu-64 |
4 | 4 | 4 | 8 | |||||
n1-highcpu-96 |
4 | 4 | 8 | ||||||
g2-standard-4 |
1 | ||||||||
g2-standard-8 |
1 | ||||||||
g2-standard-12 |
1 | ||||||||
g2-standard-16 |
1 | ||||||||
g2-standard-24 |
2 | ||||||||
g2-standard-32 |
1 | ||||||||
g2-standard-48 |
4 | ||||||||
g2-standard-96 |
8 |
I seguenti esempi evidenziano dove puoi specificare le GPU quando
crea un CustomJob
:
Console
Nella console Google Cloud, non puoi creare direttamente un CustomJob
.
Tuttavia, puoi creare un TrainingPipeline
che crea un
CustomJob
. Quando crei un
TrainingPipeline
nella console Google Cloud, puoi specificare le GPU per ogni
pool di worker nel passaggio Compute e prezzi. Prima specifica una Macchina
del testo. Quindi, puoi specificare i dettagli della GPU in Tipo di acceleratore e
Campi Conteggio acceleratori.
gcloud
Per specificare le GPU utilizzando lo strumento Google Cloud CLI, devi utilizzare un config.yaml
un file YAML. Ad esempio:
config.yaml
workerPoolSpecs:
machineSpec:
machineType: MACHINE_TYPE
acceleratorType: ACCELERATOR_TYPE
acceleratorCount: ACCELERATOR_COUNT
replicaCount: REPLICA_COUNT
containerSpec:
imageUri: CUSTOM_CONTAINER_IMAGE_URI
Quindi esegui un comando come questo:
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--config=config.yaml
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di Vertex AI con librerie client. Per ulteriori informazioni, consulta API Node.js 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.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta documentazione di riferimento dell'API Python.
Per saperne di più, leggi la guida alla creazione di una
CustomJob
.
TPU
Utilizzare Tensor Processing Unit (TPU) per l'addestramento personalizzato Vertex AI, puoi configurare un pool di worker per utilizzare una VM TPU.
Quando utilizzi una VM TPU in Vertex AI, devi utilizzare un solo worker pool per l'addestramento personalizzato, e devi configurare questo pool di worker in modo che utilizzi una replica.
TPU v2 e v3
Per utilizzare le VM TPU v2 o v3 nel tuo pool di worker, devi usare una delle seguenti opzioni configurazioni:
Per configurare una VM TPU con TPU v2: specifica i seguenti campi in
WorkerPoolSpec
:- Imposta
machineSpec.machineType
sucloud-tpu
. - Imposta
machineSpec.acceleratorType
suTPU_V2
. - Imposta
machineSpec.acceleratorCount
su8
per la singola TPU o su32 or multiple of 32
per i pod TPU. - Imposta
replicaCount
su1
.
- Imposta
Per configurare una VM TPU con TPU v3: specifica i seguenti campi in
WorkerPoolSpec
:- Imposta
machineSpec.machineType
sucloud-tpu
. - Imposta
machineSpec.acceleratorType
suTPU_V3
. - Imposta
machineSpec.acceleratorCount
su8
per la singola TPU o su32+
per i pod TPU. - Imposta
replicaCount
su1
.
- Imposta
TPU v5e
TPU v5e richiede JAX 0.4.6 o versioni successive, TensorFlow 2.15 o versioni successive oppure
PyTorch 2.1 e versioni successive. Per configurare una VM TPU con TPU v5e, specifica i seguenti campi
nel WorkerPoolSpec
:
- Imposta
machineSpec.machineType
suct5lp-hightpu-1t
,ct5lp-hightpu-4t
oppurect5lp-hightpu-8t
. - Imposta
machineSpec.tpuTopology
su una topologia supportata per il tipo di macchina. Per maggiori dettagli consulta la tabella seguente. - Imposta
replicaCount
su1
.
La tabella seguente mostra i tipi di macchina e le topologie TPU v5e che sono supportate per l'addestramento personalizzato:
Tipo di macchina | Topologia | Numero di chip TPU | Numero di VM | Caso d'uso consigliato |
---|---|---|---|---|
ct5lp-hightpu-1t |
1x1 | 1 | 1 | Addestramento su scala piccola e media |
ct5lp-hightpu-4t |
2x2 | 4 | 1 | Addestramento su scala piccola e media |
ct5lp-hightpu-8t |
2x4 | 8 | 1 | Addestramento su scala piccola e media |
ct5lp-hightpu-4t |
2x4 | 8 | 2 | Addestramento su scala piccola e media |
ct5lp-hightpu-4t |
4x4 | 16 | 4 | Addestramento su larga scala |
ct5lp-hightpu-4t |
4x8 | 32 | 8 | Addestramento su larga scala |
ct5lp-hightpu-4t |
8x8 | 64 | 16 | Addestramento su larga scala |
ct5lp-hightpu-4t |
8x16 | 128 | 32 | Addestramento su larga scala |
ct5lp-hightpu-4t |
16x16 | 256 | 64 | Addestramento su larga scala |
I job di addestramento personalizzato in esecuzione sulle VM TPU v5e sono ottimizzati per la velocità effettiva e la disponibilità del servizio. Per ulteriori informazioni, vedi Tipi di acceleratori di addestramento v5e.
Le macchine TPU v5e sono disponibili in us-west1
e us-west4
per Vertex AI
e addestramento personalizzato. Per ulteriori informazioni su TPU v5e, vedi
Addestramento di Cloud TPU v5e.
Confronto tra tipi di macchina:
Tipo di macchina | ct5lp-hightpu-1t | ct5lp-hightpu-4t | ct5lp-hightpu-8t |
---|---|---|---|
Numero di chip v5e | 1 | 4 | 8 |
Numero di vCPU | 24 | 112 | 224 |
RAM (GB) | 48 | 192 | 384 |
Numero di nodi NUMA | 1 | 1 | 2 |
Probabilità di prerilascio | Alta | Medie | Bassa |
Esempio di CustomJob
che specifica una VM TPU
L'esempio seguente evidenzia come specificare una VM TPU quando crei
CustomJob
:
gcloud
Per specificare una VM TPU con lo strumento gcloud CLI, devi utilizzare un'interfaccia
File config.yaml
.
Seleziona una delle seguenti schede per visualizzare un esempio:
TPU v2/v3
workerPoolSpecs:
machineSpec:
machineType: cloud-tpu
acceleratorType: TPU_V2
acceleratorCount: 8
replicaCount: 1
containerSpec:
imageUri: CUSTOM_CONTAINER_IMAGE_URI
TPU v5e
workerPoolSpecs:
machineSpec:
machineType: ct5lp-hightpu-4t
tpuTopology: 4x4
replicaCount: 1
containerSpec:
imageUri: CUSTOM_CONTAINER_IMAGE_URI
Quindi esegui un comando come questo:
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--config=config.yaml
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.
Per specificare una VM TPU utilizzando l'SDK Vertex AI per Python, guarda l'esempio seguente:
from google.cloud.aiplatform import aiplatform job = aiplatform.CustomContainerTrainingJob( display_name='DISPLAY_NAME', location='us-west1', project='PROJECT_ID', staging_bucket="gs://CLOUD_STORAGE_URI", container_uri='CONTAINER_URI') job.run(machine_type='ct5lp-hightpu-4t', tpu_topology='2x2')
Per ulteriori informazioni sulla creazione di un job di addestramento personalizzato, Crea job di addestramento personalizzati.
Opzioni del disco di avvio
Facoltativamente, puoi personalizzare i dischi di avvio per le VM di addestramento. Tutte le VM in un che utilizzano lo stesso tipo e dimensione del disco di avvio.
Per personalizzare il tipo di disco di avvio utilizzato da ogni VM di addestramento, specifica la
diskSpec.bootDiskType
nelWorkerPoolSpec
,Puoi impostare questo campo su
pd-standard
per utilizzare una proprietà disco permanente standard supportato da un disco rigido standard oppure puoi impostarlopd-ssd
per utilizzare un disco permanente SSD supportato da un'unità a stato solido. La il valore predefinito èpd-ssd
.L'utilizzo di
pd-ssd
potrebbe migliorare le prestazioni se il codice di addestramento legge e scritture su disco. Ulteriori informazioni sui tipi di disco.Per personalizzare la dimensione (in GB) del disco di avvio su cui ogni VM di addestramento usi, specifica
diskSpec.bootDiskSizeGb
campo nelWorkerPoolSpec
.Puoi impostare questo campo su un numero intero compreso tra 100 e 64.000 inclusi. La il valore predefinito è
100
.Può essere utile aumentare la dimensione del disco di avvio se il codice di addestramento scrive molti dati temporanei sul disco. Tieni presente che i dati scritti sul disco di avvio è temporaneo e non potrai recuperarlo una volta completato l'addestramento.
La modifica del tipo e delle dimensioni dei dischi di avvio influisce sull'addestramento personalizzato prezzi.
I seguenti esempi evidenziano dove puoi specificare le opzioni del disco di avvio quando
crei un CustomJob
:
Console
Nella console Google Cloud, non puoi creare direttamente un CustomJob
.
Tuttavia, puoi creare un TrainingPipeline
che crea un
CustomJob
. Quando crei un
TrainingPipeline
nella console Google Cloud, puoi specificare il disco di avvio
per ogni pool di worker nel passaggio Compute e prezzi, nella sezione Disco
tipo e il campo Dimensione disco (GB).
gcloud
Per specificare le opzioni del disco di avvio utilizzando lo strumento Google Cloud CLI, devi utilizzare un'interfaccia
config.yaml
un file YAML. Ad esempio:
config.yaml
workerPoolSpecs:
machineSpec:
machineType: MACHINE_TYPE
diskSpec:
bootDiskType: DISK_TYPE
bootDiskSizeGb: DISK_SIZE
replicaCount: REPLICA_COUNT
containerSpec:
imageUri: CUSTOM_CONTAINER_IMAGE_URI
Quindi esegui un comando come questo:
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--config=config.yaml
Per saperne di più, leggi la guida alla creazione di una
CustomJob
.
Passaggi successivi
- Scopri come crea una risorsa permanente per eseguire job di addestramento personalizzati.
- Scopri come eseguire l'addestramento personalizzato creando un
CustomJob
.