Panoramica dell'addestramento personalizzato

Vertex AI offre un servizio di addestramento gestito che consente di per rendere operativo 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 per l'addestramento e la pubblicazione del modello:

Questa pagina spiega i vantaggi dell'addestramento personalizzato su Vertex AI, il flusso di lavoro coinvolti e le varie opzioni di formazione 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 una serie di 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 computing che utilizzi. Vertex AI offre inoltre e gestisce il logging, l'accodamento e il monitoraggio dei job.

Prestazioni elevate

Prestazioni elevate

I job di addestramento Vertex AI sono ottimizzati per l'addestramento del modello ML, offre prestazioni più veloci rispetto all'esecuzione diretta dell'addestramento su un cluster GKE. Puoi inoltre identificare ed eseguire il debug dei colli di bottiglia delle prestazioni nel job di addestramento utilizzando Cloud Profiler.

Addestramento distribuito

Addestramento distribuito

Server di riduzione è un algoritmo di Vertex AI che può aumentare velocità effettiva e di riduzione della latenza dell'addestramento distribuito con più nodi su NVIDIA le GPU (Graphics Processing Unit). Questa ottimizzazione consente di ridurre i tempi e il costo del completamento di lavori 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. Devi specificare un intervallo di valori da testare Vertex AI scopre i valori ottimali per il tuo modello al suo interno intervallo.

Sicurezza aziendale

Sicurezza aziendale

Vertex AI offre le seguenti funzionalità di sicurezza aziendale:

Integrazioni delle operazioni ML (MLOps)

MLOps

Vertex AI offre una suite strumenti e funzionalità MLOps integrati che puoi utilizzare per i seguenti scopi:

  • Orchestrare i flussi di lavoro ML end-to-end.
  • Eseguire il feature engineering.
  • Esegui esperimenti.
  • Gestisci e ripeti i tuoi modelli.
  • Monitorare i metadati ML.
  • Monitora e valuta la qualità del modello.

Flusso di lavoro per l'addestramento personalizzato

Il seguente diagramma mostra una panoramica generale dell'addestramento personalizzato del flusso di lavoro 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 prestazioni e assistenza ottimali, utilizza una delle 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. Addestramento un modello personalizzato e un modello AutoML che usano lo stesso set di dati, le prestazioni 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:

  • Implementare 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 il tipo di immagine container selezionato.

Implementare le best practice per il codice di addestramento

L'applicazione di addestramento deve implementare best practice per il codice di addestramento per Vertex AI. Queste best practice riguardano la capacità della tua applicazione di addestramento di le seguenti:

  • 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.
  • Assicurati che la resilienza alle VM venga riavviata.

Seleziona un tipo di container

Vertex AI esegue l'applicazione di addestramento Immagine container Docker. Un'immagine container Docker è un pacchetto software autonomo che include codice e tutte le dipendenze, che possono essere eseguite in quasi tutti gli ambienti di computing. 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 tabella seguente mostra le differenze tra container predefinito e personalizzato immagini:

Specifiche Immagini container predefinite Immagini container personalizzate
Framework ML Ogni immagine container è specifica per un framework ML. Usa qualsiasi framework ML o 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.
Dipendenze 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 dell'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 framework e framework ML con un'immagine container predefinita disponibile.
  • 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 determinato il tipo di immagine container da utilizzare, pacchettizza di addestramento dell'applicazione in uno dei seguenti formati in base tipo di immagine:

  • File Python singolo da utilizzare in un container predefinito

    scrivi la tua applicazione di addestramento come singolo file Python e utilizza SDK Vertex AI per Python per creare CustomJob o CustomTrainingJob corso. 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 in produzione, è probabile di addestramento divisa 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 in cui l'applicazione di addestramento e le dipendenze sono preinstallate e in 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:

  • Esegue il provisioning di uno (addestramento su nodo singolo) o più (addestramento distribuito) (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'addestramento utilizzando diversi valori degli iperparametri finché non produce il modello gli artefatti con i valori degli iperparametri con prestazioni ottimali. Devi specificare l'intervallo di valori degli iperparametri da testare e le metriche per i quali ottimizzare.

  • 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 come origine dati un set di dati gestito da Vertex AI.

Quando crei un job di addestramento, specifica le risorse di computing da utilizzare per eseguire l'applicazione di addestramento e configurare le impostazioni del container.

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 computing 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. Il 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 un valore compreso tra 100 GiB (predefinito) e 64.000 GiB. Tutte le VM in un pool di worker devono e usano lo stesso tipo e dimensione del disco di avvio.

Configurazioni container

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

  • Configurazioni di container predefinite:

    • Specifica l'URI dell'immagine del container predefinito 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 alla voce modulo singolo della tua applicazione di addestramento.
  • Configurazioni di container personalizzati:

    • Specifica l'URI dell'immagine container personalizzata, che può essere un URI da 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 per eseguire le previsioni in Vertex AI dagli artefatti del modello, importare gli artefatti 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