Panoramica dell'addestramento personalizzato

Vertex AI fornisce un servizio di addestramento gestito che ti consente di mettere in operazione l'addestramento di modelli su larga scala. Puoi utilizzare Vertex AI per eseguire di addestramento basate su framework di machine learning (ML) dell'infrastruttura Google Cloud. Per i seguenti framework ML popolari, Vertex AI dispone inoltre di un supporto integrato che semplifica la preparazione di addestramento e distribuzione del modello:

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'operativizzazione dell'addestramento del modello presenta diverse sfide. Questi le sfide includono il tempo e i costi necessari per addestrare i modelli, il livello di necessari per gestire l'infrastruttura di computing e la necessità sicurezza di livello aziendale. Vertex AI affronta queste sfide offrendo molti altri vantaggi.

Infrastruttura di calcolo completamente gestita

Infrastruttura gestita

L'addestramento del modello su Vertex AI è un servizio completamente gestito che non richiede alcuna amministrazione di infrastruttura fisica. Puoi addestrare senza la necessità di eseguire il provisioning o la gestione di server. Paghi solo per le risorse di calcolo che utilizzi. Vertex AI gestisce inoltre il logging, l'inserimento in coda e il monitoraggio dei job.

Prestazioni elevate

Prestazioni elevate

I job di addestramento di Vertex AI sono ottimizzati per l'addestramento dei modelli ML, il che offre prestazioni più rapide rispetto all'esecuzione diretta dell'applicazione di addestramento su un cluster GKE. Puoi anche identificare e eseguire il debug dei colli di bottiglia delle prestazioni nel tuo job di addestramento utilizzando Cloud Profiler.

Addestramento distribuito

Addestramento distribuito

Reduction Server è un algoritmo all-reduce in Vertex AI che può aumentare il throughput e ridurre la latenza dell'addestramento distribuito su più nodi su 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

Ottimizzazione degli iperparametri

Job di ottimizzazione degli iperparametri di eseguire più prove dell'applicazione di addestramento utilizzando i valori degli iperparametri. Specifichi un intervallo di valori da testare e Vertex AI scopre i valori ottimali per il tuo modello all'interno di quell'intervallo.

Sicurezza aziendale

Sicurezza aziendale

Vertex AI fornisce le seguenti funzionalità di sicurezza aziendale:

Integrazioni di MLOps (operazioni di machine learning)

MLOps

Vertex AI fornisce una suite di strumenti MLOps integrati e funzionalità che puoi utilizzare per le seguenti finalità:

  • Orchestra i flussi di lavoro ML end-to-end.
  • Esegui il feature engineering.
  • Esegui esperimenti.
  • Gestisci e esegui l'iterazione dei tuoi modelli.
  • Monitora i metadati ML.
  • Monitora e valuta la qualità del modello.

Flusso di lavoro per l'addestramento personalizzato

Il seguente diagramma mostra una panoramica generale del flusso di lavoro dell'addestramento personalizzato su Vertex AI. Le sezioni che seguono descrivono ogni passaggio della dettaglio.

Flusso di lavoro dell'addestramento personalizzato.

Carica e prepara i dati di addestramento

Per ottenere le migliori prestazioni e l'assistenza, utilizza uno dei seguenti servizi Google Cloud come origine dati:

Puoi anche specificare 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 consente di confrontare il rendimento dei due modelli.

Prepara la tua candidatura per la formazione

Per preparare l'applicazione di addestramento da utilizzare su Vertex AI, procedi nel seguente modo: le seguenti:

  • Implementa le best practice per il codice di addestramento per Vertex AI.
  • Determina il 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 svolgere quanto segue:

  • Accedere ai servizi Google Cloud.
  • Carica i dati di input.
  • Attiva la registrazione automatica per il monitoraggio degli esperimenti.
  • Esporta gli artefatti del modello.
  • Utilizzare le variabili di ambiente di Vertex AI.
  • Garantire la resilienza ai riavvii della VM.

Seleziona un tipo di container

Vertex AI esegue l'applicazione di addestramento Immagine container Docker. Un'immagine del contenitore Docker è un pacchetto software autonomo che include il codice e tutte le dipendenze e può essere eseguito in quasi qualsiasi ambiente di calcolo. Puoi specificare l'URI di un immagine container predefinita per utilizzare o creare e caricare un immagine container personalizzata su cui sono preinstallate l'applicazione di addestramento e le dipendenze.

La seguente tabella mostra le differenze tra le immagini dei container predefinite e personalizzate:

Specifiche Immagini container preimpostate Immagini container personalizzate
Framework ML Ogni immagine container è specifica per un framework ML. Utilizza qualsiasi framework di ML o non utilizzarne nessuno.
Versione del 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.
Dipendenze dell'applicazione Le dipendenze comuni per il framework ML sono preinstallate. Puoi e specificare ulteriori dipendenze da installare nell'applicazione di addestramento. Preinstalla le dipendenze necessarie all'applicazione di addestramento.
Formato di pubblicazione dell'applicazione
  • Distribuzione di origine Python.
  • Singolo file Python.
Preinstalla l'applicazione di addestramento nell'immagine container personalizzata.
Configurazione Bassa Alta
Consigliato per Applicazioni di addestramento Python basate su un framework ML e su una versione del framework per la quale è disponibile un'immagine container predefinita.
  • Maggiore personalizzazione e maggiore controllo.
  • Applicazioni di addestramento non Python.
  • Dipendenze private o personalizzate.
  • addestrando le applicazioni che usano un framework ML o una versione del framework nessuna immagine container predefinita disponibile.

