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 su dati e codice. Forniamo consigli su come sviluppare un modello con addestramento personalizzato durante il flusso di lavoro di machine learning, compresi azioni chiave e link per ulteriori letture.

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

  1. sviluppo ML
  2. Elaborazione dei dati
  3. Formazione operativa
  4. deployment e distribuzione del modello
  5. Orchestrazione dei flussi di lavoro ML
  6. organizzazione degli artefatti
  7. Monitoraggio del modello

Flusso di lavoro di machine learning su Google Cloud

Il documento non è un elenco esaustivo dei suggerimenti; il suo obiettivo è aiutare i data scientist e gli architetti di machine learning a comprendere l'ambito delle attività coinvolte nell'utilizzo del ML su Google Cloud e 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 con addestramento personalizzato.

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

Ai fini del presente documento, si presume che:

  • Utilizzi 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 archiviarli in Google Cloud.

  • Avere una conoscenza di livello intermedio di machine learning, strumenti per big data e pre-elaborazione dei dati, nonché una conoscenza dei concetti fondamentali di Cloud Storage, BigQuery e Google Cloud.

Se non hai mai utilizzato il machine learning, dai un'occhiata al 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 in questo documento:

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

Google offre AutoML, Previsioni di Vertex AI 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 Descrizione Scegli questo ambiente se...
BigQuery ML BigQuery ML riunisce dati, infrastruttura e tipi di modelli predefiniti in un unico sistema.
  • Tutti i dati sono contenuti in BigQuery.
  • Non hai problemi con l'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 distribuzione di un modello, come la scelta dell'architettura, l'ottimizzazione degli iperparametri e il provisioning delle macchine, vengono gestiti automaticamente.
Modelli Vertex AI con addestramento personalizzato Vertex consente di eseguire routine di addestramento personalizzate ed eseguire il deployment di modelli di qualsiasi tipo sull'architettura serverless. Vertex AI offre servizi aggiuntivi, come ottimizzazione e monitoraggio degli iperparametri, per semplificare lo sviluppo di un modello. Consulta Scegliere un metodo di addestramento personalizzato.
  • Il tuo problema non corrisponde ai criteri elencati in questa tabella per BigQuery ML o AutoML.
  • Stai già eseguendo l'addestramento on-premise o su un'altra piattaforma cloud e hai bisogno di coerenza tra le piattaforme.

Configurazione dell'ambiente di machine learning

Usa le istanze di Vertex AI Workbench per la sperimentazione e lo sviluppo

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

Le istanze di Vertex AI Workbench offrono fin da subito un set sicuro di software e pattern di accesso. È prassi comune personalizzare le proprietà Google Cloud, come rete e Identity and Access Management, e il software (tramite un container) associato a un'istanza di Vertex AI Workbench. Consulta Introduzione a Vertex AI e Introduzione alle istanze di Vertex AI Workbench per ulteriori informazioni.

Crea un'istanza di Vertex AI Workbench per ogni membro del team

Crea un'istanza di Vertex AI Workbench per ogni membro del tuo team di data science. Se un membro del team è coinvolto in più progetti, in particolare in progetti con dipendenze diverse, consigliamo di utilizzare più istanze, di considerare ogni istanza come un'area di lavoro virtuale. Tieni presente che puoi arrestare le istanze di Vertex AI Workbench quando non vengono utilizzate.

Archivia le risorse e gli artefatti ML in base ai criteri aziendali

Il controllo dell'accesso più semplice prevede l'archiviazione di risorse e artefatti non elaborati e di Vertex AI, ad esempio set di dati e modelli, nello stesso progetto Google Cloud. Generalmente, l'azienda ha delle norme che controllano l'accesso. Se le risorse e gli artefatti sono archiviati in più progetti, puoi configurare il controllo dell'accesso aziendale tra progetti con Identity and Access Management (IAM).

Usa l'SDK Vertex AI per Python

Usa l'SDK Vertex AI per Python, un modo Python per usare Vertex AI per i flussi di lavoro end-to-end per la creazione di modelli, che funziona perfettamente con i tuoi framework ML preferiti come 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 il browser.

Sviluppo del machine learning

Lo sviluppo del machine learning riguarda la preparazione dei dati, la sperimentazione e la valutazione del modello. Quando si risolve 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 i modelli utilizzando architetture, set di dati di input, iperparametri e hardware differenti. 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 particolari di dati, versioni e architetture dei modelli diverse.

