Best practice per l'implementazione del machine learning su Google Cloud

Last reviewed 2022-12-15 UTC

Questo documento introduce le best practice per l'implementazione del machine learning (ML) su Google Cloud, con particolare attenzione ai modelli con addestramento personalizzato basati sui tuoi dati e sul tuo codice. Forniamo suggerimenti su come sviluppare un modello con addestramento personalizzato durante il flusso di lavoro di machine learning, inclusi azioni chiave e link per ulteriori approfondimenti.

Il seguente diagramma offre una panoramica generale delle fasi del flusso di lavoro ML affrontate in questo documento, che includono:

  1. Sviluppo ML
  2. Trattamento dati
  3. Formazione operativa
  4. Deployment e gestione dei modelli
  5. Orchestrazione del flusso di lavoro ML
  6. Organizzazione degli artefatti
  7. Monitoraggio del modello

Flusso di lavoro del machine learning su Google Cloud

Il documento non include un elenco esaustivo di suggerimenti; il suo obiettivo è aiutare i data scientist e i machine learning architect a comprendere l'ambito delle attività coinvolte nell'utilizzo del machine learning su Google Cloud e a pianificare di conseguenza. Anche se le alternative di sviluppo ML come AutoML sono menzionate in Utilizzare gli strumenti e i prodotti consigliati, questo documento è incentrato sui modelli addestrati personalizzati.

Prima di seguire le best practice riportate in questo documento, ti consigliamo di leggere l'articolo Introduzione a Vertex AI.

Ai fini del presente documento, si presume che:

  • Stai utilizzando principalmente i servizi Google Cloud; gli approcci ibridi e on-premise non sono trattati in questo documento.

  • Prevedi di raccogliere i dati di addestramento e di archiviarli in Google Cloud.

  • Hai una conoscenza di livello intermedio di machine learning, strumenti per big data e pre-elaborazione dei dati e hai familiarità con i concetti di base di Cloud Storage, BigQuery e Google Cloud.

Se non hai mai utilizzato il machine learning, consulta il Machine Learning Crash Course di Google.

La seguente tabella elenca gli strumenti e i prodotti consigliati per ogni fase del flusso di lavoro ML come descritto nel presente documento:

Passaggio del flusso di lavoro per il machine learning Strumenti e prodotti consigliati
Configurazione dell'ambiente ML
Sviluppo ML
Trattamento dati
Addestramento operativo
Deployment e gestione dei modelli
Orchestrazione del flusso di lavoro ML
Organizzazione degli artefatti
Monitoraggio del modello

Google offre AutoML, Vertex AI Forecast e BigQuery ML come alternative di routine di addestramento predefinite alle soluzioni di modelli con addestramento personalizzato di Vertex AI. La tabella seguente fornisce suggerimenti su quando utilizzare queste opzioni per Vertex AI.

Ambiente ML Description Scegli questo ambiente se...
BigQuery ML BigQuery ML riunisce dati, infrastruttura e tipi di modelli predefiniti in un unico sistema.
  • Tutti i tuoi dati sono contenuti in BigQuery.
  • Hai dimestichezza con SQL.
  • L'insieme di modelli disponibili in BigQuery ML corrisponde al problema che stai cercando di risolvere.
AutoML (nel contesto di Vertex AI) AutoML fornisce routine di addestramento per problemi comuni come la classificazione delle immagini e la regressione tabulare. Quasi tutti gli aspetti dell'addestramento e della gestione di un modello, come la scelta dell'architettura, l'ottimizzazione degli iperparametri e il provisioning delle macchine, vengono gestiti automaticamente.
Modelli addestrati personalizzati Vertex AI Vertex consente di eseguire routine di addestramento personalizzate ed eseguire il deployment di modelli di qualsiasi tipo su un'architettura serverless. Vertex AI offre servizi aggiuntivi, come l'ottimizzazione e il monitoraggio degli iperparametri, per semplificare lo sviluppo di un modello. Vedi Scegliere un metodo di addestramento personalizzato.
  • Il problema non corrisponde ai criteri elencati in questa tabella per BigQuery ML o AutoML.
  • Stai già eseguendo la formazione on-premise o su un'altra piattaforma cloud e hai bisogno di coerenza tra le piattaforme.