Pacchettizzazione dell'applicazione di addestramento

Dopo aver stabilito il tipo di immagine container da utilizzare, pacchettizza la tua applicazione di addestramento in uno dei seguenti formati in base al tipo di immagine container:

  • File Python singolo da utilizzare in un container predefinito

    Scrivi l'applicazione di addestramento come singolo file Python e utilizza l'SDK Vertex AI per Python per creare una classe CustomJob o CustomTrainingJob. Il file Python è pacchettizzato in un di codice sorgente Python e installato su un'immagine container predefinita. Inviare l'applicazione di addestramento come singolo file Python è adatta la prototipazione. Per le applicazioni di addestramento di produzione, è probabile che l'applicazione di addestramento sia organizzata in più di un file.

  • Distribuzione di codice sorgente Python da utilizzare in un container predefinito

    Pacchettizzazione dell'applicazione di addestramento in una o più distribuzioni di origine Python e caricarle in un nel bucket Cloud Storage. Vertex AI installa le distribuzioni di origine a 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 l'applicazione di addestramento è scritta in Python, puoi esegui questi passaggi utilizzando un comando Google Cloud CLI.

Configura il job di addestramento

Un job di addestramento Vertex AI esegue le attività seguenti:

  • Esegui il provisioning di una (addestramento con un solo nodo) 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 eseguire l'applicazione di addestramento:

  • Job personalizzato

    Un job personalizzato (CustomJob) l'applicazione di addestramento. Se utilizzi un'immagine container predefinita, gli artefatti del modello vengono inviati al bucket Cloud Storage specificato. Per immagini container personalizzate, l'applicazione di addestramento può anche gli artefatti 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 elementi del modello con i valori degli iperparametri con prestazioni ottimali. Specifica l'intervallo di valori degli iperparametri da testare e le metriche in base alle quali eseguire l'ottimizzazione.

  • Pipeline di addestramento

    Una pipeline di addestramento (CustomTrainingJob) esegue un job personalizzato o un job di ottimizzazione degli iperparametri ed esporta facoltativamente gli artefatti del modello a Vertex AI per creare una risorsa del 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 contenitore.

Configurazioni di calcolo

Specifica le risorse di computing da utilizzare per un job di addestramento. Vertex AI supporta l'addestramento con un nodo singolo, il job di addestramento viene eseguito su una VM distribuito, in cui l'addestramento il job viene eseguito su più VM.

Le risorse di calcolo che puoi specificare per il job di addestramento sono le seguenti:

  • Tipo di macchina VM

    Tipi di macchina diversi offrono CPU, dimensioni di memoria e larghezza di banda differenti.

  • GPU (Graphics Processing Unit)

    Puoi aggiungere una o più GPU alle VM di tipo A2 o N1. Se i tuoi dati di addestramento di progettazione per utilizzare GPU, l'aggiunta di GPU può migliorare significativamente delle 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 di worker. Questo pool di worker può avere una sola replica.

  • Dischi di avvio

    Puoi usare SSD (opzione predefinita) o HDD per il disco di avvio. Se i tuoi dati di addestramento l'applicazione esegue operazioni di lettura e scrittura su disco, utilizzando le unità SSD può migliorare le prestazioni. Puoi anche specificare le dimensioni del disco di avvio in base alla quantità i dati temporanei che l'applicazione di addestramento scrive su 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 container

La configurazioni di container che devi realizzare dipendono dal fatto che tu stia utilizzando un'infrastruttura nell'immagine container.

  • Configurazioni dei container predefiniti:

    • Specifica l'URI dell'immagine container predefinita che vuoi utilizzare.
    • Se l'applicazione di addestramento è pacchettizzata come origine Python specifica l'URI Cloud Storage in cui si trova il pacchetto individuarlo.
    • Specifica il modulo del punto di ingresso della tua applicazione di addestramento.
    • (Facoltativo) Specifica un elenco di argomenti della riga di comando da passare al modulo del punto di ingresso della tua applicazione di addestramento.
  • Configurazioni di container personalizzati:

    • Specifica l'URI dell'immagine del container personalizzato, che può essere un URI di Artifact Registry o Docker Hub.
    • Facoltativo: esegui l'override delle istruzioni ENTRYPOINT o CMD nel tuo nell'immagine container.

Crea un job di addestramento

Dopo aver preparato l'applicazione per i dati e l'addestramento, esegui l'addestramento un'applicazione creando uno dei seguenti job di addestramento:

Per creare il job di addestramento, puoi usare la console Google Cloud, Google Cloud CLI l'SDK Vertex AI per Python o l'API Vertex AI.

(Facoltativo) Importa gli artefatti del modello in Vertex AI

È probabile che l'applicazione di addestramento restituisca uno o più artefatti del modello località specificata, di solito un bucket Cloud Storage. Prima di poter ottenere le previsioni in Vertex AI dai tuoi elementi del modello, devi prima importare gli elementi del modello in Vertex AI Model Registry.

Come le immagini container per l'addestramento, Vertex AI consente di scegliere utilizzando predefinite immagini container personalizzate per le previsioni. Se è disponibile un'immagine container predefinita per le previsioni per framework ML e versione del framework, consigliamo di usare un container predefinito dell'immagine.

Passaggi successivi