
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Launch Vertex AI Workbench instance
/ 30
Create a Dockerfile and add model training code
/ 30
Build the container
/ 20
Run a hyperparameter tuning job on Vertex AI
/ 20
In questo lab imparerai a utilizzare Vertex AI per eseguire un job di ottimizzazione degli iperparametri per un modello TensorFlow. Sebbene questo lab utilizzi TensorFlow per il codice del modello, potresti facilmente sostituirlo con un altro framework.
Questo lab utilizza la più recente offerta di prodotti AI disponibile su Google Cloud. Vertex AI integra le offerte ML di Google Cloud in un'esperienza di sviluppo fluida. In precedenza, i modelli addestrati con AutoML e i modelli personalizzati erano accessibili tramite servizi separati. La nuova offerta combina entrambi in un'unica API, insieme ad altri nuovi prodotti. Puoi anche migrare progetti esistenti su Vertex AI. In caso di feedback, consulta la pagina di supporto.
Vertex AI include molti prodotti diversi per supportare i flussi di lavoro ML end-to-end. Questo lab è incentrato sui prodotti evidenziati di seguito: addestramento/ottimizzazione degli iperparametri e blocchi note.
Vertex AI offre due soluzioni di notebook, Workbench e Colab Enterprise.
Vertex AI Workbench è una buona soluzione per i progetti che danno priorità al controllo e alla personalizzazione. È ideale per i progetti elaborati che comprendono più file, con dipendenze complesse. Rappresenta anche una valida scelta per i data scientist che stanno passando al cloud da una workstation o un laptop.
Le istanze di Vertex AI Workbench sono dotate di una suite preinstallata di pacchetti di deep learning, tra cui il supporto per i framework di TensorFlow e PyTorch.
Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.
Accedi a Qwiklabs utilizzando una finestra di navigazione in incognito.
Tieni presente la durata dell'accesso al lab (ad esempio, 1:15:00
) e assicurati di finire entro quell'intervallo di tempo.
Non è disponibile una funzionalità di pausa. Se necessario, puoi riavviare il lab ma dovrai ricominciare dall'inizio.
Quando è tutto pronto, fai clic su Inizia lab.
Annota le tue credenziali del lab (Nome utente e Password). Le userai per accedere a Google Cloud Console.
Fai clic su Apri console Google.
Fai clic su Utilizza un altro account e copia/incolla le credenziali per questo lab nei prompt.
Se utilizzi altre credenziali, compariranno errori oppure ti verranno addebitati dei costi.
Accetta i termini e salta la pagina di ripristino delle risorse.
Nella console Cloud, fai clic sul menu di navigazione > API e servizi > Libreria.
Cerca API Compute Engine, quindi fai clic su Abilita se non è già abilitato. Ne avrai bisogno per creare la tua istanza di blocco note.
Nella console Cloud, fai clic sul menu di navigazione > API e servizi > Libreria.
Cerca API Google Container Registry e seleziona Abilita se non è già selezionato. Lo utilizzerai per creare un container per il tuo job di addestramento personalizzato.
Nella console Google Cloud, dal menu di navigazione (), seleziona Vertex AI.
Fai clic su Abilita tutte le API consigliate.
Nel menu di navigazione, fai clic su Workbench.
Nella parte superiore della pagina Workbench, assicurati di essere nella vista Istanze.
Fai clic su Crea nuova.
Configura l'istanza:
La creazione dell'istanza richiede alcuni minuti. Quando è pronta, viene visualizzato un segno di spunta verde accanto al nome.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Invierai questo job di ottimizzazione degli iperparametri a Vertex inserendo il codice dell'applicazione di addestramento in un container Docker ed eseguendo il push di questo container a Google Container Registry. Utilizzando questo approccio, puoi ottimizzare gli iperparametri per un modello creato con qualsiasi framework.
horses_or_humans
e accedi tramite cd:Il primo passaggio per containerizzare il codice è creare un Dockerfile. Nel Dockerfile includerai tutti i comandi necessari per eseguire l'immagine. Installerà tutte le librerie necessarie, inclusa la libreria CloudML Hypertune, e configurerà il punto di accesso per il codice di addestramento.
Questo Dockerfile utilizza l'immagine Docker GPU TensorFlow Enterprise 2.9 del container deep learning. Deep Learning Containers su Google Cloud è dotato di molti framework comuni di ML e data science preinstallati.
Dopo aver scaricato l'immagine, questo Dockerfile configura il punto di accesso per il codice di addestramento. Non hai ancora creato questi file: nel passaggio successivo aggiungerai il codice per l'addestramento e la messa a punto del modello.
Ora dovresti avere quanto segue nella tua directory horses_or_humans/
:
Prima di creare il container, diamo uno sguardo più approfondito al codice. Esistono alcuni componenti specifici dell'utilizzo del servizio di ottimizzazione degli iperparametri.
Lo script importa la libreria hypertune
. Tieni presente che il Dockerfile del passaggio 1 includeva istruzioni per installare tramite pip questa libreria.
La funzione get_args()
definisce un argomento della riga di comando per ogni iperparametro che desideri ottimizzare. In questo esempio, gli iperparametri che verranno ottimizzati sono il tasso di apprendimento, il valore momentum nell'ottimizzatore e il numero di neuroni nell'ultimo strato nascosto del modello, ma sperimenta pure con altri iperparametri. Il valore passato in questi argomenti viene quindi utilizzato per impostare l'iperparametro corrispondente nel codice.
Alla fine della funzione main()
, la libreria hypertune
viene utilizzata per definire la metrica che desideri ottimizzare. In TensorFlow, il metodo keras model.fit
restituisce un oggetto History
. L'attributo History.history
è un record dei valori di perdita dell'addestramento e dei valori delle metriche in epoche successive. Se passi i dati di convalida a model.fit
, l'attributo History.history
includerà anche la perdita di convalida e i valori delle metriche.
Ad esempio, se addestrassi un modello per tre epoche con dati di convalida e fornissi l'accuratezza
come metrica, l'attributo History.history
sarebbe simile al seguente dizionario.
Se desideri che il servizio di ottimizzazione degli iperparametri scopra i valori che massimizzano l'accuratezza di convalida del modello, definisci la metrica come l'ultima voce (o NUM_EPOCS - 1
) dell'elenco val_accuracy
. Quindi, passa questa metrica a un'istanza di HyperTune
. Puoi scegliere la stringa che preferisci per hyperparameter_metric_tag
, ma dovrai utilizzare nuovamente la stringa in seguito quando avvierai il job di ottimizzazione dell'iperparametro.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
your-cloud-project
con il tuo ID progetto:gcloud config list --format 'value(core.project)'
nel tuo terminale.Con il push del container in Container Registry, ora puoi avviare un job di ottimizzazione degli iperparametri del modello personalizzato.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Questo lab utilizza l'addestramento personalizzato tramite un container personalizzato su Google Container Registry, ma puoi anche eseguire un job di ottimizzazione degli iperparametri con i container predefiniti.
Fai clic su Addestra nuovo modello per inserire i parametri per il tuo job di ottimizzazione degli iperparametri:
horses-humans-hyptertune
(o come preferisci chiamare il tuo modello) in Nome modello.Nel passaggio Container di addestramento, seleziona Container personalizzato:
gcr.io/<your-cloud-project>/horse-human:hypertune
, con il nome del tuo progetto. Lascia vuoti gli altri campi e fai clic su Continua.Successivamente, dovrai aggiungere gli iperparametri che hai impostato come argomenti della riga di comando nel codice dell'applicazione di addestramento. Quando aggiungi un iperparametro, devi prima fornire il nome. Dovrebbe corrispondere al nome dell'argomento che hai passato ad argparse
.
Inserisci learning_rate
in Nome parametro.
Seleziona Doppio come Tipo.
Inserisci 0.01
per Min, e 1
per Max.
Seleziona Log in Scalabilità.
Fai clic su FINE.
Dopo aver aggiunto l'iperparametro learning_rate
, aggiungi i parametri per momentum
e num_neurons
.
Per momentum:
momentum
in Nome parametro.0
per Min e 1
per Max.Per num_neurons:
num_neurons
in Nome parametro.64,128,512
in Valori.Dopo aver aggiunto gli iperparametri, fornirai la metrica che vuoi ottimizzare e l'obiettivo. Dovrebbe essere lo stesso hyperparameter_metric_tag impostato nell'applicazione di addestramento.
accuracy
in Metrica da ottimizzare.Il servizio di ottimizzazione degli iperparametri Vertex AI eseguirà più prove dell'applicazione di addestramento con i valori configurati nei passaggi precedenti. Dovrai porre un limite superiore al numero di prove che il servizio eseguirà.
Un numero maggiore di prove generalmente porta a risultati migliori, ma ci sarà un punto in cui i risultati diminuiranno dopo il quale ulteriori prove avranno poco o nessun effetto sulla metrica che stai cercando di ottimizzare. Una best practice è iniziare con un numero inferiore di prove e farsi un'idea dell'impatto degli iperparametri scelti prima dello scale up a un numero elevato di prove.
Dovrai inoltre impostare un limite superiore al numero di prove parallele. L'aumento del numero di prove parallele ridurrà la quantità di tempo necessaria per l'esecuzione del job di ottimizzazione degli iperparametri; tuttavia, può ridurre l'efficacia del job nel complesso. Questo perché la strategia di ottimizzazione predefinita utilizza i risultati delle prove precedenti per informare l'assegnazione dei valori nelle prove successive. Se si eseguono troppe prove in parallelo, ci saranno prove che inizieranno senza il beneficio del risultato delle prove ancora in esecuzione.
A scopo dimostrativo, puoi impostare Numero massimo di prove su 15
e Numero massimo di prove parallele su 3
. Puoi sperimentare numeri diversi, ma ciò può comportare tempi di ottimizzazione più lunghi e costi più elevati.
Seleziona Predefinito per Algoritmo, che utilizzerà Google Vizier per eseguire l'ottimizzazione bayesiana per l'ottimizzazione degli iperparametri. Puoi scoprire di più su questo algoritmo dal blog Correzione degli iperparametri in Cloud Machine Learning Engine con l'ottimizzazione bayesiana.
Fai clic su Continua.
In Compute e prezzi, lascia la regione selezionata così com'è e per Impostazioni di calcolo seleziona Esegui il deployment a nuovo pool di worker.
Configura Pool di worker 0 come segue:
100
.Al termine, potrai fare clic sul nome del job e vedere i risultati delle prove di ottimizzazione.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Se vuoi continuare a utilizzare il blocco note creato in questo lab, ti consigliamo di disattivarlo quando non lo usi. Dall'interfaccia utente di Notebooks nella console Cloud, seleziona il blocco note, quindi seleziona Interrompi.
Se vuoi eliminare completamente il blocco note, fai semplicemente clic sul pulsante Elimina in alto a destra.
Per eliminare il bucket di archiviazione, vai al menu di navigazione > Cloud Storage, seleziona il tuo bucket e fai clic su Elimina.
Hai imparato come utilizzare Vertex AI per:
Avviare un processo di ottimizzazione degli iperparametri per il codice di addestramento fornito in un container personalizzato. In questo esempio hai utilizzato un modello TensorFlow, ma puoi addestrare un modello creato con qualsiasi framework utilizzando container personalizzati o integrati. Per saperne di più sulle diverse parti di Vertex, consulta la documentazione di Vertex AI.
Una volta completato il lab, fai clic su Termina lab. Qwiklabs rimuove le risorse che hai utilizzato ed esegue la pulizia dell'account.
Avrai la possibilità di inserire una valutazione in merito alla tua esperienza. Seleziona il numero di stelle applicabile, inserisci un commento, quindi fai clic su Invia.
Il numero di stelle corrisponde alle seguenti valutazioni:
Se non vuoi lasciare un feedback, chiudi la finestra di dialogo.
Per feedback, suggerimenti o correzioni, utilizza la scheda Assistenza.
Copyright 2020 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.
Questi contenuti non sono al momento disponibili
Ti invieremo una notifica via email quando sarà disponibile
Bene.
Ti contatteremo via email non appena sarà disponibile
One lab at a time
Confirm to end all existing labs and start this one