Configurazione dell'ambiente di machine learning

Utilizza i blocchi note di Vertex AI Workbench per la sperimentazione e lo sviluppo

Indipendentemente dagli strumenti, ti consigliamo di utilizzare i blocchi note di Vertex AI Workbench per la sperimentazione e lo sviluppo, incluse la scrittura di codice, l'avvio di job, l'esecuzione di query e il controllo dello stato. Le istanze di blocco note ti consentono di accedere a tutti i servizi di dati e intelligenza artificiale (AI) di Google Cloud in modo semplice e riproducibile.

Le istanze di blocco note offrono anche un set sicuro di software e pattern di accesso fin dall'installazione. È pratica comune personalizzare le proprietà Google Cloud come Network and Identity and Access Management e il software (tramite un container) associato a un'istanza di blocco note. Per ulteriori informazioni, consulta Componenti di Vertex AI e Introduzione ai blocchi note gestiti dall'utente.

Crea un'istanza di blocco note per ogni membro del team

Crea un'istanza di blocchi note gestiti dall'utente per ogni membro del team di data science. Se un membro del team è coinvolto in più progetti, in particolare con progetti con dipendenze diverse, consigliamo di utilizzare più istanze di blocco note e di considerare ogni istanza come un'area di lavoro virtuale. Tieni presente che puoi arrestare le istanze di blocco note quando non vengono utilizzate.

Archivia risorse e artefatti di ML in base ai criteri aziendali

Il controllo dell'accesso più semplice consiste nell'archiviare le risorse e gli artefatti non elaborati e Vertex AI, come set di dati e modelli, nello stesso progetto Google Cloud. Più in genere, la tua azienda prevede criteri che controllano l'accesso. Nei casi in cui le risorse e gli artefatti siano archiviati in più progetti, puoi configurare il controllo dell'accesso tra progetti aziendale con Identity and Access Management (IAM).

Usa l'SDK Vertex AI per Python

Utilizza l'SDK Vertex AI per Python, un metodo Python per utilizzare Vertex AI per i flussi di lavoro di creazione di modelli end-to-end, che funziona perfettamente con i tuoi framework ML preferiti, tra cui PyTorch, TensorFlow, XGBoost e scikit-learn.

In alternativa, puoi utilizzare la console Google Cloud, che supporta la funzionalità di Vertex AI come interfaccia utente tramite browser.

Sviluppo del machine learning

Lo sviluppo del machine learning riguarda la preparazione dei dati, la sperimentazione e la valutazione del modello. Per risolvere un problema di machine learning, è in genere necessario creare e confrontare molti modelli diversi per capire quale funziona meglio.

In genere, i data scientist addestrano modelli utilizzando architetture, set di dati di input, iperparametri e hardware diversi. I data scientist valutano i modelli risultanti esaminando metriche di prestazioni aggregate come accuratezza, precisione e richiamo sui set di dati di test. Infine, i data scientist valutano le prestazioni dei modelli rispetto a sottoinsiemi di dati specifici, versioni diverse dei modelli e architetture dei modelli differenti.

Preparare i dati di addestramento

I dati utilizzati per addestrare un modello possono provenire da un numero qualsiasi di sistemi, ad esempio log di un sistema di servizi online, immagini di un dispositivo locale o documenti copiati dal web.

