Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

I vantaggi dell'approccio Black Box di Vizier

By Joshua FoxAug 17, 20235 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

Nella Parte 1 abbiamo illustrato le criticità dei processi di ottimizzazione lenti e costosi, che raramente danno risultati soddisfacenti al primo tentativo.

Vizier’s Black Box

Parte 2

Nella Parte 1 abbiamo illustrato le criticità dei processi di ottimizzazione lenti e costosi, che raramente danno risultati soddisfacenti al primo tentativo. Che si tratti del training di modelli di Machine Learning (ML), di A/B testing di siti web o della scelta dei parametri ottimali per un impianto produttivo, ogni ciclo ha un costo elevato e l'obiettivo è convergere verso un buon risultato nel minor tempo possibile. Vertex AI Vizier su Google Cloud lo rende possibile suggerendo i parametri da utilizzare per ciascun trial.

Solo un consigliere

"Vizier" è il titolo del consigliere di un re, derivato dall'arabo وزير wazīr attraverso il persiano e il turco. Il Vizier consiglia, ma non decide, la politica della corte. È esattamente così che funziona l'ottimizzazione black-box di Vizier: non esegue al posto vostro i trial di ottimizzazione. Al contrario, i servizi di hyperparameter tuner offerti da GCP e AWS fanno tutto al posto vostro. Si fornisce loro un intervallo di iperparametri — per esempio un learning rate continuo da 0 a 1, oppure un minimum child weight come parametro intero da 1 a 3. Si crea il client del tuner di iperparametri e poi, in modalità fire and forget, si richiama una funzione come fit(). Questa funzione viene eseguita per un certo tempo, magari qualche ora, ed esegue internamente diverse iterazioni di training scegliendo di volta in volta iperparametri differenti. Al termine, il tuner restituisce il miglior modello trovato.

Il processo di ottimizzazione Black Box è fuori dal vostro controllo ed è invisibile (almeno dal punto di vista delle API: in genere sono presenti sistemi di monitoraggio).

Nota: "Black Box" significa che i vostri trial sono invisibili a Vizier. Vizier non sa nulla del training ML né dell'A/B test. Non sa nulla dei gradienti né degli alti e bassi della funzione che viene ottimizzata all'interno di ciascun trial.

Per voi, invece, questi trial sono completamente "white-box": il controllo è nelle vostre mani.

Vantaggi

Un servizio di hyperparameter tuner sembra più semplice di Vizier e, in effetti, Google ha costruito Vertex AI AutoML e i tuner di iperparametri dell'AI Platform (il vecchio nome del prodotto) proprio sopra un motore basato su Vizier. Eppure l'approccio Black Box, che prevede l'interazione diretta con Vizier, ha indubbi vantaggi.

Controllo

Con la Black Box Optimization si ottiene un maggiore controllo.

I trial rientrano in genere nella vostra area di competenza: i vostri sviluppatori web conoscono ogni dettaglio del sito e i vostri data scientist padroneggiano l'algoritmica ML. Avete riflettuto a fondo su come ottenere il massimo dai vostri sistemi al minor costo. Con Vizier mantenete il pieno controllo dell'effettivo training ML: quale infrastruttura o API utilizzare, quante e quali GPU o TPU, e così via.

Potete persino ignorare i suggerimenti di Vizier e usare i vostri parametri. Naturalmente, di norma li userete: in fondo, è proprio per questo che vi affidate a Vizier. Per esempio, potreste imbattervi in un nuovo algoritmo per il vostro ML, oppure i product manager potrebbero voler testare una variante non prevista nell'A/B testing del sito: potete farlo senza problemi. Anche quando eseguite il trial con parametri scelti da voi, potete comunque inviare parametri e metriche a Vizier, che imparerà da essi esattamente come avviene quando vengono utilizzati i parametri suggeriti dal sistema stesso.

Scalabilità

Vizier si occupa solo della parte "semplice" dell'ottimizzazione su più trial. Non si fa carico del lavoro pesante dell'ML, che può richiedere ingenti risorse hardware specializzate. Analogamente, non si occupa del lavoro pesante dell'A/B testing di un sito web né della gestione di un impianto produttivo. È proprio questo a renderlo scalabile: siete voi a gestire l'effettivo training o l'altro processo da ottimizzare, che è la parte più onerosa dell'intero workflow, e potete quindi applicare le best practice più adatte alla vostra specifica configurazione. (Nella Figura 1 qui sotto, le vostre macchine di training sono gli "Evaluation workers" sotto la REST API di Vizier.)

Nel frattempo, Vizier istanzia in modo scalabile dei worker che generano suggerimenti o indicano quando fermarsi. Poiché il suo stato è memorizzato in un database e non nel contesto di una singola esecuzione di ottimizzazione, può recuperare anche in caso di failure. E poiché i worker dei suggerimenti si occupano esclusivamente di hyperoptimization e non del vostro "lavoro pesante", Vizier riesce a scalarli in modo efficiente.

Vizier’s Black Box

Figura 1. Diagramma dell'architettura (basato sul diagramma del research paper.)

Multi-Objective

La maggior parte dei processi di ottimizzazione e degli hyperparameter tuner punta a massimizzare un'unica metrica. È anche l'uso più comune di Vertex AI Vizier. Tuttavia, potreste voler ottimizzare più metriche contemporaneamente. In un A/B test di un sito web, per esempio, potreste voler massimizzare sia i ricavi sia il tempo di permanenza sul sito. Oppure potreste avere un mercato a due lati e voler garantire offerte vantaggiose agli acquirenti senza rinunciare a far massimizzare i profitti ai venditori.

Per illustrare il concetto con un esempio semplice, potete dare un'occhiata a questo Notebook di esempio di Google, che massimizza due funzioni trigonometriche degli stessi due parametri di input.

Vertex AI Vizier

Figura 2. Non esiste un unico punto ottimale per entrambe le funzioni.

Chiaramente non esiste un unico punto in cui entrambe le metriche risultino massimizzate, perciò Vertex AI Vizier individua la frontiera di Pareto: una linea oltre la quale non è possibile migliorare una metrica senza peggiorarne un'altra. L'ottimo non è un punto: è un confine.

Prossimo capitolo: flessibilità e i primi notebook ML su Vizier

Vizier è un sistema lineare e si può (e in genere si dovrebbe) utilizzare con le impostazioni predefinite. Resta comunque possibile affinarne ulteriormente le funzionalità. Nel prossimo articolo vedremo come farlo e forniremo alcuni esempi di codice.

Si veda la Parte 3 " Oltre le basi: configurabilità di Vizier ed esempi di codice"