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

Last reviewed 2024-09-09 UTC

Questo documento illustra le best practice per l'implementazione del machine learning (ML) su Google Cloud, con un focus sui modelli addestrati in base ai tuoi dati e al tuo codice. Fornisce suggerimenti su come sviluppare un modello con addestramento personalizzato durante il flusso di lavoro ML, incluse azioni chiave e link per approfondire.

Il seguente diagramma fornisce una panoramica generale delle fasi del flusso di lavoro di ML discusse in questo documento, inclusi i prodotti correlati:

  1. Sviluppo dell'ML
  2. Preparazione dei dati
  3. Addestramento ML
  4. Deployment e distribuzione del modello
  5. Orchestrazione del flusso di lavoro ML
  6. organizzazione degli artefatti
  7. Monitoraggio del modello

Flusso di lavoro ML su Google Cloud.

Il documento non è un elenco esaustivo delle raccomandazioni. il suo obiettivo è aiutare data scientist e ML architect comprendono l'ambito attività coinvolte nell'uso del ML su Google Cloud e pianificarle di conseguenza. e mentre le alternative di sviluppo ML come AutoML sono menzionati in Utilizzare gli strumenti e i prodotti consigliati, Questo documento si concentra principalmente sui modelli con addestramento personalizzato.

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

Il presente documento presuppone quanto segue:

  • Stai utilizzando principalmente i servizi Google Cloud. ibrido e gli approcci on-premise non sono trattati in questo documento.
  • Hai intenzione di raccogliere i dati di addestramento e archiviarli in Google Cloud.
  • Hai una conoscenza di livello intermedio di ML, strumenti di big data e preelaborazione dei dati, nonché familiarità con le nozioni di base di Cloud Storage, BigQuery e Google Cloud.

Se non hai mai utilizzato l'ML, dai un'occhiata al Corso accelerato sull'ML di Google.

Nella tabella che segue sono elencati 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 del 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 alle routine di addestramento predefinite per le soluzioni di modelli addestrati personalizzati 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, infrastrutture e tipi di modelli predefiniti in un unico sistema.
  • Tutti i 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 Vertex AI) AutoML fornisce routine di addestramento problemi 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 in base alle esigenze specifiche di Vertex AI Vertex ti consente di eseguire le tue routine di addestramento personalizzate e di implementare modelli di qualsiasi tipo su un'architettura serverless. Vertex AI offre servizi aggiuntivi, come l'ottimizzazione e il monitoraggio degli iperparametri, per facilitare lo sviluppo di un modello di machine learning. Consulta Scegliere un 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 altro cloud ed è necessaria la coerenza tra le varie piattaforme.

configurazione dell'ambiente ML

Ti consigliamo di utilizzare le seguenti best practice quando configuri il ML questo ambiente:

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 di job, eseguire query e controllare lo stato. Istanze di Vertex AI Workbench ti consentono di accedere a tutti i dati e l'AI di Google Cloud in modo semplice e riproducibile.

Le istanze di Vertex AI Workbench offrono anche un set sicuro di software e pattern di accesso fin dal primo utilizzo. È pratica comune personalizzare Proprietà Google Cloud come rete e Identity and Access Management, oltre al software (tramite un container) associati a Vertex AI Workbench in esecuzione in un'istanza Compute Engine. Per ulteriori informazioni, consulta Introduzione a Vertex AI e Introduzione alle istanze di Vertex AI Workbench.

In alternativa, puoi utilizzare Colab Enterprise, che è un ambiente di blocco note 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 di Vertex AI Workbench quando non vengono usati.

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

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

Usa l'SDK Vertex AI per Python

Utilizza le funzionalità di SDK Vertex AI per Python, un metodo Python per utilizzare Vertex AI per il tuo modello end-to-end creando flussi di lavoro, che funzionano 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:

Lo sviluppo 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 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 specifici dei loro dati, versioni diverse dei modelli e 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 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 convertire nel formato e nell'archiviazione (separata dall'origine operativa) ottimizzate per l'addestramento ML. Per ulteriori informazioni sulla preparazione dei dati di usare con Vertex AI, vedi Addestra e utilizza i tuoi modelli.

Archiviare dati strutturati e semistrutturati in BigQuery

Se utilizzi dati strutturati o semistrutturati, ti consigliamo di archiviarli tutti in BigQuery, seguendo i consigli di BigQuery per la struttura del progetto. Nella maggior parte dei casi, puoi archiviare dati intermedi elaborati in BigQuery. Per ottenere la massima velocità, è meglio memorizzare ai dati materializzati invece di utilizzare viste o sottoquery per i dati di addestramento.

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

Se utilizzi… Utilizza questo strumento Google Cloud
TensorFlow per Keras Lettore tf.data.dataset per BigQuery
TFX BigQuery cliente
Dataflow Connettore Google BigQuery I/O
Qualsiasi altro framework (ad esempio PyTorch, XGBoost o scikit-learn) L'importazione di modelli in BigQuery

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

Archivia questi dati in formati di contenitori di grandi dimensioni su Cloud Storage. Questo vale per i file TFRecord suddivisi in parti se utilizzi TensorFlow o per i file Avro se utilizzi un altro framework.

Combina più immagini, video o clip audio singoli in file di grandi dimensioni, in questo modo: migliorerà la velocità effettiva di lettura e scrittura su Cloud Storage. Punta a file di almeno 100 MB e tra 100 e 10.000 shard.

Per abilitare la gestione dei dati, utilizza i bucket e le directory Cloud Storage per gruppare gli shard. Per ulteriori informazioni, consulta la Panoramica del prodotto Cloud Storage.

Utilizzare i servizi di etichettatura dei dati con la console Google Cloud

Puoi creare e importare i dati di addestramento tramite la pagina Vertex AI nella console Google Cloud. 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. Sono presenti anche dati soluzioni di etichettatura sulla console Google Cloud Marketplace, come Etichetta e Flusso di snorkeling.

Utilizza Vertex AI Feature Store per i dati strutturati

Puoi utilizzare Vertex AI Feature Store per creare, gestire, condividere e pubblicare funzionalità di ML in un'unica posizione. È 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 dello Store online e definire le visualizzazioni delle funzionalità. BigQuery archivia tutte le caratteristiche dati, inclusi i dati storici delle funzionalità 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 sicura e conveniente che consente ai data scientist e ai ricercatori di ML di collaborare facilmente semplificando il monitoraggio, il confronto e la condivisione dei loro esperimenti. Vertex AI TensorBoard consente di monitorare le metriche dell'esperimento come la perdita e l'accuratezza nel tempo, la visualizzazione del grafico del modello, la proiezione incorporamenti in uno spazio dimensionale inferiore e molto altro ancora.

Utilizza Vertex AI Experiments per l'integrazione con Vertex ML Metadata e registrazione e creazione di collegamenti tra parametri, 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 sottoinsiemi di un set di dati più grande. Potrebbe essere utile per usare il servizio di addestramento per set di dati più grandi o per set di dati addestramento. L'utilizzo del Servizio di addestramento Vertex AI si consiglia di mettere in produzione anche l'addestramento anche su set di dati di piccole dimensioni la formazione viene svolta in base a un programma 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 di addestramento Vertex AI 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 Crea un job di ottimizzazione degli iperparametri.

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

Utilizza un Istanza Vertex AI Workbench per valutare e comprendere i modelli. Oltre alle librerie comuni integrate come scikit-learn, le istanze di Vertex AI Workbench includono lo strumento What-if (WIT) e lo strumento Language Interpretability Tool (LIT). WIT consente di analizzare in modo interattivo i bias dei modelli utilizzando più mentre LIT aiuta a comprendere il modello di elaborazione del linguaggio naturale. tramite uno strumento visivo, interattivo ed estensibile.