Indipendentemente dall'origine dei dati, estrai i dati dai sistemi di origine e convertili nel formato e nell'archiviazione (separati dall'origine operativa) ottimizzati per l'addestramento ML. Per ulteriori informazioni sulla preparazione dei dati di addestramento per l'utilizzo con Vertex AI, consulta Preparare i dati di addestramento per l'utilizzo con Vertex AI.

Archivia dati strutturati e semistrutturati in BigQuery

Se lavori con dati strutturati o semistrutturati, ti consigliamo di archiviare tutti i dati in BigQuery, seguendo il consiglio di BigQuery per la struttura del progetto. Nella maggior parte dei casi, puoi archiviare dati intermedi elaborati anche in BigQuery. Per la massima velocità, è meglio archiviare i dati materializzati invece di utilizzare viste o sottoquery per i dati di addestramento.

Leggi i dati da BigQuery utilizzando l'API BigQuery Storage. Per il monitoraggio degli artefatti, valuta l'utilizzo di un set di dati tabulare gestito. La seguente tabella elenca gli strumenti di Google Cloud che semplificano l'utilizzo dell'API:

Se utilizzi... Utilizza questo strumento Google Cloud
TensorFlow o Keras Lettore tf.data.dataset per BigQuery
TFX Client BigQuery
Dataflow Connettore I/O BigQuery
Qualsiasi altro framework (come PyTorch, XGBoost o scilearn-kit) Libreria client Python di BigQuery

Archivia dati di immagini, video, audio e non strutturati su Cloud Storage

Archivia questi dati in container di grandi dimensioni in Cloud Storage. Questo si applica ai file TFRecord con sharding se utilizzi TensorFlow o file Avro se utilizzi qualsiasi altro framework.

Combina più immagini, video o clip audio in file di grandi dimensioni, per migliorare la velocità effettiva di lettura e scrittura in Cloud Storage. Punta a file di almeno 100 MB e con un numero di shard compreso tra 100 e 10.000.

Per abilitare la gestione dei dati, utilizza i bucket e le directory Cloud Storage per raggruppare gli shard. Per ulteriori informazioni, consulta Che cos'è Cloud Storage?

Utilizza Vertex AI Data Labeling per dati non strutturati

Potresti aver bisogno di persone che forniscano etichette ai tuoi dati, soprattutto se si tratta di dati non strutturati. Utilizza Vertex AI Data Labeling per questo lavoro. Puoi assumere i tuoi etichettatori e utilizzare il software di Google Cloud per gestire il loro lavoro oppure puoi utilizzare gli etichettatori interni di Google per l'attività. Per ulteriori informazioni, consulta Richiesta di etichettatura dei dati.

Utilizzare Vertex AI Feature Store con i dati strutturati

Quando addestra un modello con dati strutturati, indipendentemente da dove lo stai addestrando, segui questi passaggi:

  1. Cerca in Vertex AI Feature Store per determinare se le caratteristiche esistenti soddisfano i tuoi requisiti.

    1. Apri Vertex AI Feature Store ed esegui una ricerca per vedere se esiste già una funzionalità che riguardi il tuo caso d'uso o copre l'indicatore che ti interessa trasmettere al modello.

    2. Se vuoi utilizzare delle caratteristiche in Vertex AI Feature Store, recuperale per le etichette di addestramento utilizzando la funzionalità di recupero dati in batch di Vertex AI Feature Store.

  2. Crea una nuova funzionalità. Se Vertex AI Feature Store non dispone delle funzionalità di cui hai bisogno, crea una nuova funzionalità utilizzando i dati del tuo data lake.

    1. Recupera i dati non elaborati dal data lake e scrivi i tuoi script per eseguire l'elaborazione e l'ingegneria delle funzionalità necessarie.

    2. Unisci i valori delle caratteristiche che hai recuperato da Vertex AI Feature Store e ai nuovi valori delle caratteristiche che hai creato dal data lake. L'unione di questi valori delle caratteristiche produce il set di dati di addestramento.

    3. Configura un job periodico per calcolare i valori aggiornati della nuova funzionalità. Dopo aver determinato che una funzionalità è utile e vuoi metterla in produzione, configura un job pianificato regolarmente con la frequenza richiesta per calcolare i valori aggiornati della caratteristica e importarla in Vertex AI Feature Store. Aggiungendo la nuova funzionalità a Vertex AI Feature Store, avrai automaticamente una soluzione per la gestione online delle caratteristiche (per i casi d'uso di previsione online) e potrai condividere la tua funzionalità con altri utenti dell'organizzazione che potrebbero trarne valore per i loro modelli di ML.

Per scoprire di più, consulta Vertex AI Feature Store.

Evitare di archiviare dati in un'archiviazione a blocchi

Evita di archiviare i dati in un'archiviazione a blocchi, come i file system di rete, o i dischi rigidi delle macchine virtuali (VM). Questi strumenti sono più difficili da gestire rispetto a Cloud Storage o BigQuery e spesso pongono problemi nell'ottimizzazione delle prestazioni. Analogamente, evita di leggere i dati direttamente da database come Cloud SQL. Archivia i dati in BigQuery e Cloud Storage. Per ulteriori informazioni, consulta la documentazione di Cloud Storage e la pagina Introduzione al caricamento dei dati per BigQuery.

Utilizzare gli esperimenti Vertex AI TensorBoard e Vertex AI per analizzare gli esperimenti

Durante lo sviluppo dei modelli, utilizza Vertex AI TensorBoard per visualizzare e confrontare esperimenti specifici, ad esempio in base agli iperparametri. Vertex AI TensorBoard è un servizio Vertex AI TensorBoard gestito di livello enterprise con una soluzione sicura ed economica che consente a data scientist e ricercatori ML di collaborare facilmente, semplificando il monitoraggio, il confronto e la condivisione degli esperimenti. Vertex AI TensorBoard consente di monitorare le metriche degli esperimenti come perdita e accuratezza nel tempo, visualizzare il grafico dei modelli, proiettare incorporamenti in uno spazio dimensionale inferiore e molto altro.

Utilizza Vertex AI Experiments per l'integrazione con Vertex ML Metadata e per registrare e creare collegamenti tra parametri, metriche, set di dati e artefatti del modello.

Addestra un modello all'interno di un'istanza di blocco note per set di dati di piccole dimensioni

L'addestramento di un modello all'interno dell'istanza del blocco note può essere sufficiente per set di dati di piccole dimensioni o sottoinsiemi di un set di dati più grande. Può essere utile utilizzare il servizio di addestramento per set di dati più grandi o per l'addestramento distribuito. Si consiglia inoltre di utilizzare il servizio di addestramento di Vertex AI per produrre l'addestramento anche su set di dati di piccole dimensioni se l'addestramento viene eseguito in base a una pianificazione o in risposta all'arrivo di dati aggiuntivi.

Massimizza l'accuratezza predittiva del modello con l'ottimizzazione degli iperparametri

Per massimizzare l'accuratezza predittiva del tuo modello, utilizza l'ottimizzazione degli iperparametri, il potenziamento automatizzato dei modelli fornito da Vertex AI Training, che sfrutta l'infrastruttura di elaborazione di Google Cloud e Vertex AI Vizier per testare diverse configurazioni degli iperparametri durante l'addestramento del modello. L'ottimizzazione degli iperparametri elimina la necessità di regolare manualmente gli iperparametri nel corso di numerose esecuzioni di addestramento per arrivare ai valori ottimali.

Per saperne di più sull'ottimizzazione degli iperparametri, vedi Panoramica dell'ottimizzazione degli iperparametri e Utilizzo dell'ottimizzazione degli iperparametri.

Utilizza un'istanza di blocco note per comprendere i tuoi modelli

Utilizza un'istanza di blocco note per valutare e comprendere i tuoi modelli. Oltre alle librerie comuni integrate come scikit-learn, le istanze di blocco note includono lo strumento What-if (WIT) e lo Strumento di interpretabilità del linguaggio (LIT). WIT consente di analizzare in modo interattivo i bias utilizzando diverse tecniche, mentre LIT consente di comprendere il comportamento del modello di elaborazione del linguaggio naturale tramite uno strumento visivo, interattivo ed estensibile.

Utilizza le attribuzioni delle caratteristiche per ottenere insight sulle previsioni dei modelli

Vertex Explainable AI è parte integrante del processo di implementazione del ML, poiché offre attribuzioni delle funzionalità per fornire insight sul motivo per cui i modelli generano previsioni. Spiegando in dettaglio l'importanza di ogni caratteristica utilizzata da un modello come input per fare una previsione, Vertex Explainable AI ti aiuta a comprendere meglio il comportamento del modello e a creare fiducia nei tuoi modelli.

Vertex Explainable AI supporta modelli addestrati personalizzati basati su dati tabulari e immagine.

Per saperne di più su Vertex Explainable AI, vedi:

Trattamento dati

L'approccio consigliato per il trattamento dei dati dipende dal framework e dai tipi di dati che utilizzi. Questa sezione fornisce consigli generali per scenari comuni.

Utilizzare BigQuery per elaborare dati strutturati e semistrutturati

Utilizza BigQuery per archiviare dati strutturati o semi-strutturati non elaborati. Se crei il tuo modello con BigQuery ML, utilizza le trasformazioni integrate in BigQuery per la pre-elaborazione dei dati. Se usi AutoML, usa le trasformazioni integrate in AutoML per la pre-elaborazione dei dati. Se stai creando un modello personalizzato, l'utilizzo delle trasformazioni BigQuery potrebbe essere il metodo più conveniente.

Utilizza Dataflow per elaborare i dati

Con grandi volumi di dati, puoi utilizzare Dataflow, che impiega il modello di programmazione Apache Beam. Puoi utilizzare Dataflow per convertire i dati non strutturati in formati di dati binari come TFRecord, che può migliorare le prestazioni di importazione dati durante il processo di addestramento.

Utilizzo di Dataproc per l'elaborazione dei dati Spark serverless

In alternativa, se la tua organizzazione ha un investimento nel codebase e nelle competenze di Apache Spark, può utilizzare Dataproc. Utilizza script Python una tantum per set di dati più piccoli che rientrano nella memoria.

Se devi eseguire trasformazioni non esprimibili in Cloud SQL o per i flussi, puoi utilizzare una combinazione di Dataflow e la libreria panda.

Utilizzare set di dati gestiti con metadati ML

Dopo che i dati sono stati pre-elaborati per il machine learning, valuta l'utilizzo di un set di dati gestito in Vertex AI. I set di dati gestiti consentono di creare un collegamento chiaro tra i dati e i modelli addestrati personalizzati, nonché di fornire statistiche descrittive e la suddivisione automatica o manuale in set di addestramento, test e convalida.

I set di dati gestiti non sono obbligatori; puoi scegliere di non utilizzarli se vuoi un maggiore controllo sulla suddivisione dei dati nel codice di addestramento o se la derivazione tra i dati e il modello non è fondamentale per la tua applicazione.

Per ulteriori informazioni, consulta Set di dati e Utilizzo di un set di dati gestito in un'applicazione di addestramento personalizzato.

Formazione operativa

L'addestramento operativo è il processo di rendere ripetibile l'addestramento di un modello, di tenere traccia delle ripetizioni e di gestire le prestazioni. Sebbene i blocchi note di Vertex AI Workbench siano comodi per lo sviluppo iterativo su set di dati di piccole dimensioni, ti consigliamo di rendere il codice riproducibile e scalabile su set di dati di grandi dimensioni. In questa sezione, illustreremo gli strumenti e le best practice per l'operatività delle routine di addestramento.

Esegui il codice in un servizio gestito

Ti consigliamo di eseguire il codice nel servizio di addestramento Vertex AI o in Vertex AI Pipelines.

Facoltativamente, puoi eseguire il codice direttamente in un container di macchine virtuali per il deep learning o su Compute Engine. Tuttavia, sconsigliamo di utilizzare questo approccio perché i servizi gestiti di Vertex AI offrono funzionalità di scalabilità automatica e burst più convenienti.

Rendi operativa l'esecuzione dei job con le pipeline di addestramento

Creare pipeline di addestramento per rendere operativa l'esecuzione dei job di addestramento su Vertex AI. Una pipeline di addestramento, diversa da una pipeline ML generale, incapsula i job di addestramento. Per scoprire di più sulle pipeline di addestramento, consulta Creazione di pipeline di addestramento e Risorsa REST: projects.locations.trainingPipelines.

Utilizzare i checkpoint di addestramento per salvare lo stato attuale dell'esperimento

Il flusso di lavoro ML in questo documento presuppone che l'addestramento non sia interattivo. Se il modello non funziona e non è sottoposto a checkpoint, il job di addestramento o la pipeline verranno completati e i dati andranno persi perché il modello non è in memoria. Per evitare questo scenario, pratica di usare sempre checkpoint di addestramento per assicurarti di non perdere lo stato.

Ti consigliamo di salvare i checkpoint di addestramento in Cloud Storage. Crea una cartella diversa per ogni esperimento o addestramento.

Per scoprire di più sui checkpoint, consulta Checkpoint di addestramento per TensorFlow Core, Salvataggio e caricamento di un checkpoint generale in PyTorch e Machine learning Design pattern.

Prepara gli artefatti del modello per la gestione in Cloud Storage

Per i modelli con addestramento personalizzato o i container personalizzati, archivia gli artefatti del modello in un bucket Cloud Storage, dove la regione del bucket corrisponde all'endpoint a livello di regione che stai utilizzando per la produzione. Consulta Regioni dei bucket per ulteriori informazioni.

Archivia il bucket Cloud Storage nello stesso progetto Google Cloud. Se il bucket Cloud Storage si trova in un progetto Google Cloud diverso, devi concedere l'accesso a Vertex AI per leggere gli artefatti del modello.

Se utilizzi un container predefinito per Vertex AI, assicurati che gli artefatti del modello abbiano nomi file che corrispondano esattamente a questi esempi:

  • SaveModel di TensorFlow: saved_model.pb

  • Scikit-learn: model.joblib o model.pkl

  • Boost XG: model.bst

  • PyTorch: model.pth

Per informazioni su come salvare il modello sotto forma di uno o più artefatti del modello, consulta Esportazione degli artefatti del modello per la previsione.

Calcola regolarmente nuovi valori delle caratteristiche

Spesso, un modello utilizza un sottoinsieme di caratteristiche provenienti da Vertex AI Feature Store. Le funzionalità di Vertex AI Feature Store saranno già pronte per la pubblicazione online. Per tutte le nuove funzionalità create dai data scientist mediante l'approvvigionamento dei dati dal data lake, ti consigliamo di pianificare i job corrispondenti di elaborazione dei dati e feature engineering (o idealmente Dataflow) per calcolare regolarmente i nuovi valori delle nuove funzionalità con la cadenza richiesta, a seconda delle esigenze di aggiornamento delle caratteristiche, e importarli in Vertex AI Feature Store per la pubblicazione online o batch.

Deployment e gestione dei modelli

Per deployment e pubblicazione del modello si intende la messa in produzione di un modello. L'output del job di addestramento è uno o più artefatti del modello archiviati in Cloud Storage, che puoi caricare in Vertex AI Model Registry in modo che il file possa essere utilizzato per fornire previsioni. Esistono due tipi di previsioni: la previsione batch viene utilizzata per assegnare un punteggio a batch di dati a cadenza regolare, mentre la previsione online viene utilizzata per il calcolo del punteggio dei dati quasi in tempo reale per le applicazioni in tempo reale. Entrambi gli approcci consentono di ottenere previsioni dai modelli addestrati passando i dati di input a un modello ML ospitato nel cloud e ottenendo inferenze per ogni istanza di dati.Per scoprire di più, consulta Ottenere previsioni batch e Ottenere previsioni online da modelli con addestramento personalizzato.

Per ridurre la latenza per le richieste peer-to-peer tra il client e il server del modello, utilizza gli endpoint privati di Vertex AI. Questi sono particolarmente utili se l'applicazione che effettua le richieste di previsione e il programma binario di pubblicazione si trovano all'interno della stessa rete locale. Puoi evitare l'overhead del routing a internet e creare una connessione peer-to-peer utilizzando il Virtual Private Cloud.

Specifica il numero e i tipi di macchine di cui hai bisogno

Per eseguire il deployment del tuo modello per la previsione, scegli l'hardware appropriato per il tuo modello, ad esempio diversi tipi di macchine virtuali (VM) o di unità di elaborazione centrale (CPU) o di GPU (Graphics Processing Unit). Per ulteriori informazioni, consulta Specifica dei tipi di macchina o dei livelli di scalabilità.

Pianifica gli input per il modello

Oltre a eseguire il deployment del modello, dovrai determinare in che modo passerai gli input al modello. Se utilizzi la previsione batch, puoi recuperare i dati dal data lake o dall'API di recupero dati in batch di Vertex AI Feature Store. Se utilizzi la previsione online, puoi inviare istanze di input al servizio, che restituirà le previsioni nella risposta. Per ulteriori informazioni, consulta Dettagli del corpo della risposta.

Se esegui il deployment del modello per la previsione online, hai bisogno di un modo scalabile e a bassa latenza per fornire gli input o le caratteristiche che devono essere passati all'endpoint del modello. A questo scopo, puoi utilizzare uno dei numerosi servizi di database su Google Cloud oppure utilizzare l'API di pubblicazione online di Vertex AI Feature Store. I client che chiamano l'endpoint di previsione online possono prima chiamare la soluzione di gestione delle funzionalità per recuperare gli input delle funzionalità, quindi chiamare l'endpoint di previsione con questi input.

L'importazione di flussi di dati ti consente di aggiornare in tempo reale i valori delle funzionalità. Questo metodo è utile quando è prioritario avere i dati più recenti disponibili per la pubblicazione online. Ad esempio, puoi importare dati di eventi di flussi di dati e, entro pochi secondi, l'importazione di flussi di dati di Vertex AI Feature Store li rende disponibili per scenari di pubblicazione online.

Puoi inoltre personalizzare la gestione e la formattazione di input (richiesta) e output (risposta) da e verso il server dei modelli utilizzando le routine di previsione personalizzate.

Attiva la scalabilità automatica

Se utilizzi il servizio di previsione online, nella maggior parte dei casi ti consigliamo di attivare la scalabilità automatica impostando il numero minimo e massimo di nodi. Per ulteriori informazioni, consulta Ottenere previsioni per un modello con addestramento personalizzato. Per garantire un accordo sul livello del servizio (SLA) ad alta disponibilità, imposta la scalabilità automatica con un minimo di due nodi.

Per saperne di più sulle opzioni di scalabilità, consulta Scalare le previsioni di machine learning.

Orchestrazione del flusso di lavoro di machine learning

Vertex AI fornisce l'orchestrazione del flusso di lavoro ML per automatizzare il flusso di lavoro ML con Vertex AI Pipelines, un servizio completamente gestito che consente di riaddestrare i modelli tutte le volte che è necessario. Anche se il riaddestramento consente ai modelli di adattarsi ai cambiamenti e mantenere le prestazioni nel tempo, valuta di quanto cambieranno i dati quando scegli la frequenza di riaddestramento ottimale.

I flussi di lavoro di orchestrazione ML funzionano meglio per i clienti che hanno già progettato e creato il proprio modello, lo hanno messo in produzione e vogliono determinare cosa funziona e cosa no nel modello ML. Il codice che usi per la sperimentazione sarà probabilmente utile per il resto del flusso di lavoro ML con alcune modifiche. Per lavorare con flussi di lavoro ML automatizzati, devi conoscere bene Python, comprendere l'infrastruttura di base come i container e avere una conoscenza di ML e data science.

Utilizza Vertex AI Pipelines per orchestrare il flusso di lavoro ML

Sebbene tu possa avviare manualmente ogni processo dei dati, l'addestramento, la valutazione, il test e il deployment, ti consigliamo di utilizzare Vertex AI Pipelines per orchestrare il flusso. Per informazioni dettagliate, consulta MLOps level 1: ML pipeline automation.

Vertex AI Pipelines supporta l'esecuzione di DAG generati da KubeFlow, TensorFlow Extended (TFX) e Airflow.

Utilizzare Kubeflow Pipelines per la costruzione flessibile di pipeline

L'SDK Kubeflow Pipelines è consigliato per la maggior parte degli utenti che vogliono creare pipeline gestite. Kubeflow Pipelines è flessibile e ti consente di usare codice semplice per creare le pipeline e fornisce componenti di pipeline Google Cloud, che ti consentono di includere funzionalità di Vertex AI come AutoML nella tua pipeline. Per scoprire di più su Kubeflow Pipelines, consulta Kubeflow Pipelines e Vertex AI Pipelines.

Organizzazione degli artefatti

Gli artefatti sono output risultanti da ogni passaggio del flusso di lavoro ML. È consigliabile organizzarle in modo standardizzato.

Organizza gli artefatti del modello ML

Archivia i tuoi artefatti in queste posizioni:

Posizione di archiviazione Artefatti
Repository del controllo del codice sorgente
  • Vertex AI Workbench Notebooks
  • Codice sorgente della pipeline
  • Funzioni di pre-elaborazione
  • Codice sorgente del modello
  • Pacchetti di addestramento dei modelli
  • Funzioni di pubblicazione
Esperimenti e metadati ML
  • Esperimenti
  • Parametri
    • Iperparametri
    • Metaparametri
  • Metriche
  • Artefatti del set di dati
  • Artefatti del modello
  • Metadati pipeline
Vertex AI Model Registry
  • Modelli addestrati
Artifact Registry
  • Container pipeline
  • Ambienti di addestramento personalizzati
  • Ambienti di previsione personalizzati
Previsione Vertex AI
  • Modelli sottoposti a deployment

Usa un repository di controllo del codice sorgente per le definizioni delle pipeline e il codice di addestramento

Puoi utilizzare il controllo del codice sorgente per controllare la versione delle pipeline ML e dei componenti personalizzati che crei per queste pipeline. Utilizza Artifact Registry per archiviare, gestire e proteggere le immagini dei container Docker senza renderle visibili pubblicamente.

Monitoraggio del modello

Una volta eseguito il deployment del modello in produzione, devi monitorare le prestazioni per assicurarti che le prestazioni del modello siano quelle previste. Vertex AI offre due modi per monitorare i modelli ML:

  • Rilevamento del disallineamento: questo approccio cerca il grado di distorsione tra i dati di addestramento del modello e quelli di produzione

  • Rilevamento delle deviazioni: in questo tipo di monitoraggio, sono necessarie le deviazioni nei dati di produzione. La deviazione si verifica quando le proprietà statistiche degli input e del target, che il modello sta cercando di prevedere, cambiano nel tempo in modi imprevisti. Questo crea problemi, perché le previsioni potrebbero diventare meno precise con il passare del tempo.

Il monitoraggio dei modelli funziona per i dati strutturati, come le caratteristiche numeriche e categoriche, ma non per i dati non strutturati, come le immagini. Per ulteriori informazioni, consulta la sezione Modelli di monitoraggio per disallineamenti o deviazioni delle funzionalità.

Utilizza il rilevamento di inclinazione e deviazioni

Utilizza il più possibile il rilevamento del disallineamento, in quanto sapere che i dati di produzione hanno deviato dai dati di addestramento è un chiaro indicatore del fatto che il modello non sta funzionando come previsto in produzione. Per il rilevamento del disallineamento, configura il job di monitoraggio del modello fornendo un puntatore ai dati di addestramento che hai utilizzato per addestrare il modello.

Se non hai accesso ai dati di addestramento, attiva il rilevamento delle deviazioni in modo da sapere quando gli input cambiano nel tempo.

Utilizza il rilevamento delle deviazioni per monitorare eventuali deviazioni dei dati di produzione nel tempo. Per il rilevamento delle deviazioni, abilita le funzionalità che vuoi monitorare e le soglie corrispondenti per attivare un avviso.

Ottimizza le soglie di avviso

Ottimizza le soglie utilizzate per gli avvisi in modo da sapere quando si verificano disallineamenti o deviazioni nei dati. Le soglie di avviso sono determinate dal caso d'uso, dall'esperienza nell'ambito del dominio dell'utente e dalle metriche di monitoraggio iniziali del modello. Per scoprire come utilizzare il monitoraggio per creare dashboard o configurare avvisi basati sulle metriche, consulta Metriche di Cloud Monitoring.

Utilizzare le attribuzioni delle caratteristiche per rilevare deviazioni o disallineamenti dei dati

Puoi utilizzare le attribuzioni delle caratteristiche in Vertex Explainable AI per rilevare deviazioni o disallineamenti dei dati come indicatore precoce del possibile peggioramento delle prestazioni del modello. Ad esempio, se il modello inizialmente si basava su cinque caratteristiche per fare previsioni nei dati di addestramento e di test, ma il modello iniziasse a fare affidamento su caratteristiche completamente diverse quando è entrato in produzione, le attribuzioni delle caratteristiche ti aiuteranno a rilevare questo peggioramento delle prestazioni del modello.

Ciò è particolarmente utile per i tipi di funzionalità complessi, come gli incorporamenti e le serie temporali, che sono difficilmente comparabili con i metodi tradizionali di disallineamento e deriva. Con Vertex Explainable AI, le attribuzioni delle caratteristiche possono indicare quando le prestazioni del modello si riducono.

Passaggi successivi