Vertex AI fornisce un servizio di addestramento gestito che ti aiuta a operazionalizzare l'addestramento di modelli su larga scala. Puoi utilizzare Vertex AI per eseguire applicazioni di addestramento basate su qualsiasi framework di machine learning (ML) sull'infrastruttura Google Cloud . Per i seguenti framework ML più diffusi, Vertex AI offre anche un supporto integrato che semplifica la preparazione per l'addestramento e la pubblicazione dei modelli:
Questa pagina illustra i vantaggi dell'addestramento personalizzato su Vertex AI, il flusso di lavoro coinvolto e le varie opzioni di addestramento disponibili.
Vertex AI rende operativo l'addestramento su larga scala
L'operazionalizzazione dell'addestramento del modello presenta diverse sfide. Queste sfide includono il tempo e i costi necessari per addestrare i modelli, la profondità delle competenze richieste per gestire l'infrastruttura di calcolo e la necessità di fornire sicurezza a livello aziendale. Vertex AI risolve queste sfide e offre una serie di altri vantaggi.
Infrastruttura di calcolo completamente gestita
| L'addestramento dei modelli su Vertex AI è un servizio completamente gestito che non richiede l'amministrazione dell'infrastruttura fisica. Puoi addestrare modelli di ML senza dover eseguire il provisioning o gestire i server. Paghi solo per le risorse di calcolo che utilizzi. Vertex AI gestisce anche il logging, la gestione delle code e il monitoraggio dei job. |
Alte prestazioni
| I job di addestramento di Vertex AI sono ottimizzati per l'addestramento dei modelli ML, il che può fornire prestazioni più rapide rispetto all'esecuzione diretta dell'applicazione di addestramento su un cluster GKE. Puoi anche identificare ed eseguire il debug dei colli di bottiglia delle prestazioni nel tuo job di addestramento utilizzando Cloud Profiler. |
Addestramento distribuito
| Reduction Server è un algoritmo all-reduce in Vertex AI che può aumentare il throughput e ridurre la latenza dell'addestramento distribuito multinodo sulle unità di elaborazione grafica (GPU) NVIDIA. Questa ottimizzazione contribuisce a ridurre il tempo e il costo per completare job di addestramento di grandi dimensioni. |
Ottimizzazione degli iperparametri
| I job di ottimizzazione degli iperparametri eseguono più prove dell'applicazione di addestramento utilizzando diversi valori degli iperparametri. Specifichi un intervallo di valori da testare e Vertex AI rileva i valori ottimali per il tuo modello all'interno di questo intervallo. |
Sicurezza aziendale
| Vertex AI fornisce le seguenti funzionalità di sicurezza aziendale:
|
Integrazioni di operazioni di machine learning (MLOps)
| Vertex AI fornisce una suite di strumenti e funzionalità MLOps integrati che puoi utilizzare per i seguenti scopi:
|
Flusso di lavoro per l'addestramento personalizzato
Il seguente diagramma mostra una panoramica di alto livello del flusso di lavoro dell'addestramento personalizzato su Vertex AI. Le sezioni seguenti descrivono in dettaglio ogni passaggio.
Caricare e preparare i dati di addestramento
Per ottenere le migliori prestazioni e il miglior supporto, utilizza uno dei seguenti servizi come origine dati: Google Cloud
Per un confronto tra questi servizi, vedi Panoramica della preparazione dei dati.
Puoi anche specificare un set di dati gestito da Vertex AI come origine dati quando utilizzi una pipeline di addestramento per addestrare il modello. L'addestramento di un modello personalizzato e di un modello AutoML utilizzando lo stesso set di dati ti consente di confrontare il rendimento dei due modelli.
Preparare la richiesta di addestramento
Per preparare l'applicazione di addestramento per l'utilizzo su Vertex AI, procedi nel seguente modo:
- Implementa le best practice per il codice di addestramento per Vertex AI.
- Determina un tipo di immagine container da utilizzare.
- Pacchettizza l'applicazione di addestramento in un formato supportato in base al tipo di immagine container selezionato.
Implementare le best practice per il codice di addestramento
L'applicazione di addestramento deve implementare le best practice per il codice di addestramento per Vertex AI. Queste best practice riguardano la capacità della tua applicazione di addestramento di fare quanto segue:
- servizi Google Cloud .
- Carica i dati di input.
- Attiva la registrazione automatica per il monitoraggio degli esperimenti.
- Esporta gli artefatti del modello.
- Utilizza le variabili di ambiente di Vertex AI.
- Garantisci la resilienza ai riavvii delle VM.
Seleziona un tipo di contenitore
Vertex AI esegue l'applicazione di addestramento in un'immagine container Docker. Un'immagine container Docker è un pacchetto software autonomo che include il codice e tutte le dipendenze, che può essere eseguito in quasi tutti gli ambienti di computing. Puoi specificare l'URI di un'immagine container predefinita da utilizzare oppure creare e caricare un'immagine container personalizzata con l'applicazione di addestramento e le dipendenze preinstallate.
La seguente tabella mostra le differenze tra le immagini container predefinite e personalizzate:
Specifiche | Immagini container predefinite | Immagini container personalizzate |
---|---|---|
Framework ML | Ogni immagine container è specifica per un framework ML. | Utilizza qualsiasi framework ML o non utilizzarne nessuno. |
Versione framework ML | Ogni immagine container è specifica per una versione del framework ML. | Utilizza qualsiasi versione del framework ML, incluse le versioni secondarie e le build nightly. |
Dipendenze dell'applicazione | Le dipendenze comuni per il framework ML sono preinstallate. Puoi specificare dipendenze aggiuntive da installare nell'applicazione di addestramento. | Preinstalla le dipendenze necessarie per l'applicazione di addestramento. |
Formato di pubblicazione dell'applicazione |
| Preinstalla l'applicazione di addestramento nell'immagine container personalizzata. |
Impegno richiesto per la configurazione | Bassa | Alta |
Consigliati per | Applicazioni di addestramento Python basate su un framework ML e una versione del framework per cui è disponibile un'immagine container predefinita. |
|
Pacchettizzare l'applicazione di addestramento
Dopo aver determinato il tipo di immagine container da utilizzare, pacchettizza l'applicazione di addestramento in uno dei seguenti formati in base al tipo di immagine container:
Singolo file Python da utilizzare in un container predefinito
Scrivi l'applicazione di addestramento come un singolo file Python e utilizza l'SDK Vertex AI per Python per creare una classe
CustomJob
oCustomTrainingJob
. Il file Python viene pacchettizzato in una distribuzione di origine Python e installato in un'immagine container predefinita. La distribuzione dell'applicazione di addestramento come singolo file Python è adatta per la prototipazione. Per le applicazioni di addestramento di produzione, probabilmente avrai la tua applicazione di addestramento organizzata in più di un file.Distribuzione di origine Python da utilizzare in un container predefinito
Pacchettizza l'applicazione di addestramento in una o più distribuzioni di origine Python e caricale in un bucket Cloud Storage. Vertex AI installa le distribuzioni di origine in un'immagine container predefinita quando crei un job di addestramento.
Immagine container personalizzata
Crea la tua immagine container Docker con l'applicazione di addestramento e le dipendenze preinstallate e caricala su Artifact Registry. Se la tua applicazione di addestramento è scritta in Python, puoi eseguire questi passaggi utilizzando un comando Google Cloud CLI.
Configura il job di addestramento
Un job di addestramento Vertex AI esegue le seguenti attività:
- Esegue il provisioning di una (addestramento con un nodo singolo) o più (addestramento distribuito) macchine virtuali (VM).
- Esegue l'applicazione di addestramento containerizzata sulle VM di cui è stato eseguito il provisioning.
- Elimina le VM al termine del job di addestramento.
Vertex AI offre tre tipi di job di addestramento per l'esecuzione dell'applicazione di addestramento:
-
Un job personalizzato (
CustomJob
) esegue l'applicazione di addestramento. Se utilizzi un'immagine container predefinita, gli artefatti del modello vengono inviati al bucket Cloud Storage specificato. Per le immagini container personalizzate, l'applicazione di addestramento può anche generare artefatti del modello in altre posizioni. Job di ottimizzazione degli iperparametri
Un job di ottimizzazione degli iperparametri (
HyperparameterTuningJob
) esegue più prove dell'applicazione di addestramento utilizzando diversi valori degli iperparametri finché non produce artefatti del modello con i valori degli iperparametri con prestazioni ottimali. Specifichi l'intervallo di valori degli iperparametri da testare e le metriche da ottimizzare.-
Una pipeline di addestramento (
CustomTrainingJob
) esegue un job personalizzato o di ottimizzazione degli iperparametri ed esporta facoltativamente gli artefatti del modello in Vertex AI per creare una risorsa modello. Puoi specificare un set di dati gestito da Vertex AI come origine dati.
Quando crei un job di addestramento, specifica le risorse di calcolo da utilizzare per eseguire l'applicazione di addestramento e configura le impostazioni del container.
Configurazioni di calcolo
Specifica le risorse di calcolo da utilizzare per un job di addestramento. Vertex AI supporta l'addestramento con un singolo nodo, in cui il job di addestramento viene eseguito su una VM, e l'addestramento distribuito, in cui il job di addestramento viene eseguito su più VM.
Le risorse di computing che puoi specificare per il job di addestramento sono le seguenti:
Tipo di macchina VM
I diversi tipi di macchine offrono CPU, dimensioni della memoria e larghezza di banda diverse.
Graphics Processing Unit (GPU)
Puoi aggiungere una o più GPU alle VM di tipo A2 o N1. Se la tua applicazione di addestramento è progettata per utilizzare le GPU, l'aggiunta di GPU può migliorare significativamente le prestazioni.
Tensor Processing Unit (TPU)
Le TPU sono progettate specificamente per accelerare i carichi di lavoro di machine learning. Quando utilizzi una VM TPU per l'addestramento, puoi specificare un solo pool worker. Questo pool di worker può avere una sola replica.
Dischi di avvio
Puoi utilizzare SSD (impostazione predefinita) o HDD per il disco di avvio. Se la tua applicazione di training legge e scrive sul disco, l'utilizzo di SSD può migliorare le prestazioni. Puoi anche specificare le dimensioni del disco di avvio in base alla quantità di dati temporanei che l'applicazione di addestramento scrive sul disco. I dischi di avvio possono avere una dimensione compresa tra 100 GiB (valore predefinito) e 64.000 GiB. Tutte le VM in un pool di worker devono utilizzare lo stesso tipo e le stesse dimensioni del disco di avvio.
Configurazioni dei contenitori
Le configurazioni del container che devi apportare dipendono dal fatto che tu stia utilizzando un'immagine container predefinita o personalizzata.
Configurazioni dei container predefinite:
- Specifica l'URI dell'immagine container predefinita che vuoi utilizzare.
- Se l'applicazione di addestramento è pacchettizzata come distribuzione di origine Python, specifica l'URI Cloud Storage in cui si trova il pacchetto.
- Specifica il modulo del punto di ingresso dell'applicazione di addestramento.
- (Facoltativo) Specifica un elenco di argomenti della riga di comando da passare al modulo del punto di ingresso dell'applicazione di addestramento.
Configurazioni dei container personalizzati:
- Specifica l'URI dell'immagine container personalizzata, che può essere un URI di Artifact Registry o Docker Hub.
- (Facoltativo): esegui l'override delle istruzioni
ENTRYPOINT
oCMD
nell'immagine container.
Crea un job di addestramento
Dopo aver preparato i dati e l'applicazione di addestramento, esegui l'applicazione di addestramento creando uno dei seguenti job di addestramento:
- Crea un job personalizzato.
- Crea un job di ottimizzazione iperparametri.
- Crea una pipeline di addestramento.
Per creare il job di addestramento, puoi utilizzare la Google Cloud console, Google Cloud CLI, l'SDK Vertex AI per Python o l'API Vertex AI.
(Facoltativo) Importa gli artefatti del modello in Vertex AI
L'applicazione di addestramento probabilmente genera uno o più artefatti del modello in una posizione specificata, in genere un bucket Cloud Storage. Prima di poter ottenere inferenze in Vertex AI dagli artefatti del modello, devi prima importare gli artefatti del modello in Vertex AI Model Registry.
Come per le immagini container per l'addestramento, Vertex AI ti offre la possibilità di utilizzare immagini container predefinite o personalizzate per le inferenze. Se è disponibile un'immagine del container predefinita per le inferenze per la tua versione del framework ML, ti consigliamo di utilizzarla.
Passaggi successivi
- Ottieni inferenze dal modello.
- Valuta il modello.
- Prova il tutorial Hello custom training per istruzioni passo passo sull'addestramento di un modello di classificazione delle immagini TensorFlow Keras su Vertex AI.