Guida per principianti su Ottieni previsioni

Questa guida per nuovi utenti è un'introduzione per ottenere previsioni da modelli personalizzati su Vertex AI.

Obiettivi di apprendimento

Livello di esperienza con Vertex AI: principiante

Tempo di lettura stimato: 15 minuti

Cosa imparerai a fare:

  • Vantaggi dell'utilizzo di un servizio di previsione gestito.
  • Come funzionano le previsioni batch in Vertex AI.
  • Come funzionano le previsioni online in Vertex AI.

Perché utilizzare un servizio di previsione gestito?

Immagina di dover creare un modello che prenda come input un'immagine di una pianta e ne preveda la specie. Per iniziare, puoi addestrare un modello in un blocco note, provando diversi iperparametri e architetture. Una volta addestrato il modello, puoi chiamare il metodo predict nel framework ML che preferisci e testare la qualità del modello.

Questo flusso di lavoro è ideale per la sperimentazione, ma se vuoi utilizzare il modello per ottenere previsioni su molti dati o ottenere previsioni in tempo reale con bassa latenza, avrai bisogno di qualcosa di più di un notebook. Ad esempio, supponiamo che tu stia cercando di misurare la biodiversità di un particolare ecosistema e che, anziché lasciare che gli esseri umani identifichino e contino manualmente le specie di piante in circolazione, vuoi utilizzare questo modello di ML per classificare grandi batch di immagini. Se utilizzi un blocco note, potresti raggiungere vincoli di memoria. Inoltre, è probabile che la generazione di previsioni per tutti questi dati sia un job a lunga esecuzione che potrebbe scadere nel blocco note.

Oppure, se volessi utilizzare questo modello in un'applicazione in cui gli utenti potessero caricare immagini di piante e identificarle immediatamente? Avrai bisogno di un posto in cui ospitare il modello esistente all'esterno di un blocco note a cui l'applicazione può chiamare per una previsione. Inoltre, è improbabile che tu abbia un traffico costante verso il tuo modello, quindi ti consigliamo di utilizzare un servizio che possa eseguire la scalabilità automatica quando necessario.

In tutti questi casi, un servizio di previsione gestito ridurrà le difficoltà legate all'hosting e all'utilizzo dei modelli ML. Questa guida fornisce un'introduzione all'ottenimento di previsioni dai modelli ML su Vertex AI. Tieni presente che esistono personalizzazioni, funzionalità e modi di interfacciarsi con il servizio aggiuntivi che non sono trattati qui. Questa guida ha lo scopo di fornire una panoramica. Per ulteriori dettagli, consulta la documentazione sulle previsioni di Vertex AI.

Panoramica del servizio di previsione gestito

Vertex AI supporta le previsioni batch e online.

La previsione batch è una richiesta asincrona. È una soluzione adatta quando non hai bisogno di una risposta immediata e vuoi elaborare i dati accumulati in un'unica richiesta. Nell'esempio discusso nell'introduzione, questo sarebbe il caso d'uso che caratterizza la biodiversità.

Se vuoi ottenere previsioni a bassa latenza dai dati trasmessi al modello al volo, puoi utilizzare la previsione online. Nell'esempio discusso nell'introduzione, questo è il caso d'uso in cui vuoi incorporare il modello in un'app che aiuti gli utenti a identificare immediatamente le specie di piante.

Carica il modello in Vertex AI Model Registry

Per utilizzare il servizio di previsione, il primo passaggio consiste nel caricare il modello ML addestrato in Vertex AI Model Registry. Si tratta di un registry in cui puoi gestire il ciclo di vita dei tuoi modelli.

Crea una risorsa del modello

Quando addestri i modelli con il servizio di addestramento personalizzato Vertex AI, puoi fare in modo che il modello venga importato automaticamente nel registry al termine del job di addestramento. Se hai saltato questo passaggio o hai addestrato il tuo modello al di fuori di Vertex AI, puoi caricarlo manualmente tramite la console Google Cloud o l'SDK Vertex AI per Python puntando a una località di Cloud Storage con gli artefatti del modello salvato. Il formato di questi artefatto del modello potrebbe essere savedmodel.pb, model.joblib, model.pkl e così via, a seconda del framework ML che stai utilizzando.

Il caricamento degli elementi nel Model Registry di Vertex AI crea una risorsa Model, visibile nella console Google Cloud come mostrato di seguito.

