Quando esegui l'addestramento personalizzato, il codice di addestramento viene eseguito su una o più istanze di macchine virtuali (VM). Puoi configurare i tipi di VM da utilizzare per l'addestramento: l'utilizzo di VM con più risorse di calcolo può velocizzare l'addestramento e consentirti di lavorare con set di dati più grandi, ma possono anche comportare costi di addestramento maggiori.
In alcuni casi, puoi utilizzare anche le GPU per accelerare l'addestramento. Le GPU comportano costi aggiuntivi.
Se vuoi, puoi anche personalizzare il tipo e le dimensioni dei dischi di avvio delle VM di addestramento.
Questo documento descrive le diverse risorse di computing che puoi utilizzare per l'addestramento personalizzato e come configurarle.
Dove specificare le risorse di computing
Specifica i dettagli di configurazione all'interno di una
WorkerPoolSpec
. A seconda di come esegui l'addestramento personalizzato, inserisci WorkerPoolSpec
in uno dei seguenti campi dell'API:
Se stai creando una
CustomJob
risorsa, specifica il valoreWorkerPoolSpec
inCustomJob.jobSpec.workerPoolSpecs
.Se utilizzi Google Cloud CLI, puoi utilizzare il flag
--worker-pool-spec
o il flag--config
nel comandogcloud ai custom-jobs create
per specificare le opzioni del pool di worker.Scopri di più sulla creazione di un
CustomJob
.Se stai creando una
HyperparameterTuningJob
risorsa, specifica il valoreWorkerPoolSpec
inHyperparameterTuningJob.trialJobSpec.workerPoolSpecs
.Se utilizzi gcloud CLI, puoi utilizzare il flag
--config
nel comandogcloud ai hpt-tuning-jobs create
per specificare le opzioni del pool di worker.Scopri di più sulla creazione di una
HyperparameterTuningJob
.Se stai creando una
TrainingPipeline
risorsa senza ottimizzazione degli iperparametri, specifica il valoreWorkerPoolSpec
inTrainingPipeline.trainingTaskInputs.workerPoolSpecs
.Scopri di più sulla creazione di una
TrainingPipeline
personalizzata.Se stai creando una
TrainingPipeline
con ottimizzazione degli iperparametri, specificaWorkerPoolSpec
inTrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs
.
Se esegui addestramento distribuito, puoi utilizzare impostazioni diverse per ogni pool di worker.
Tipi di macchina
In WorkerPoolSpec
, devi specificare uno dei seguenti tipi di macchina nel
campo machineSpec.machineType
. Ogni replica nel pool di worker viene eseguita su una VM separata con 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
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
*
* Con determinate GPU o TPU devono essere utilizzati i tipi di macchina contrassegnati con asterischi nell'elenco precedente. Consulta le sezioni seguenti di questa guida.
Per conoscere le specifiche tecniche di ciascun tipo di macchina, leggi la documentazione di Compute Engine sui tipi di macchina. Per informazioni sul costo di utilizzo di ciascun tipo di macchina per l'addestramento personalizzato, consulta la pagina Prezzi.
I seguenti esempi evidenziano dove specifichi un tipo di macchina quando crei un CustomJob
:
Console
Nella console Google Cloud, non puoi creare un CustomJob
direttamente. Tuttavia,
puoi creare un TrainingPipeline
che crea un
CustomJob
. Quando crei un TrainingPipeline
nella console Google Cloud, specifica un tipo di macchina per ogni pool di worker nel passaggio Calcolo e prezzi, nel campo 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 di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Per saperne di più, consulta la guida alla creazione di una CustomJob
.
GPU
Se hai scritto il codice di addestramento per l'utilizzo delle GPU, puoi configurare il pool di worker in modo che utilizzi una o più GPU su ogni VM. Per utilizzare le GPU,
devi utilizzare un tipo di macchina A2, N1 o G2. Inoltre, l'utilizzo di tipi di macchine più piccole,
come n1-highmem-2
con GPU, potrebbe causare l'errore di logging per alcuni carichi di lavoro
a causa dei vincoli della CPU. Se il job di addestramento interrompe la restituzione dei log, valuta la possibilità di selezionare 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_K80
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 la breve documentazione di Compute Engine sulle GPU per i carichi di lavoro di calcolo. Per conoscere il costo dell'utilizzo di ciascun tipo di macchina per l'addestramento personalizzato, leggi la pagina Prezzi.
Nel tuo WorkerPoolSpec
, specifica il tipo di GPU che vuoi utilizzare nel
campo machineSpec.acceleratorType
e il numero di
GPU che vuoi che ogni VM nel pool di worker utilizzi nel
campo machineSpec.acceleratorCount
. Tuttavia, le tue scelte per questi campi devono rispettare le seguenti restrizioni:
Il tipo di GPU che scegli deve essere disponibile nella località in cui stai eseguendo l'addestramento personalizzato. Non tutti i tipi di GPU sono disponibili in tutte le aree geografiche. Scopri di più sulla disponibilità a livello regionale.
Puoi utilizzare solo un determinato numero di GPU nella tua configurazione. Ad esempio, puoi utilizzare 2 o 4 GPU
NVIDIA_TESLA_T4
su una VM, ma non 3. Per verificare quali valori diacceleratorCount
sono validi per ogni tipo di GPU, consulta la seguente tabella di compatibilità.Devi assicurarti che la configurazione della GPU fornisca CPU virtuali e memoria sufficienti per il tipo di macchina utilizzata. Ad esempio, se utilizzi il tipo di macchina
n1-standard-32
nel pool di worker, ogni VM avrà 32 CPU virtuali e 120 GB di memoria. Poiché ogni GPUNVIDIA_TESLA_V100
può fornire fino a 12 CPU virtuali e 76 GB di memoria, devi utilizzare almeno 4 GPU per ogni VMn1-standard-32
per supportarne i requisiti. (2 GPU forniscono risorse insufficienti e non è possibile specificare 3 GPU).La seguente tabella di compatibilità tiene conto di questo requisito.
Tieni presente le seguenti limitazioni aggiuntive relative all'utilizzo di GPU per l'addestramento personalizzato, diverse dall'uso di GPU con Compute Engine:
- Una configurazione con 8 GPU
NVIDIA_TESLA_K80
fornisce solo fino a 208 GB di memoria in tutte le regioni e le zone. - Una configurazione con 4 GPU
NVIDIA_TESLA_P100
fornisce solo fino a 64 CPU virtuali e fino a 208 GB di memoria in tutte le regioni e le zone.
- Una configurazione con 8 GPU
La seguente tabella di compatibilità elenca i valori validi per
machineSpec.acceleratorCount
in base alle tue scelte per
machineSpec.machineType
e machineSpec.acceleratorType
:
Numeri validi di GPU per ciascun tipo di macchina | ||||||||
---|---|---|---|---|---|---|---|---|
Tipo di macchina | NVIDIA_A100_80GB |
NVIDIA_TESLA_A100 |
NVIDIA_TESLA_K80 |
NVIDIA_TESLA_P4 |
NVIDIA_TESLA_P100 |
NVIDIA_TESLA_T4 |
NVIDIA_TESLA_V100 |
NVIDIA_L4 |
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, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||
n1-standard-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||
n1-standard-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 | |||
n1-standard-32 |
4, 8 | 2, 4 | 2, 4 | 2, 4 | 4, 8 | |||
n1-standard-64 |
4 | 4 | 8 | |||||
n1-standard-96 |
4 | 4 | 8 | |||||
n1-highmem-2 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||
n1-highmem-4 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||
n1-highmem-8 |
1, 2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4, 8 | |||
n1-highmem-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 | |||
n1-highmem-32 |
4, 8 | 2, 4 | 2, 4 | 2, 4 | 4, 8 | |||
n1-highmem-64 |
4 | 4 | 8 | |||||
n1-highmem-96 |
4 | 4 | 8 | |||||
n1-highcpu-16 |
2, 4, 8 | 1, 2, 4 | 1, 2, 4 | 1, 2, 4 | 2, 4, 8 | |||
n1-highcpu-32 |
4, 8 | 2, 4 | 2, 4 | 2, 4 | 4, 8 | |||
n1-highcpu-64 |
8 | 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 crei un CustomJob
:
Console
Nella console Google Cloud, non puoi creare un CustomJob
direttamente.
Tuttavia, puoi creare un TrainingPipeline
che crea un CustomJob
. Quando crei TrainingPipeline
nella console Google Cloud, puoi specificare le GPU per ogni pool di worker nel passaggio Calcolo e prezzi. Innanzitutto, specifica un Tipo di macchina. Quindi, puoi specificare i dettagli della GPU nei campi Tipo di acceleratore e Conteggio acceleratore.
gcloud
Per specificare le GPU utilizzando lo strumento Google Cloud CLI, devi utilizzare un file config.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 di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Per saperne di più, consulta la guida alla creazione di una CustomJob
.
TPU
Per utilizzare le Tensor Processing Unit (TPU) per l'addestramento personalizzato su Vertex AI, puoi configurare un pool di worker per l'utilizzo di una VM TPU.
Quando utilizzi una VM TPU in Vertex AI, devi utilizzare un solo pool di worker per l'addestramento personalizzato e devi configurare questo pool di worker in modo che utilizzi una sola replica.
Per utilizzare le VM TPU nel tuo pool di worker, devi utilizzare una delle seguenti 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 TPU singola o32 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 TPU singola o32+
per i pod TPU. - Imposta
replicaCount
su1
.
- Imposta
L'esempio seguente evidenzia come specificare una VM TPU quando crei un elemento CustomJob
:
gcloud
Per specificare una VM TPU mediante lo strumento gcloud CLI, devi utilizzare un file config.yaml
. Ad
esempio:
config.yaml
workerPoolSpecs:
machineSpec:
machineType: cloud-tpu
acceleratorType: TPU_V2
acceleratorCount: 8
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
Per saperne di più, consulta la guida alla creazione di un CustomJob
.
Opzioni del disco di avvio
Facoltativamente, puoi personalizzare i dischi di avvio per le VM di addestramento. Tutte le VM in un pool di worker utilizzano lo stesso tipo e la stessa dimensione del disco di avvio.
Per personalizzare il tipo di disco di avvio utilizzato da ogni VM di addestramento, specifica il campo
diskSpec.bootDiskType
inWorkerPoolSpec
.Puoi impostare questo campo su
pd-standard
per utilizzare un disco permanente standard supportato da un disco rigido standard oppure impostarlo supd-ssd
per utilizzare un disco permanente SSD supportato da un'unità a stato solido. Il valore predefinito èpd-ssd
.L'utilizzo di
pd-ssd
potrebbe migliorare le prestazioni se il codice di addestramento legge e scrive su disco. Scopri di più sui tipi di disco.Per personalizzare le dimensioni (in GB) del disco di avvio utilizzato da ogni VM di addestramento, specifica il campo
diskSpec.bootDiskSizeGb
inWorkerPoolSpec
.Puoi impostare questo campo su un numero intero compreso tra 100 e 64.000 inclusi. Il valore predefinito è
100
.Potrebbe essere opportuno aumentare le dimensioni del disco di avvio se il codice di addestramento scrive molti dati temporanei su disco. I dati scritti sul disco di avvio sono temporanei e non puoi recuperarli una volta completato l'addestramento.
La modifica del tipo e delle dimensioni dei dischi di avvio influisce sui prezzi dell'addestramento personalizzato.
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 un CustomJob
direttamente.
Tuttavia, puoi creare un TrainingPipeline
che crea un CustomJob
. Quando crei un TrainingPipeline
nella console Google Cloud, puoi specificare le opzioni del disco di avvio per ogni pool di worker nel passaggio Calcolo e prezzi, nell'elenco a discesa Tipo di disco e nel campo Dimensioni disco (GB).
gcloud
Per specificare le opzioni del disco di avvio utilizzando lo strumento Google Cloud CLI, devi utilizzare un file config.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ù, consulta la guida alla creazione di una CustomJob
.
Passaggi successivi
- Scopri come creare una risorsa permanente per eseguire job di addestramento personalizzato.
- Scopri come eseguire l'addestramento personalizzato creando una
CustomJob
.