Prepara i dati di addestramento

I dati utilizzati per addestrare un modello possono provenire da un numero qualsiasi di sistemi, ad esempio i log di un sistema di servizi online, le immagini da un dispositivo locale o i 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 da utilizzare con Vertex AI, vedi 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 anche dati intermedi elaborati in BigQuery. Per ottenere la massima velocità, è preferibile archiviare i dati materializzati invece di utilizzare viste o sottoquery per i dati di addestramento.

Leggere i dati da BigQuery utilizzando l'API BigQuery Storage. Per il monitoraggio degli artefatti, valuta l'utilizzo di un set di dati tabulare gestito. Nella tabella seguente sono elencati 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 (ad esempio PyTorch, XGBoost o scilearn-kit) Libreria client Python di BigQuery

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

Archivia questi dati in container di grandi dimensioni su Cloud Storage. Questo vale per i file TFRecord con sharding se utilizzi TensorFlow o per i file Avro se utilizzi un altro framework.

Combina molte immagini, video o clip audio singoli in file di grandi dimensioni, per migliorare la velocità effettiva di lettura e scrittura in Cloud Storage. Cerca di creare file di almeno 100 MB e con una dimensione compresa tra 100 e 10.000 shard.

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?

Utilizzare Vertex AI Data Labeling per i dati non strutturati

Potresti aver bisogno che persone forniscano le etichette ai tuoi dati, soprattutto se si tratta di dati non strutturati. Per questo lavoro, utilizza Vertex AI Data Labeling. Puoi assumere i tuoi etichettatori e utilizzare il software di Google Cloud per gestirne il lavoro oppure puoi utilizzare gli etichettatori interni di Google per l'attività. Per scoprire di più, consulta la pagina Richiedere l'etichettatura dei dati.

Utilizza Vertex AI Feature Store per i dati strutturati

