Questo documento introduce le best practice per l'implementazione del machine learning (ML) su Google Cloud, con particolare attenzione ai modelli addestrati personalizzati basati su dati e codice. Fornisce consigli su come sviluppare un modello con addestramento personalizzato durante il flusso di lavoro ML, incluse azioni chiave e link per ulteriori approfondimenti.
Il seguente diagramma fornisce una panoramica generale delle fasi del flusso di lavoro ML trattate in questo documento, inclusi i prodotti correlati:
- Sviluppo dell'ML
- Preparazione dei dati
- Addestramento ML
- Deployment e distribuzione del modello
- Orchestrazione del flusso di lavoro ML
- organizzazione degli artefatti
- Monitoraggio del modello
Il documento non è un elenco esaustivo di consigli; il suo scopo è aiutare data scientist e architetti ML a comprendere l'ambito delle attività coinvolte nell'utilizzo di ML su Google Cloud e pianificare di conseguenza. Inoltre, anche se le alternative di sviluppo ML come AutoML sono menzionate in Utilizza strumenti e prodotti consigliati, questo documento si concentra principalmente sui modelli con addestramento personalizzato.
Prima di seguire le best practice descritte in questo documento, ti consigliamo di leggere Introduzione a Vertex AI.
Questo documento presuppone quanto segue:
- Utilizzi principalmente i servizi Google Cloud ; gli approcci ibridi e on-premise non sono trattati in questo documento.
- Intendi raccogliere i dati di addestramento e archiviarli in Google Cloud.
- Hai una conoscenza di livello intermedio di ML, strumenti per i big data e preelaborazione dei dati, nonché familiarità con i concetti di base di Cloud Storage, BigQuery e Google Cloud.
Se non hai mai utilizzato il machine learning, consulta il corso intensivo sul machine learning di Google.
Utilizzare strumenti e prodotti consigliati
La tabella seguente 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 ML | Strumenti e prodotti consigliati |
---|---|
Configurazione dell'ambiente ML | |
Sviluppo ML | |
Preparazione dei dati | |
Addestramento ML | |
Deployment e pubblicazione del modello | |
Orchestrazione del flusso di lavoro di ML | |
Organizzazione degli artefatti | |
Monitoraggio del modello | |
Piattaforme open source gestite |
Google offre AutoML, previsioni con Vertex AI e BigQuery ML come alternative di routine di addestramento predefinite alle soluzioni di modelli addestrati personalizzati di Vertex AI. La seguente tabella fornisce consigli 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. |
|
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 dell'erogazione di un modello, come la scelta di un'architettura, l'ottimizzazione degli iperparametri e il provisioning delle macchine, vengono gestiti per te. |
|
Modelli addestrati personalizzati di Vertex AI | Vertex ti consente di eseguire le tue routine di addestramento personalizzato 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. Consulta Scegliere un metodo di addestramento personalizzato. |
|
configurazione dell'ambiente ML
Ti consigliamo di utilizzare le seguenti best practice quando configuri l'ambiente ML:
- Utilizza le istanze Vertex AI Workbench per la sperimentazione e lo sviluppo.
- Crea un'istanza di Vertex AI Workbench per ogni membro del team.
- Archivia le risorse e gli artefatti ML in base alle norme aziendali.
- Utilizza l'SDK Vertex AI per Python.
Utilizza le istanze Vertex AI Workbench per la sperimentazione e lo sviluppo
Indipendentemente dagli strumenti utilizzati, ti consigliamo di utilizzare le istanze Vertex AI Workbench per la sperimentazione e lo sviluppo, inclusa la scrittura di codice, l'avvio di 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 AI di Google Cloudin modo semplice e riproducibile.
Le istanze Vertex AI Workbench offrono anche un insieme sicuro di software e pattern di accesso predefiniti. È prassi comune personalizzare le proprietàGoogle Cloud come rete e Identity and Access Management e il software (tramite un container) associato a un'istanza Vertex AI Workbench. Per ulteriori informazioni, consulta Introduzione a Vertex AI e Introduzione alle istanze di Vertex AI Workbench.
In alternativa, puoi utilizzare Colab Enterprise, un ambiente di notebook gestito e collaborativo che utilizza le funzionalità di sicurezza e conformità di Google Cloud.
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 progetti che hanno dipendenze diverse, consigliamo di utilizzare più istanze, trattando ciascuna istanza come uno spazio di lavoro virtuale. Tieni presente che puoi arrestare le istanze Vertex AI Workbench quando non vengono utilizzate.
Archivia le risorse e gli artefatti ML in base alle norme aziendali
Il controllo dell'accesso più semplice consiste nell'archiviare le risorse e gli artefatti Vertex AI, come set di dati e modelli, sia grezzi che nello stesso Google Cloud progetto. In genere, la tua azienda ha criteri che controllano l'accesso. Nei casi in cui le risorse e gli artefatti sono archiviati in più progetti, puoi configurare il controllo dell'accesso tra progetti aziendale con Identity and Access Management (IAM).
Utilizza l'SDK Vertex AI per Python
Utilizza l'SDK Vertex AI per Python, un modo Pythonic per utilizzare Vertex AI per i tuoi workflow 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 il browser.
Sviluppo dell'ML
Consigliamo le seguenti best practice per lo sviluppo ML:
Prepara i dati di addestramento.
Archivia dati strutturati e semistrutturati in BigQuery.
Archivia immagini, video, audio e dati non strutturati su Cloud Storage.
Utilizza Vertex AI Feature Store per i dati strutturati.
Utilizza Vertex AI TensorBoard e Vertex AI Experiments per analizzare gli esperimenti.
Addestra un modello all'interno di un'istanza di Vertex AI Workbench per set di dati di piccole dimensioni.
Massimizza l'accuratezza predittiva del tuo modello con l'ottimizzazione degli iperparametri.
Utilizza un'istanza di Vertex AI Workbench per comprendere i tuoi modelli.
Utilizza le attribuzioni delle funzionalità per ottenere informazioni dettagliate sulle previsioni del modello.
Lo sviluppo di ML riguarda la preparazione dei dati, la sperimentazione e la valutazione del modello. Quando si risolve un problema di ML, in genere è necessario creare e confrontare molti modelli diversi per capire qual è il migliore.
In genere, i data scientist addestrano i modelli utilizzando architetture, set di dati di input, iperparametri e hardware diversi. I data scientist valutano i modelli risultanti esaminando le metriche di rendimento 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 dei dati, a versioni diverse dei modelli e ad architetture diverse dei modelli.
Prepara i dati di addestramento
I dati utilizzati per addestrare un modello possono provenire da un numero qualsiasi di sistemi, ad esempio log da un sistema di servizi online, immagini da un dispositivo locale o documenti recuperati dal web.
Indipendentemente dalla loro origine, estrai i dati dai sistemi di origine e convertili nel formato e nello spazio di 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 Addestrare e utilizzare i propri modelli.
Archiviare dati strutturati e semistrutturati in BigQuery
Se lavori con dati strutturati o semistrutturati, ti consigliamo di archiviare tutti i dati in BigQuery, seguendo il suggerimento di BigQuery per la struttura del progetto. Nella maggior parte dei casi, puoi archiviare anche i dati intermedi elaborati in BigQuery. Per la massima velocità, è meglio archiviare i dati materializzati anziché 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 la possibilità di utilizzare un set di dati tabellare gestito. La tabella seguente elenca Google Cloud gli strumenti che semplificano l'utilizzo dell'API:
Se utilizzi… | Utilizza questo Google Cloud strumento |
---|---|
TensorFlow per Keras | Lettore tf.data.dataset per BigQuery |
TFX | Client BigQuery |
Dataflow | Connettore Google BigQuery I/O |
Qualsiasi altro framework (come PyTorch, XGBoost o scilearn-kit) | Importazione di modelli in BigQuery |
Archivia immagini, video, audio e dati non strutturati su Cloud Storage
Archivia questi dati in formati contenitore di grandi dimensioni su Cloud Storage. Questo vale per i file TFRecord suddivisi 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, in quanto ciò migliorerà la velocità di lettura e scrittura in Cloud Storage. Cerca di utilizzare file di almeno 100 MB e tra 100 e 10.000 shard.
Per abilitare la gestione dei dati, utilizza bucket e directory Cloud Storage per raggruppare gli shard. Per maggiori informazioni, consulta la panoramica del prodotto Cloud Storage.
Utilizzare i servizi di etichettatura dei dati con la console Google Cloud
Puoi creare e importare dati di addestramento tramite la pagina Vertex AI nella Google Cloud console. Utilizzando le funzionalità di prompt e ottimizzazione di Gemini, puoi gestire i dati di testo con classificazione, estrazione di entità e analisi del sentiment personalizzate. Esistono anche soluzioni di etichettatura dei dati in Marketplace della console Google Cloud , come Labelbox e Snorkel Flow.
Utilizza Vertex AI Feature Store per i dati strutturati
Puoi utilizzare Vertex AI Feature Store per creare, gestire, condividere e pubblicare le caratteristiche di ML in una posizione centrale. È ottimizzato per gestire carichi di lavoro che richiedono una bassa latenza e ti consente di archiviare i dati delle funzionalità in una tabella o una vista BigQuery. Per utilizzare Vertex AI Feature Store, devi creare un'istanza di negozio online e definire le visualizzazioni delle funzionalità. BigQuery archivia tutti i dati delle funzionalità, inclusi i dati storici, per consentirti di lavorare offline.
Utilizzare Vertex AI TensorBoard e Vertex AI Experiments per analizzare gli esperimenti
Quando sviluppi i 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 con una soluzione conveniente e sicura che consente ai data scientist e ai ricercatori di ML di collaborare semplificando il monitoraggio, il confronto e la condivisione degli esperimenti. Vertex AI TensorBoard consente di monitorare le metriche dell'esperimento, come perdita e accuratezza nel tempo, visualizzare il grafico del modello, proiettare gli incorporamenti in uno spazio dimensionale inferiore e molto altro ancora.
Utilizza Vertex AI Experiments per l'integrazione con Vertex ML Metadata e per 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 all'interno dell'istanza di Vertex AI Workbench può essere sufficiente per set di dati di piccole dimensioni o per subset di un set di dati più grande. Potrebbe essere utile utilizzare il servizio di addestramento per set di dati più grandi o per l'addestramento distribuito. L'utilizzo del servizio di addestramento Vertex AI è consigliato anche per portare in produzione l'addestramento anche su set di dati di piccole dimensioni se l'addestramento viene effettuato secondo 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 del modello automatizzato fornito dal servizio 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 regolarli manualmente nel corso di numerose esecuzioni di addestramento per arrivare ai valori ottimali.
Per saperne di più sull'ottimizzazione degli iperparametri, consulta Panoramica dell'ottimizzazione degli iperparametri e Creazione di un job di ottimizzazione degli iperparametri.
Utilizzare un'istanza di Vertex AI Workbench per comprendere i 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 Language Interpretability Tool (LIT). WIT ti consente di analizzare in modo interattivo i tuoi modelli per individuare eventuali bias utilizzando più tecniche, mentre LIT ti aiuta a comprendere il comportamento dei modelli di elaborazione del linguaggio naturale attraverso uno strumento visivo, interattivo ed estensibile.
Utilizzare le attribuzioni delle caratteristiche per ottenere informazioni dettagliate sulle previsioni del modello
Vertex Explainable AI è parte integrante del processo di implementazione ML e offre attribuzioni di caratteristiche per fornire insight sul motivo per cui i modelli generano previsioni. Descrivendo nel dettaglio l'importanza di ciascuna caratteristica utilizzata da un modello come input per effettuare 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 con addestramento personalizzato basati su dati tabulari e immagine.
Per ulteriori informazioni su Vertex Explainable AI, consulta:
- Introduzione a Vertex Explainable AI
- Miglioramento delle spiegazioni
- Esempi di codice di Vertex Explainable AI
Preparazione dei dati
Consigliamo le seguenti best practice per la preparazione dei dati:
Utilizza BigQuery per elaborare i dati tabulari.
Utilizza Dataflow per elaborare i dati.
Utilizza Dataproc per l'elaborazione dei dati Spark serverless.
Utilizza set di dati gestiti con Vertex ML Metadata.
L'approccio consigliato per l'elaborazione dei dati dipende dal framework e dai tipi di dati che utilizzi. Questa sezione fornisce consigli di alto livello per scenari comuni.
Utilizza BigQuery per elaborare dati strutturati e semistrutturati
Utilizza BigQuery per archiviare dati strutturati o semistrutturati non elaborati. Se crei il modello utilizzando BigQuery ML, utilizza le trasformazioni integrate in BigQuery per l'elaborazione preliminare dei dati. Se utilizzi AutoML, utilizza le trasformazioni integrate in AutoML per il pre-elaborazione dei dati. Se crei un modello personalizzato, l'utilizzo delle trasformazioni BigQuery potrebbe essere il metodo più conveniente.
Per i set di dati di grandi dimensioni, valuta la possibilità di utilizzare il partizionamento in BigQuery. Questa pratica può migliorare le prestazioni delle query e l'efficienza in termini di costi.
Utilizza Dataflow per elaborare i dati
Con grandi volumi di dati, ti consigliamo di utilizzare Dataflow, che utilizza il modello di programmazione Apache Beam. Puoi utilizzare 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.
Utilizzare Dataproc per l'elaborazione dei dati Spark serverless
In alternativa, se la tua organizzazione ha fatto investimenti in competenze e codebase Apache Spark, ti consigliamo 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.
Utilizzare set di dati gestiti con metadati ML
Dopo la pre-elaborazione dei dati per ML, potresti prendere in considerazione l'utilizzo di un set di dati gestito in Vertex AI. I set di dati gestiti ti consentono di creare un link chiaro tra i tuoi dati e i modelli con addestramento personalizzato e forniscono statistiche descrittive e suddivisione automatica o manuale in set di addestramento, test e convalida.
I set di dati gestiti non sono richiesti. Puoi scegliere di non utilizzarli se desideri 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, vedi Set di dati e Utilizzo di un set di dati gestito in un'applicazione di addestramento personalizzato.
Addestramento ML
Consigliamo le seguenti best practice per l'addestramento del modello di ML:
Esegui il codice in un servizio gestito.
Operazionalizza l'esecuzione dei job con le pipeline di addestramento.
Utilizza i checkpoint di addestramento per salvare lo stato attuale dell'esperimento.
Prepara gli artefatti del modello per la distribuzione in Cloud Storage.
Calcola regolarmente i nuovi valori delle caratteristiche.
Nell'addestramento ML, l'addestramento operativo si riferisce al processo di rendere ripetibile l'addestramento del modello monitorando le ripetizioni e gestendo le prestazioni. Sebbene le istanze Vertex AI Workbench siano utili per lo sviluppo iterativo su piccoli set di dati, ti consigliamo di rendere operativo il codice per renderlo riproducibile e in grado di scalare a set di dati di grandi dimensioni. In questa sezione vengono illustrati gli strumenti e le best practice per rendere operative le routine di addestramento.
Esegui il codice in un servizio gestito
Ti consigliamo di eseguire il codice nel servizio di addestramento Vertex AI o di orchestrarlo con Vertex AI Pipelines. Se vuoi, puoi eseguire il codice direttamente in Deep Learning VM Images, Deep Learning Containers o Compute Engine. Tuttavia, sconsigliamo questo approccio se utilizzi funzionalità di Vertex AI come loscalabilità automaticao e la capacità di burst.
Operazionalizzare l'esecuzione dei job con le pipeline di addestramento
Per rendere operativo l'addestramento su Vertex AI, puoi creare pipeline di addestramento. Una pipeline di addestramento, diversa da una pipeline ML generica, 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 tu non stia eseguendo l'addestramento in modo interattivo. Se il modello non riesce e non viene eseguito il checkpoint, il job di addestramento o la pipeline termineranno e i dati andranno persi perché il modello non è in memoria. Per evitare questo scenario, prendi l'abitudine di utilizzare sempre i 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 sessione di addestramento.
Per scoprire di più sui checkpoint, consulta Training checkpoints per TensorFlow Core, Saving and loading a General Checkpoint in PyTorch, e ML Design Patterns.
Prepara gli artefatti del modello per la distribuzione 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 utilizzi per la produzione. Per saperne di più, consulta Regioni dei bucket.
Cloud Storage supporta il controllo delle versioni degli oggetti. Per fornire una mitigazione contro la perdita o il danneggiamento accidentale dei dati, abilita il controllo delle versioni degli oggetti in Cloud Storage.
Archivia il bucket Cloud Storage nello stesso Google Cloud progetto. Se il bucket Cloud Storage si trova in un progetto Google Cloud diverso, devi concedere a Vertex AI l'accesso per leggere gli artefatti del modello.
Se utilizzi un container predefinito di Vertex AI, assicurati che i nomi dei file degli artefatti del modello corrispondano esattamente a questi esempi:
- TensorFlow SavedModel:
saved_model.pb
- Scikit-learn:
model.joblib
- XGBoost:
model.bst
- PyTorch:
model.pth
Per scoprire come salvare il modello sotto forma di uno o più artefatti del modello, consulta Esportazione degli artefatti del modello per la previsione.
Calcolare regolarmente i nuovi valori delle caratteristiche
Spesso, un modello utilizza un sottoinsieme di funzionalità 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 dal data scientist recuperando i dati dal data lake, consigliamo di programmare i job di elaborazione dei dati e di feature engineering corrispondenti (o idealmente Dataflow) per calcolare regolarmente i nuovi valori delle funzionalità alla cadenza richiesta, a seconda delle esigenze di aggiornamento delle funzionalità, e di importarli in Vertex AI Feature Store per il servizio online o batch.
Deployment e distribuzione del modello
Consigliamo le seguenti best practice per il deployment e la distribuzione del modello:
Specifica il numero e i tipi di macchine di cui hai bisogno.
Pianifica gli input per il modello.
Attiva la scalabilità automatica.
Monitora i modelli utilizzando
BigQuery ML.
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 su Cloud Storage, che puoi caricare in Model Registry in modo che il file possa essere utilizzato per fornire previsioni. Esistono due tipi di servizio di previsione: la previsione batch viene utilizzata per assegnare un punteggio ai batch di dati a una cadenza regolare, mentre la previsione online viene utilizzata per l'assegnazione di un punteggio ai dati in tempo quasi reale per le applicazioni live. Entrambi gli approcci consentono di ottenere previsioni dai modelli addestrati passando i dati di input a un modello di ML ospitato sul cloud e ottenendo inferenze per ogni istanza di dati.Per saperne di più, consulta Ottenere previsioni batch e Generare previsioni online da modelli con addestramento personalizzato.
Per ridurre la latenza delle richieste peer-to-peer tra il client e il server del modello, utilizza gli endpoint privati di Vertex AI. Gli endpoint privati sono particolarmente utili se l'applicazione che effettua le richieste di previsione e il binario di pubblicazione si trovano all'interno della stessa rete locale. Puoi evitare l'overhead del routing internet ed effettuare una connessione peer-to-peer utilizzando 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 per il tuo modello, come diversi tipi di macchine virtuali (VM) con unità di elaborazione centrale (CPU) o tipi di unità di elaborazione grafica (GPU). Per saperne di più, consulta Specifica dei tipi di macchine 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 la sezione 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 funzionalità da passare all'endpoint del modello. Puoi farlo utilizzando uno dei numerosi servizi di database su Google Cloud oppure puoi utilizzare l'API di recupero dati online di Vertex AI Feature Store. I client che chiamano l'endpoint di previsione online possono prima chiamare la soluzione di servizio delle funzionalità per recuperare gli input delle funzionalità e poi chiamare l'endpoint di previsione con questi input. Puoi pubblicare più modelli nello stesso endpoint, ad esempio per sostituire gradualmente il modello. In alternativa, puoi eseguire il deployment dei modelli in più endpoint, ad esempio in test e produzione, condividendo le risorse tra i deployment.
L'importazione in streaming ti consente di apportare aggiornamenti in tempo reale ai valori delle caratteristiche. Questo metodo è utile quando la priorità è disporre dei dati più recenti disponibili per la pubblicazione online. Ad esempio, puoi importare dati di eventi di streaming e, in pochi secondi, l'importazione di streaming di Vertex AI Feature Store rende questi dati disponibili per scenari di pubblicazione online.
Puoi anche personalizzare la gestione e il formato di input (richiesta) e output (risposta) da e verso il server del modello 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 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 saperne di più sulle opzioni di scalabilità, consulta Scalare le previsioni di ML.
Orchestrazione del flusso di lavoro ML
Consigliamo le seguenti best practice per l'orchestrazione del flusso di lavoro ML:
Utilizza Vertex AI Pipelines per orchestrare il flusso di lavoro di ML.
Utilizza
Kubeflow Pipelines per la creazione flessibile di pipeline.
Utilizza
Ray su Vertex AI per i flussi di lavoro ML distribuiti.
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 ti consente di eseguire il retraining dei modelli tutte le volte che è necessario. Il riaddestramento consente ai modelli di adattarsi ai cambiamenti e mantenere le prestazioni nel tempo, ma considera la quantità di dati che cambieranno quando scegli la cadenza ottimale di riaddestramento del modello.
I flussi di lavoro di orchestrazione ML sono più adatti ai 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 utilizzi per la sperimentazione probabilmente sarà 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 conoscenze di ML e data science.
Utilizza Vertex AI Pipelines per orchestrare il flusso di lavoro di ML
Sebbene tu possa avviare manualmente ogni processo di dati, addestramento, valutazione, test e deployment, ti consigliamo di utilizzare Vertex AI Pipelines per orchestrare il flusso. Per informazioni dettagliate, vedi Livello 1 di MLOps: automazione della pipeline di ML.
Vertex AI Pipelines supporta l'esecuzione di DAG generati da Kubeflow, TensorFlow Extended (TFX) e Airflow.
Utilizzare Kubeflow Pipelines per la creazione flessibile di pipeline
Consigliamo l'SDK Kubeflow Pipelines alla maggior parte degli utenti che vogliono creare pipeline gestite. Kubeflow Pipelines è flessibile e ti consente di utilizzare il codice per costruire pipeline. Fornisce anche Google Cloud componenti della pipeline, 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.
Utilizzare Ray su Vertex AI per i flussi di lavoro ML distribuiti
Ray fornisce un framework distribuito generale e unificato per scalare i flussi di lavoro di machine learning tramite un framework di calcolo distribuito, scalabile e open source Python. Questo framework può aiutarti a risolvere le sfide derivanti dalla presenza di una serie di framework distribuiti nel tuo ecosistema ML, ad esempio la necessità di gestire più modalità di parallelismo delle attività, pianificazione e gestione delle risorse. Puoi utilizzare Ray su Vertex AI per sviluppare applicazioni su Vertex AI.
organizzazione degli artefatti
Ti consigliamo di utilizzare le seguenti best practice per organizzare gli artefatti:
Organizza gli artefatti del modello ML.
Utilizza un repository di controllo del codice sorgente per le definizioni della pipeline e il codice di addestramento.
Gli artefatti sono output risultanti da ogni passaggio del flusso di lavoro ML. Le best practice prevedono di organizzarli secondo criteri standardizzati.
Organizza gli artefatti del modello ML
Archivia i tuoi artefatti in queste posizioni:
Posizione di archiviazione | Artifacts |
Repository del controllo del codice sorgente |
|
Esperimenti e metadati ML |
|
Model Registry |
|
Artifact Registry |
|
Vertex AI Prediction |
|
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 il controllo della 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
Utilizza il rilevamento del disallineamento e della deriva.
Ottimizza le soglie di avviso.
Utilizza le attribuzioni delle caratteristiche per rilevare la deviazione o il disallineamento nei dati.
Utilizza BigQuery per supportare il monitoraggio dei modelli.
Una volta eseguito il deployment del modello in produzione, devi monitorare le prestazioni per garantire 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 tra l'addestramento del modello e i dati di produzione.
- 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, variano nel tempo in modi imprevisti. Ciò causa problemi perché le previsioni potrebbero diventare meno accurate col 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 Modelli di monitoraggio per disallineamenti o deviazioni delle caratteristiche.
Utilizzare il rilevamento del disallineamento e della deriva
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 se i dati di produzione si discostano nel tempo. Per il rilevamento della deviazione, attiva le funzionalità che vuoi monitorare e le soglie corrispondenti per attivare un avviso.
Ottimizzare le soglie di avviso
Ottimizza le soglie utilizzate per gli avvisi in modo da scoprire 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 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 del possibile peggioramento delle prestazioni del modello. Ad esempio, se il tuo modello originariamente si basava su cinque funzionalità per fare previsioni nei dati di addestramento e test, ma ha iniziato a basarsi su funzionalità completamente diverse quando è stato messo in produzione, le attribuzioni delle funzionalità ti 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 difficilmente comparabili con i metodi tradizionali di disallineamento e deviazione. Con Vertex Explainable AI, le attribuzioni delle caratteristiche possono indicare quando le prestazioni del modello peggiorano.
Utilizzare BigQuery per supportare il monitoraggio dei modelli
Il monitoraggio dei modelli BigQuery ML è un insieme di strumenti e funzionalità che ti aiutano a monitorare e valutare le prestazioni dei tuoi modelli ML nel tempo. Il monitoraggio del modello è essenziale per mantenere la precisione e l'affidabilità del modello nelle applicazioni reali. Ti consigliamo di monitorare i seguenti problemi:
- Distorsione dei dati: questo problema si verifica quando le distribuzioni dei valori delle caratteristiche differiscono tra i dati di addestramento e di distribuzione. Le statistiche di addestramento, salvate durante l'addestramento del modello, consentono il rilevamento della distorsione senza la necessità dei dati originali.
- Deviazione dei dati: i dati del mondo reale cambiano spesso nel tempo. Il monitoraggio del modello ti aiuta a identificare quando i dati di input che il modello vede in produzione (dati di pubblicazione) iniziano a differire in modo significativo dai dati con cui è stato addestrato (dati di addestramento). Questa deriva può comportare un peggioramento delle prestazioni.
- Disallineamento o deviazione avanzati dei dati: se vuoi statistiche dettagliate su disallineamento o deviazione, monitora il disallineamento o la deviazione avanzati dei dati.
Passaggi successivi
- Documentazione di Vertex AI
- Guida alle operazioni di machine learning (MLOps) per i professionisti: un framework per l'automazione e la distribuzione continua del machine learning
- Per una panoramica dei principi e dei consigli architetturali specifici per i workload di AI e ML in Google Cloud, consulta la prospettiva AI e ML nel Well-Architected Framework.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.