Ottenere previsioni Guida per nuovi utenti

Questa guida per principianti è un'introduzione a come ottenere previsioni da modelli personalizzati su Vertex AI.

Obiettivi di apprendimento

Livello di esperienza Vertex AI: principiante

Tempo di lettura stimato: 15 minuti

Cosa imparerai:

  • 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 preveda come input l'immagine di una pianta e preveda la specie. Puoi iniziare addestrando un modello in un blocco note, provando diversi iperparametri e architetture. Se hai un modello addestrato, puoi chiamare il metodo predict nel tuo framework ML preferito e testare la qualità del modello.

Questo flusso di lavoro è ottimo per la sperimentazione, ma quando vuoi utilizzare il modello per ottenere previsioni su molti dati o ottenere previsioni a bassa latenza in tempo reale, avrai bisogno di qualcosa di più di un blocco note. Ad esempio, supponiamo che tu stia cercando di misurare la biodiversità di un particolare ecosistema e invece di lasciare che gli esseri umani identifichino e contino manualmente le specie vegetali allo stato brado, vuoi utilizzare questo modello di ML per classificare grandi lotti di immagini. Se utilizzi un blocco note, potresti raggiungere limiti di memoria. Inoltre, ottenere previsioni per tutti questi dati è probabilmente un job a lunga esecuzione che potrebbe scadere nel tuo blocco note.

O se volessi utilizzare questo modello in un'applicazione in cui gli utenti potessero caricare immagini di piante e farle identificare immediatamente? Dovrai trovare un posto in cui ospitare il modello esistente al di fuori 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 servirà un servizio in grado di scalare automaticamente quando necessario.

In tutti questi casi, un servizio di previsione gestito ridurrà l'attrito dovuto all'hosting e all'utilizzo dei modelli di ML. Questa guida fornisce un'introduzione a come ottenere previsioni dai modelli ML su Vertex AI. Tieni presente che ci sono ulteriori personalizzazioni, funzionalità e modi di interfacciarsi con il servizio che non sono trattati qui. Questa guida ha lo scopo di fornire una panoramica. Per ulteriori dettagli, consulta la documentazione di Vertex AI Predictions.

Panoramica del servizio di previsione gestito

Vertex AI supporta le previsioni batch e online.

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

Se vuoi ricevere all'istante previsioni a bassa latenza dai dati trasmessi al tuo modello, puoi utilizzare la previsione online. Nell'esempio discusso nell'introduzione, si tratta del caso d'uso in cui vuoi incorporare il tuo modello in un'app che aiuta gli utenti a identificare immediatamente le specie di piante.

Carica il modello in Vertex AI Model Registry

Per utilizzare il servizio di previsione, la prima cosa da fare è caricare il modello ML addestrato in Vertex AI Model Registry. Si tratta di un registry in cui puoi gestire il ciclo di vita dei modelli.

Crea una risorsa del modello

Durante l'addestramento di modelli con il servizio di addestramento personalizzato di Vertex AI, puoi fare in modo che il modello venga importato automaticamente nel registro 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 salvati. Il formato di questi elementi del modello potrebbe essere savedmodel.pb, model.joblib, model.pkl e così via, a seconda del framework ML che stai utilizzando.

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

risorsa del modello

Seleziona un contenitore

Quando importi un modello in Vertex AI Model Registry, devi associarlo a un container per consentire a Vertex AI di gestire le richieste di previsione.

Container predefiniti

Vertex AI fornisce container predefiniti che puoi utilizzare per le previsioni. I container predefiniti sono organizzati in base al framework ML e alla 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, questa operazione deve essere eseguita prima di effettuare la richiesta di previsione. Analogamente, qualsiasi post-elaborazione deve avvenire dopo che hai eseguito la richiesta di previsione. Per un esempio di utilizzo di un container predefinito, consulta il blocco note Pubblicare 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 hai trasformazioni di dati personalizzate che vuoi eseguire come parte della richiesta di previsione, puoi utilizzare un container personalizzato che crei ed esegui il push ad Artifact Registry. Sebbene i container personalizzati consentano una maggiore personalizzazione, devono eseguire un server HTTP. In particolare, il container deve rimanere in ascolto e rispondere ai controlli di attività, ai controlli di integrità e alle richieste di previsione. Nella maggior parte dei casi, consigliamo di usare un container predefinito, se possibile. Per un esempio di utilizzo di un container personalizzato, consulta il blocco note PyTorch Image Classification Single GPU using Vertex Training with Custom Container

Routine di previsione personalizzate

Se il tuo caso d'uso richiede trasformazioni personalizzate di pre e post-elaborazione e preferisci evitare l'overhead associato alla creazione e alla 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 crea un container personalizzato che puoi testare in locale e di cui puoi eseguire il deployment su Vertex AI. Per un esempio di utilizzo delle routine di previsione personalizzate, consulta il blocco note Routine di previsione personalizzate con Sklearn.

Recupero 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 la località dei dati di origine e la località in Cloud Storage o BigQuery in cui vuoi salvare i risultati. Puoi anche specificare il tipo di macchina su cui vuoi che venga eseguito il job ed eventuali acceleratori facoltativi. Poiché il servizio di previsioni è completamente gestito, Vertex AI esegue automaticamente il provisioning delle risorse di calcolo, esegue l'attività di previsione e garantisce l'eliminazione delle risorse di calcolo 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 eseguire l'ulteriore passaggio del deployment del modello in un endpoint Vertex AI. In questo modo gli artefatti del modello vengono associati a risorse fisiche per la pubblicazione a bassa latenza e viene creata una risorsa DeployedModel.

previsione online

Dopo il deployment del modello in un endpoint, accetta richieste come qualsiasi altro endpoint REST, il che significa che puoi chiamarlo da una Cloud Function, un chatbot, un'app web e così via. Tieni presente che puoi eseguire il deployment di più modelli in un singolo endpoint, dividendo il traffico tra i due. 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 le seguenti risorse o fai riferimento al repository GitHub di Vertex AI Samples.