Quando stai addestrando 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 caratteristica che collega il tuo caso d'uso o copre l'indicatore che ti interessa trasmettere al modello.

    2. Se in Vertex AI Feature Store ci sono caratteristiche che vuoi utilizzare, 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 caratteristiche necessarie, crea una nuova caratteristica utilizzando i dati del tuo data lake.

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

    2. Unisci i valori delle caratteristiche recuperati da Vertex AI Feature Store e i 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. Imposta un job periodico per calcolare i valori aggiornati della nuova caratteristica. Dopo aver stabilito che una caratteristica è utile e vuoi metterla in produzione, configura un job regolarmente pianificato con la cadenza richiesta per calcolare i valori aggiornati di quella caratteristica e importarla in Vertex AI Feature Store. Se aggiungi la tua nuova caratteristica a Vertex AI Feature Store, avrai automaticamente a disposizione una soluzione per la distribuzione online delle caratteristiche (per casi d'uso di previsione online) e potrai condividere la tua caratteristica con altri nell'organizzazione che potrebbero trarne valore per i propri modelli di ML.

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

Evita l'archiviazione a blocchi dei dati

Evita di archiviare i dati nell'archiviazione a blocchi, come i file system di rete, o su dischi rigidi di macchine virtuali (VM). Sono più difficili da gestire rispetto a Cloud Storage o BigQuery e spesso presentano difficoltà 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 l'introduzione al caricamento dei dati per BigQuery.

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

Durante lo sviluppo dei modelli, utilizza Vertex AI TensorBoard per visualizzare e confrontare esperimenti specifici, ad esempio basati su iperparametri. Vertex AI TensorBoard è un servizio gestito di livello enterprise Vertex AI TensorBoard con una soluzione sicura e conveniente che consente a data scientist e ricercatori di ML di collaborare facilmente rendendo più semplice il monitoraggio, il confronto e la condivisione dei loro esperimenti. Vertex AI TensorBoard consente di monitorare metriche sperimentali come la perdita e l'accuratezza nel tempo, la visualizzazione del grafico del modello, la proiezione degli incorporamenti in uno spazio dimensionale inferiore e molto altro.

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

Addestra un modello all'interno di un'istanza di Vertex AI Workbench per set di dati di piccole dimensioni

L'addestramento di un modello nell'istanza di Vertex AI Workbench può essere sufficiente per set di dati di piccole dimensioni o sottoinsiemi di un set di dati più ampio. Può essere utile utilizzare il servizio di addestramento per set di dati di grandi dimensioni o per l'addestramento distribuito. Si consiglia inoltre di utilizzare il servizio di addestramento 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 tuo modello con l'ottimizzazione degli iperparametri

Per massimizzare l'accuratezza predittiva del modello, utilizza l'ottimizzazione degli iperparametri, il potenziatore automatico 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 raggiungere i valori ottimali.

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

Utilizzare un'istanza di Vertex AI Workbench per comprendere i tuoi modelli

Utilizza un'istanza di Vertex AI Workbench per valutare e comprendere i tuoi modelli. Oltre alle librerie comuni integrate come scikit-learn, le istanze di Vertex AI Workbench includono lo strumento What-if (WIT) e lo strumento di interpretabilità del linguaggio (LIT). WIT ti consente di analizzare in modo interattivo i tuoi modelli per rilevare i bias utilizzando più tecniche, mentre LIT ti aiuta a comprendere il comportamento del modello di elaborazione del linguaggio naturale attraverso uno strumento visivo, interattivo ed estensibile.

Utilizza le attribuzioni delle caratteristiche per ottenere approfondimenti sulle previsioni del modello

Vertex Explainable AI è parte integrante del processo di implementazione dell'ML e offre attribuzioni delle caratteristiche per fornire insight sul motivo per cui i modelli generano previsioni. Descrivendo l'importanza di ciascuna caratteristica utilizzata da un modello come input per fare una previsione, Vertex Explainable AI aiuta a comprendere meglio il comportamento del modello e a creare fiducia nei modelli.

Vertex Explainable AI supporta modelli con addestramento personalizzato basati su dati tabulari e di immagine.

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

Elaborazione dei dati

L'approccio consigliato per l'elaborazione dei dati dipende dal framework e dai tipi di dati che utilizzi. Questa sezione fornisce suggerimenti di alto livello per gli scenari comuni.

Usare BigQuery per elaborare dati strutturati e semistrutturati

Utilizza BigQuery per archiviare dati strutturati o semistrutturati non elaborati. Se stai creando il tuo modello utilizzando BigQuery ML, utilizza le trasformazioni integrate in BigQuery per la pre-elaborazione dei dati. Se utilizzi AutoML, utilizza le trasformazioni integrate in AutoML per la pre-elaborazione dei dati. Se stai creando un modello personalizzato, l'uso delle trasformazioni di BigQuery potrebbe essere il metodo più conveniente.

Usa Dataflow per elaborare i dati

Con grandi volumi di dati, valuta la possibilità di utilizzare Dataflow, che utilizza il modello di programmazione Apache Beam. Puoi usare Dataflow per convertire i dati non strutturati in formati di dati binari come TFRecord, in modo da migliorare le prestazioni dell'importazione dei dati durante il processo di addestramento.

Utilizza Dataproc per l'elaborazione dei dati Spark serverless

In alternativa, se la tua organizzazione ha investito in competenze e codebase Apache Spark, valuta la possibilità di utilizzare Dataproc. Usa script Python una tantum per set di dati più piccoli che rientrano in memoria.

Se devi eseguire trasformazioni che non possono essere espresse in Cloud SQL o che sono per flussi di dati, puoi usare una combinazione di Dataflow e della libreria pandas.

Usa set di dati gestiti con metadati ML

Dopo che i dati sono stati pre-elaborati per l'ML, puoi valutare 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 con addestramento personalizzato e di fornire statistiche descrittive e suddivisione automatica o manuale in set di addestramento, test e convalida.

I set di dati gestiti non sono necessari. 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 l'applicazione.

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

Formazione operativa

L'addestramento operativo si riferisce al processo che rende ripetibile l'addestramento del modello, monitora le ripetizioni e gestisce le prestazioni. Sebbene le istanze di Vertex AI Workbench siano utili per lo sviluppo iterativo su set di dati di piccole dimensioni, ti consigliamo di rendere operativo il codice per renderlo riproducibile e scalabile su set di dati di grandi dimensioni. In questa sezione parleremo degli strumenti e delle best practice per rendere operative le tue 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 macchina virtuale Deep Learning o su Compute Engine. Tuttavia, non consigliamo questo approccio perché i servizi gestiti di Vertex AI offrono funzionalità di scalabilità automatica e burst più convenienti.

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

Creare pipeline di addestramento per rendere operativa l'esecuzione del 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.

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

Il flusso di lavoro ML in questo documento presuppone che l'addestramento non venga eseguito in modo interattivo. Se il modello ha esito negativo e non è sottoposto a checkpoint, il job di addestramento o la pipeline verrà completato e i dati andranno persi perché il modello non è in memoria. Per evitare questo scenario, conviene utilizzare sempre i punti di controllo dell'addestramento per assicurarsi 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 eseguito.

Per saperne di più sui checkpoint, consulta Controlli di addestramento per TensorFlow Core, Salvataggio e caricamento di un checkpoint generale in PyTorch e Pattern di progettazione del machine learning.

Prepara gli artefatti del modello per la pubblicazione 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 regionale che stai utilizzando per la produzione. Per ulteriori informazioni, consulta Regioni dei bucket.

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 di Vertex AI, assicurati che i nomi file dei tuoi artefatti del modello corrispondano esattamente a questi esempi:

  • SavedModel di TensorFlow: saved_model.pb

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

  • XGBoost: 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 i nuovi valori delle caratteristiche

Spesso un modello utilizza un sottoinsieme di caratteristiche provenienti da Vertex AI Feature Store. Le caratteristiche in Vertex AI Feature Store saranno già pronte per la pubblicazione online. Per qualsiasi nuova caratteristica creata da data scientist mediante l'acquisizione dei dati dal data lake, consigliamo di pianificare i corrispondenti job di elaborazione dei dati e feature engineering (o idealmente Dataflow) per calcolare regolarmente i valori delle nuove caratteristiche alla cadenza richiesta, a seconda delle esigenze di aggiornamento delle caratteristiche e importarli in Vertex AI Feature Store per la distribuzione online o in batch.

deployment e distribuzione del modello

Con 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 la fornitura di previsioni. Esistono due tipi di gestione delle previsioni: la previsione batch viene utilizzata per puntare batch di dati a una cadenza regolare, mentre la previsione online viene utilizzata per il punteggio quasi in tempo reale dei dati per le applicazioni live. 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 ulteriori informazioni, consulta Ottenere previsioni batch e Ottenere previsioni online da modelli con addestramento personalizzato.

Per una latenza inferiore per le richieste peer-to-peer tra il client e il server del modello, utilizza gli endpoint privati di Vertex AI. Sono particolarmente utili se l'applicazione che effettua le richieste di previsione e il programma binario di pubblicazione si trova all'interno della stessa rete locale. Puoi evitare l'overhead del routing 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 modello per la previsione, scegli l'hardware appropriato, come diversi tipi di macchine virtuali (VM) con unità di elaborazione centrale (CPU) o tipi di unità di elaborazione grafica (GPU). Per ulteriori informazioni, consulta la sezione 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 come trasmettere 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 le istanze di input al servizio, che restituirà le tue previsioni nella risposta. Per ulteriori informazioni, consulta Dettagli del corpo della risposta.

Se esegui il deployment del tuo modello per la previsione online, hai bisogno di un modo scalabile e a bassa latenza per gestire gli input o le caratteristiche che devono essere passati all'endpoint del modello. Puoi farlo utilizzando uno dei molti servizi di database su Google Cloud oppure puoi 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 distribuzione delle caratteristiche per recuperare gli input delle caratteristiche, quindi chiamare l'endpoint di previsione con questi input.

L'importazione di flussi di dati consente di aggiornare in tempo reale i valori delle caratteristiche. Questo metodo è utile quando la priorità è rappresentata dai dati più recenti disponibili per la pubblicazione online. Ad esempio, puoi importare dati sugli eventi in modalità flusso e, in pochi secondi, l'importazione di flussi di dati in Vertex AI Feature Store rende tali dati disponibili per gli scenari di distribuzione online.

Puoi inoltre personalizzare la gestione di input (richiesta) e di output (risposta) e la formattazione da e verso il server del modello utilizzando 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 scoprire di più, consulta Ottenere previsioni per un modello addestrato personalizzato. Per garantire un accordo sul livello del servizio (SLA) ad alta disponibilità, imposta la scalabilità automatica con un minimo di due nodi.

Per scoprire 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. Sebbene il riaddestramento consenta ai modelli di adattarsi ai cambiamenti e mantenere le prestazioni nel tempo, considera come cambieranno i dati quando scegli la cadenza ottimale di riaddestramento del modello.

I flussi di lavoro di orchestrazione ML sono ideali per i clienti che hanno già progettato e creato il proprio modello, lo mettono in produzione e vogliono determinare cosa funziona e cosa no nel modello ML. Il codice usato per la sperimentazione sarà probabilmente utile per il resto del flusso di lavoro ML con alcune modifiche. Per lavorare con i flussi di lavoro ML automatizzati, devi avere padronanza di Python, comprendere l'infrastruttura di base come i container e avere conoscenze in materia di ML e data science.

Utilizzare Vertex AI Pipelines per orchestrare il flusso di lavoro ML

Sebbene sia possibile avviare manualmente ogni processo, addestramento, valutazione, test e deployment dei dati, ti consigliamo di utilizzare Vertex AI Pipelines per orchestrare il flusso. Per informazioni dettagliate, consulta MLOps livello 1: automazione delle pipeline ML.

Vertex AI Pipelines supporta i DAG in esecuzione generati da KubeFlow, TensorFlow Extended (TFX) e Airflow.

Usare Kubeflow Pipelines per creare pipeline flessibili

L'SDK Kubeflow Pipelines è consigliato per la maggior parte degli utenti che vogliono creare pipeline gestite. Kubeflow Pipelines è flessibile, ti consente di utilizzare codice semplice per creare le pipeline e fornisce i componenti della pipeline di Google Cloud, che ti consentono di includere funzionalità di Vertex AI come AutoML nella tua pipeline. Per saperne 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. Come best practice, conviene organizzarli in modo standardizzato.

Organizza gli artefatti del modello ML

Archivia i tuoi artefatti nelle seguenti posizioni:

Posizione archiviazione Artefatti
Repository del controllo del codice sorgente
  • Istanze di Vertex AI Workbench
  • Codice sorgente della pipeline
  • Funzioni di pre-elaborazione
  • Codice sorgente del modello
  • Pacchetti di addestramento di modelli
  • Funzioni di pubblicazione
Esperimenti e metadati ML
  • Esperimenti
  • Parametri
    • Iperparametri
    • Metaparametri
  • Metriche
  • Artefatti del set di dati
  • Artefatti del modello
  • Metadati della pipeline
Vertex AI Model Registry
  • Modelli addestrati
Artifact Registry
  • Container della pipeline
  • Ambienti di addestramento personalizzati
  • Ambienti di previsione personalizzati
Vertex AI Prediction
  • Modelli di cui è stato eseguito il deployment

Utilizza un repository di controllo del codice sorgente per le definizioni della 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 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 il modello funzioni come previsto. Vertex AI offre due modi per monitorare i modelli ML:

  • Rilevamento del disallineamento: questo approccio cerca il grado di distorsione

  • Rilevamento della deviazione: in questo tipo di monitoraggio, cerchi la deviazione 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. Ciò causa problemi perché le previsioni potrebbero diventare meno precise con il passare del tempo.

Il monitoraggio del modello 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 pagina Modelli di monitoraggio per disallineamenti o deviazioni delle caratteristiche.

Utilizza il rilevamento di disallineamenti 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 della deviazione in modo da sapere quando gli input cambiano nel tempo.

Utilizza il rilevamento della deviazione per monitorare le deviazioni dei dati di produzione nel tempo. Per il rilevamento della deviazione, 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 nel 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.

Utilizza le attribuzioni delle caratteristiche per rilevare la deviazione o il disallineamento nei dati

Puoi utilizzare le attribuzioni delle caratteristiche in Vertex Explainable AI per rilevare la deviazione o il disallineamento dei dati come indicatore precoce di un possibile peggioramento delle prestazioni del modello. Ad esempio, se inizialmente il modello si basava su cinque caratteristiche per fare previsioni nei dati di addestramento e test, ma il modello ha iniziato a utilizzare caratteristiche completamente diverse durante la fase di messa in produzione, le attribuzioni delle caratteristiche aiuterebbero a rilevare questo peggioramento delle prestazioni del modello.

Ciò è particolarmente utile per i tipi di caratteristiche complessi, come gli incorporamenti e le serie temporali, che sono difficili da confrontare con i metodi tradizionali di disallineamento e deviazione. Con Vertex Explainable AI, le attribuzioni delle caratteristiche possono indicare un calo delle prestazioni del modello.

Passaggi successivi