Utilizza le attribuzioni delle caratteristiche per ottenere informazioni 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. Di descrivendo in dettaglio l'importanza di ciascuna caratteristica usata da un modello come input per creare una previsione, Vertex Explainable AI aiuta a comprendere meglio il comportamento degli utenti e creare fiducia nei tuoi modelli.

Vertex Explainable AI supporta modelli con addestramento personalizzato basati su tabelle come immagini.

Per ulteriori informazioni su Vertex Explainable AI, consulta:

Preparazione dei dati

Consigliamo le seguenti best practice per la preparazione dei dati:

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 più comuni.

Utilizza BigQuery per elaborare dati strutturati e semistrutturati

Utilizza BigQuery per archiviare dati strutturati non elaborati di dati semistrutturati. Se stai creando il tuo modello utilizzando BigQuery ML, utilizza le trasformazioni integrate in BigQuery per pre-elaborare i dati. Se utilizzi AutoML, utilizza le trasformazioni integrate in AutoML per la preelaborazione dei dati. Se stai creando un modello personalizzato, utilizzando BigQuery più efficaci in termini di costi.

Per 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.

Usa Dataflow per elaborare i dati

Con grandi volumi di dati, valuta l'utilizzo Dataflow che utilizza Apache Beam di programmazione di un modello. 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.

Utilizza Dataproc per l'elaborazione dei dati Spark serverless

In alternativa, se la tua organizzazione investe in una Apache Spark e competenze, valuta 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'uso di una 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 obbligatori. puoi scegliere di non utilizzarle se vuoi maggiore controllo sulla suddivisione dei dati nel codice di addestramento o sulla derivazione tra i dati e il modello non è fondamentale per la tua applicazione.

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

Addestramento ML

Consigliamo le seguenti best practice per l'addestramento ML:

Nell'addestramento ML, l'addestramento operativo si riferisce al processo di ripetizione dell'addestramento del modello monitorando le ripetizioni e gestendo le prestazioni. Sebbene le istanze di Vertex AI Workbench siano comode per lo sviluppo iterativo su set di dati di piccole dimensioni, ti consigliamo di mettere in produzione il codice per renderlo riproducibile e in grado di scalare su set di dati di grandi dimensioni. In questa sezione, gli strumenti e le best practice per rendere operativa la formazione di Google Cloud.

Esegui il codice in un servizio gestito

Ti consigliamo di eseguire il codice in Servizio di addestramento Vertex AI o orchestrare Vertex AI Pipelines, Facoltativamente, puoi eseguire il codice direttamente Deep Learning VM Image, container di deep learning, o Compute Engine. Tuttavia, sconsigliamo questo approccio se utilizzi funzionalità di Vertex AI come il ridimensionamento automatico e la funzionalità di picco.

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

Per rendere operativa l'esecuzione dei job di addestramento su Vertex AI, puoi creare pipeline di addestramento. Una pipeline di addestramento, diversa da una pipeline ML generale, incapsula i job di addestramento. Per scoprire di più sulla formazione pipeline, vedi 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 non stai addestrando in modo interattivo. Se il modello non riesce e non viene eseguito il checkpoint, il job di addestramento o la pipeline verrà completata e i dati andranno persi perché il modello non è in memoria. Per evitare questo scenario, conviene usare sempre l'addestramento checkpoint per assicurarti di non perdere lo stato.

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

Per scoprire di più sui checkpoint, consulta Controlli di addestramento per TensorFlow Core, Salvataggio e caricamento di un checkpoint generale in PyTorch, e Modelli di progettazione con ML.

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 la cui regione 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 ridurre al minimo il rischio di perdita o danneggiamento accidentale dei dati, attiva il controllo delle versioni degli oggetti in Cloud Storage.

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