risorsa modello

Seleziona un container

Quando importi un modello in Vertex AI Model Registry, devi associarlo a un contenitore affinché Vertex AI possa gestire le richieste di previsione.

Container predefiniti

Vertex AI fornisce container predefiniti che puoi utilizzare per le previsioni. I container predefiniti sono organizzati per framework ML e versione del framework e forniscono server di previsione HTTP che puoi utilizzare per fornire previsioni con una configurazione minima. Eseguono solo l'operazione di previsione del framework di machine learning, quindi se devi pre-elaborare i dati, questo deve avvenire prima di effettuare la richiesta di previsione. Analogamente, qualsiasi post-elaborazione deve avvenire dopo l'esecuzione della richiesta di previsione. Per un esempio di utilizzo di un container predefinito, consulta il blocco note Pubblicazione di modelli di immagini PyTorch con container predefiniti su Vertex AI

Container personalizzati

Se il tuo caso d'uso richiede librerie non incluse nei container predefiniti o se vuoi eseguire trasformazioni dei dati personalizzate nell'ambito della richiesta di previsione, puoi utilizzare un contenitore personalizzato che crei e invii ad Artifact Registry. Sebbene i container personalizzati consentano una maggiore personalizzazione, il contenitore deve eseguire un server HTTP. Nello specifico, il container deve ascoltare e rispondere ai controlli di attività, ai controlli di integrità e alle richieste di previsione. Nella maggior parte dei casi, usare un container predefinito, se possibile è l'opzione consigliata e più semplice. Per un esempio di utilizzo di un'architettura un container, consulta il blocco note GPU singola per la classificazione delle immagini PyTorch utilizzando Vertex Training con container personalizzato

Routine di previsione personalizzate

Se il tuo caso d'uso richiede trasformazioni di pre e post-elaborazione personalizzate e non vuoi l'overhead della creazione e della gestione di un container personalizzato, puoi utilizzare le routine di previsione personalizzate. Con le routine di previsione personalizzate, puoi fornire le trasformazioni dei dati come codice Python e, dietro le quinte, l'SDK Vertex AI per Python creerà un contenitore personalizzato che puoi testare localmente e di cui puoi eseguire il deployment in Vertex AI. Per un esempio di utilizzo delle routine di previsione personalizzate, consulta il notebook Routine di previsione personalizzate con Sklearn

Ottenere le previsioni batch

Una volta che il modello è in Vertex AI Model Registry, puoi inviare un job di previsione batch dalla console Google Cloud o dall'SDK Vertex AI per Python. Dovrai specificare posizione dei dati di origine, nonché quella in Cloud Storage o in BigQuery dove vuoi salvare i risultati. Puoi anche specificare il tipo di macchina su cui deve essere eseguito il job ed eventuali acceleratori facoltativi. Poiché il servizio di previsioni è completamente gestito, Vertex AI esegue di cui è stato eseguito il provisioning delle risorse di computing, eseguire l'attività di previsione e garantire l'eliminazione di risorse di computing al termine del job di previsione. Lo stato dei job di previsione batch può essere monitorato nella console Google Cloud.

stato previsione batch

Ricevi previsioni online

Se vuoi ottenere previsioni online, devi svolgere il passaggio aggiuntivo il deployment del modello in un endpoint Vertex AI. In questo modo, gli elementi del modello vengono associati alle risorse fisiche per il servizio a bassa latenza e viene creata una risorsa DeployedModel.

previsione online

Una volta eseguito il deployment del modello in un endpoint, questo accetta richieste come qualsiasi altro endpoint REST, il che significa che puoi chiamarlo da una funzione Cloud Run, da un chatbot, da un'app web e così via. Tieni presente che puoi eseguire il deployment di più modelli in un singolo endpoint, suddividendo il traffico tra di loro. Questa funzionalità è utile, ad esempio, se vuoi implementare una nuova versione del modello, ma non vuoi indirizzare immediatamente tutto il traffico al nuovo modello. Puoi anche eseguire il deployment dello stesso modello in più endpoint.

Risorse per ottenere previsioni da modelli personalizzati su Vertex AI

Per scoprire di più sull'hosting e sulla pubblicazione di modelli su Vertex AI, consulta quanto segue o fare riferimento alle Repository GitHub di esempi di Vertex AI.