Se utilizzi un contenitore predefinito Vertex AI, assicurati che i nomi dei file degli elementi 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 scoprire come salvare il modello sotto forma di uno o più artefatti, 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 funzionalità di Vertex AI Feature Store saranno già pronte per la pubblicazione online. Per tutte le nuove funzionalità create dal data scientist utilizzando i dati del data lake, consigliamo di pianificare i job di elaborazione dei dati e di creazione delle funzionalità (o idealmente Dataflow) corrispondente per calcolare regolarmente i valori delle nuove funzionalità con la cadenza richiesta, a seconda delle esigenze di aggiornamento delle funzionalità, e importarli in Vertex AI Feature Store per l'importazione online o in batch.

Deployment e distribuzione del modello

Consigliamo le seguenti best practice per il deployment e la distribuzione del modello:

Con deployment e pubblicazione del modello si intende la messa in produzione di un modello. La l'output del job di addestramento corrisponde a uno o più artefatti del modello Cloud Storage, che puoi caricare Model Registry in modo che il file possa essere utilizzato per la previsione in fase di pubblicazione. Esistono due tipi di pubblicazione delle previsioni: la previsione batch viene utilizzata per assegnare un punteggio a batch di dati a una cadenza regolare, mentre la previsione online viene utilizzata per assegnare un punteggio ai dati in tempo quasi reale per le applicazioni in tempo reale. Entrambi gli approcci ti consentono di ottenere previsioni da modelli addestrati passando i dati di input a un modello di ML ospitato sul cloud e ottenendo deduzioni per ogni istanza di dati. Per saperne di più, consulta Generare previsioni batch e Generare 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. Gli endpoint privati sono particolarmente utili se l'applicazione che esegue la previsione e il file binario di pubblicazione si trovano all'interno della stessa rete locale. Puoi evitare l'overhead del routing internet e stabilire 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 del modello, ad esempio una macchina virtuale (VM) con unità di elaborazione centrale (CPU) diversa o tipi di unità di elaborazione grafica (GPU). Per ulteriori informazioni, 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 per passare input al modello. Se utilizzi la previsione batch, puoi recuperare i dati dal data lake o API di recupero dati in batch di Vertex AI Feature Store. Se utilizzi la previsione online, puoi inviare istanze di input al servizio e restituisce le tue previsioni nella risposta. Per ulteriori informazioni, vedi Dettagli del corpo della risposta.

Se esegui il deployment del tuo modello per la previsione online, hai bisogno di una bassa latenza, un modo scalabile per fornire gli input o le caratteristiche che devono essere trasmessi dell'endpoint del modello. Puoi farlo utilizzando uno dei tanti Servizi di database su Google Cloud, oppure puoi utilizzare API di distribuzione online di Vertex AI Feature Store. I client che chiamano l'endpoint di previsione online possono prima chiamare la caratteristica di pubblicazione per recuperare gli input delle caratteristiche, quindi richiamare la previsione endpoint 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 su più endpoint, ad esempio in fase di test e di produzione, condividendo le risorse tra i deployment.

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

Puoi anche personalizzare l'input (richiesta) e l'output (risposta) la gestione 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 ulteriori informazioni, consulta Ottenere le 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 Scalabilità delle previsioni ML.

Orchestrazione del flusso di lavoro ML

Consigliamo le seguenti best practice per l'orchestrazione dei flussi di lavoro ML:

Vertex AI fornisce l'orchestrazione dei flussi di lavoro di ML per automatizzare il flusso di lavoro di ML con Vertex AI Pipelines, un servizio completamente gestito che ti consente di addestrare nuovamente i modelli tutte le volte che è necessario. Il riaddestramento consente ai modelli di adattarsi alle modifiche e mantenere il rendimento nel tempo, considera come cambieranno i dati al momento di scegliere una cadenza ottimale di riaddestramento del modello.

I flussi di lavoro di orchestrazione dell'apprendimento automatico sono ideali per i clienti che hanno già progettato e creato il proprio modello, lo hanno implementato in produzione e vogliono determinare cosa funziona e cosa no nel modello di ML. Il codice utilizzato 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 conoscenze di ML e data science.

Utilizzare Vertex AI Pipelines per orchestrare il flusso di lavoro di ML

Sebbene sia possibile avviare manualmente ogni processo, addestramento, valutazione, test ti consigliamo di usare da Vertex AI Pipelines a per orchestrare il flusso. Per informazioni dettagliate, vedi MLOps livello 1: automazione delle pipeline ML.

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

Utilizzare Kubeflow Pipelines per la costruzione di pipeline flessibili

Consigliamo l'SDK Kubeflow Pipelines alla maggior parte degli utenti che vogliono creare contenuti gestiti pipeline di dati. Kubeflow Pipelines è flessibile e ti consente di usare codice semplice per creare pipeline. Fornisce inoltre componenti di pipeline di Google Cloud, che ti consente di includere funzionalità di Vertex AI come AutoML nella tua pipeline. Per scoprire di più su Kubeflow Pipelines, vedi Pipeline di Kubeflow e Vertex AI Pipelines,

Utilizza Ray su Vertex AI per flussi di lavoro ML distribuiti

Ray fornisce un framework distribuito generale e unificato per scalare le macchine di apprendimento tramite un ambiente Python open source, scalabile di elaborazione dei dati. Questo quadro di riferimento può aiutare a risolvere le sfide che si presentano di avere una varietà di framework distribuiti nell'ecosistema ML, come dover fare i conti con più modalità di parallelismo, pianificazione e la 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 elementi:

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 di archiviazione Artefatti
Repository del controllo del codice sorgente
  • Istanze Vertex AI Workbench
  • 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 della pipeline
Model Registry
  • Modelli addestrati
Artifact Registry
  • Container della pipeline
  • Ambienti di addestramento personalizzati
  • Ambienti di previsione personalizzati
Vertex AI Prediction
  • Modelli sottoposti a 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 le pipeline in questione. 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 assicura che il modello funzioni come previsto. Vertex AI offre due modi per monitorare i modelli ML:

  • Rilevamento 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 verso per i dati di produzione. La deviazione si verifica quando le proprietà statistiche e il target, che il modello sta cercando di prevedere, cambia in modi imprevisti. Questo causa problemi perché le previsioni potrebbero diventare meno precisi 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 Modelli di monitoraggio per disallineamenti o deviazioni delle caratteristiche.

Utilizzare il rilevamento del disallineamento e della deviazione

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 usati 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 deriva, attiva le funzionalità da monitorare e le soglie corrispondenti per attivare un avviso.

Ottimizza 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 usa il monitoraggio per creare dashboard o configurare avvisi in base alle metriche, consulta le 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 nei dati come indicatore precoce del possibile peggioramento delle prestazioni del modello. Ad esempio, se inizialmente il modello si basava su cinque funzionalità per fare predizioni nei dati di addestramento e di test, ma ha iniziato a basarsi su funzionalità completamente diverse quando è stato implementato in produzione, le attribuzioni delle funzionalità ti aiuterebbero a rilevare questo degrado del rendimento del modello.

Ciò è particolarmente utile per i tipi di caratteristiche complessi, come gli incorporamenti e che sono difficili da confrontare 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 l'accuratezza e l'affidabilità del modello nel mondo reale diverse applicazioni. Ti consigliamo di monitorare i seguenti problemi:

  • Distorsione dei dati: questo problema si verifica quando le distribuzioni dei valori delle funzionalità differiscono tra i dati di addestramento e di pubblicazione. le statistiche sull'addestramento, salvate durante l'addestramento del modello, per abilitare il rilevamento del disallineamento senza dati originali.
  • Deviazione dei dati: i dati reali cambiano spesso nel tempo. Il monitoraggio del modello ti aiuta a identificare quando i dati di input che il tuo modello vede in produzione (dati di pubblicazione) iniziano a differire in modo significativo dai dati su cui è stato addestrato (dati di addestramento). Questa deviazione può portare a un peggioramento delle prestazioni.
  • Disallineamento o deviazione dei dati avanzati: quando vuoi un disallineamento o una deviazione granulari statistiche, monitorare il disallineamento o la deviazione dei dati avanzati.

Passaggi successivi