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

Last reviewed 2024-09-09 UTC

Questo documento presenta le best practice per l'implementazione del machine learning (ML) su Google Cloud, con un focus sui modelli con addestramento personalizzato basati sui tuoi dati e sul tuo codice. Fornisce suggerimenti su come sviluppare un modello con addestramento personalizzato durante il workflow ML, tra cui azioni chiave e link per ulteriori approfondimenti.

Il documento descrive le seguenti fasi del flusso di lavoro ML:

  1. Sviluppo ML: progetta, sperimenta e sviluppa un prototipo di modello per risolvere un problema aziendale.
  2. Preparazione dei dati: pulisci il rumore dai dati non elaborati e progetta le caratteristiche per assicurarti che il modello riceva input di alta qualità e con un segnale elevato.
  3. Addestramento ML: esegui script di addestramento su un set di dati per ottimizzare i parametri del modello e regolare gli iperparametri finché una metrica sul rendimento non soddisfa i tuoi requisiti.
  4. Deployment e gestione dei modelli: esegui il deployment del modello in un ambiente di produzione per fornire l'accesso agli utenti tramite un'API o un container.
  5. Orchestrazione del workflow ML: automatizza la pipeline end-to-end che pianifica il workflow ML dall'importazione dati al deployment.
  6. Organizzazione degli artefatti: registra e crea versioni di ogni set di dati, file di modello e configurazione in un registry centralizzato.
  7. Monitoraggio del modello: utilizza le dashboard per monitorare le prestazioni in tempo reale del modello e la deviazione delle prestazioni.

Il documento non è un elenco esaustivo di suggerimenti, ma ha lo scopo di aiutare i data scientist e gli architetti ML a comprendere l'ambito delle attività coinvolte nell'utilizzo del ML su Google Cloud e a pianificare di conseguenza. Inoltre, sebbene le alternative di sviluppo ML come AutoML siano menzionate in Utilizza prodotti e strumenti 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 Gemini Enterprise Agent Platform.

Questo documento presuppone quanto segue:

  • Utilizzi principalmente i servizi Google Cloud ; gli approcci ibridi e 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 per big data e pre-elaborazione dei dati, nonché una familiarità con i concetti fondamentali di Cloud Storage, BigQuery e Google Cloud.

Se non hai mai utilizzato il ML, dai un'occhiata al corso intensivo sul ML di Google.

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

Fase del flusso di lavoro ML Strumenti e prodotti consigliati
Configurazione dell'ambiente ML
Sviluppo del ML
Preparazione dei dati
Addestramento ML
Deployment e distribuzione del modello
Orchestrazione del workflow ML
Organizzazione degli artefatti
Monitoraggio del modello
Piattaforme open source gestite

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

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.
  • Hai dimestichezza con SQL.
  • L'insieme di modelli disponibili in BigQuery ML corrisponde al problema che stai cercando di risolvere.
AutoML (nel contesto di Agent Platform) 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 di un'architettura, l'ottimizzazione degli iperparametri e il provisioning delle macchine, vengono gestiti per te.
Modelli con addestramento personalizzato Agent Platform Vertex ti consente di eseguire le tue routine di addestramento personalizzate e di eseguire il deployment di modelli di qualsiasi tipo su un'architettura serverless. Agent Platform offre servizi aggiuntivi, come l'ottimizzazione e il monitoraggio degli iperparametri, per semplificare lo sviluppo di un modello. Consulta Scegli 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 ML

Ti consigliamo di seguire queste best practice quando configuri l'ambiente ML:

Utilizza le istanze di Agent Platform Workbench per la sperimentazione e lo sviluppo

Indipendentemente dagli strumenti che utilizzi, ti consigliamo di utilizzare le istanze Agent Platform 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 Workbench di Agent Platform ti consentono di accedere a tutti i dati e ai servizi AI di Google Cloud in modo semplice e riproducibile.

Le istanze Workbench di Agent Platform offrono anche un insieme sicuro di software e pattern di accesso pronti all'uso. È prassi comune personalizzare le proprietà diGoogle Cloud , come la rete e Identity and Access Management, e il software (tramite un container) associato a un'istanza di Agent Platform Workbench. Per saperne di più, consulta Introduzione ad Agent Platform e Introduzione alle istanze di Agent Platform 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 Agent Platform Workbench per ogni membro del team

Crea un'istanza Agent Platform 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 Agent Platform Workbench quando non vengono utilizzate.

Archivia le risorse e gli artefatti ML in base alle policy aziendali

Il controllo dell'accesso più semplice consiste nell'archiviare sia le risorse e gli artefatti della piattaforma Agent, come set di dati e modelli, sia i dati non elaborati nello stesso progetto Google Cloud . Più comunemente, la tua azienda ha policy 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 aziendali con Identity and Access Management (IAM).

Utilizza l'SDK Vertex AI Python

Utilizza l'SDK Agent Platform per Python, un modo Pythonic per utilizzare Agent Platform per i tuoi workflow di creazione di modelli end-to-end, che funziona perfettamente con i tuoi framework di ML preferiti, tra cui PyTorch, TensorFlow, XGBoost e scikit-learn.

In alternativa, puoi utilizzare la console Google Cloud , che supporta la funzionalità di Agent Platform 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 quale funziona meglio.

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 sul 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, a diverse versioni dei modelli e a diverse architetture 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 Agent Platform, consulta Addestra e utilizza i tuoi modelli.

Archivia i dati strutturati e semistrutturati in BigQuery

Se lavori con dati strutturati o semistrutturati, ti consigliamo di archiviare tutti i dati in BigQuery, seguendo i suggerimenti 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 subquery per i dati di addestramento.

Leggere i dati da BigQuery utilizzando l'API BigQuery Storage. Per il monitoraggio degli artefatti, valuta la possibilità di utilizzare un set di dati tabulare gestito. La tabella seguente elenca gli strumenti Google Cloud 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 I/O Google BigQuery
Qualsiasi altro framework (ad esempio PyTorch, XGBoost o scikit-learn) Importazione di modelli in BigQuery

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

Archivia questi dati in formati di 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 singole immagini, video o audio clip in file di grandi dimensioni, in modo da migliorare il throughput di lettura e scrittura su Cloud Storage. Cerca di ottenere file di almeno 100 MB e tra 100 e 10.000 shard.

Per abilitare la gestione dei dati, utilizza i bucket Cloud Storage e le directory per raggruppare gli shard. Per saperne di più, consulta la panoramica del prodotto Cloud Storage.

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

Puoi creare e importare i dati di addestramento tramite la pagina Agent Platform 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. Esistono anche soluzioni di etichettatura dei dati nel Marketplace della console Google Cloud , come Labelbox e Snorkel Flow.

Utilizza Feature Store di Agent Platform con i dati strutturati

Puoi utilizzare Feature Store per creare, gestire, condividere e fornire caratteristiche ML in una posizione centrale. È ottimizzato per gestire workload che richiedono una bassa latenza e ti consente di archiviare i dati delle caratteristiche in una tabella o vista BigQuery. Per utilizzare Agent Platform Feature Store, devi creare un'istanza di negozio online e definire le visualizzazioni delle caratteristiche. BigQuery archivia tutti i dati delle caratteristiche, inclusi i dati storici, per consentirti di lavorare offline.

Utilizza Vertex AI TensorBoard ed Experiments su Gemini Enterprise Agent Platform 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 degli esperimenti, come perdita e accuratezza nel tempo, visualizzare il grafico del modello, proiettare gli incorporamenti in uno spazio dimensionale inferiore e molto altro ancora.

Utilizza Experiments su Agent Platform 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 Agent Platform Workbench per set di dati di piccole dimensioni

L'addestramento di un modello all'interno dell'istanza di Agent Platform 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 gestito di Gemini Enterprise Agent Platform è suggerito inoltre 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 di addestramento gestito di Gemini Enterprise Agent Platform 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.

Utilizza un'istanza di Agent Platform Workbench per comprendere i tuoi modelli

Utilizza un'istanza di Agent Platform Workbench per valutare e comprendere i tuoi modelli. Oltre alle librerie comuni integrate come scikit-learn, le istanze di Agent Platform 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 consente di comprendere il comportamento dei modelli di elaborazione del linguaggio naturale attraverso uno strumento visivo, interattivo ed estensibile.

Utilizza le attribuzioni delle caratteristiche per ottenere insight 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 immagine e tabulari.

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 suggerimenti generali per gli scenari comuni.

Utilizza BigQuery per elaborare dati strutturati e semistrutturati

Utilizza BigQuery per archiviare dati strutturati o semistrutturati non elaborati. Se stai creando il 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'utilizzo delle trasformazioni BigQuery potrebbe essere il metodo più conveniente.

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.

Utilizza Dataflow per elaborare i dati

Nel caso di grandi volumi di dati, ti consigliamo di utilizzare Dataflow, che usa 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'acquisizione dei dati durante il processo di addestramento.

Utilizza Managed Service for Apache Spark per il trattamento dei dati Spark serverless

In alternativa, se la tua organizzazione ha fatto investimenti in competenze e codebase Apache Spark, ti consigliamo di utilizzare Managed Service for Apache Spark. 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.

Utilizza i set di dati gestiti con i metadati ML

Dopo la pre-elaborazione dei dati per ML, potresti prendere in considerazione l'utilizzo di un set di dati gestito in Agent Platform. 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 saperne di più, consulta 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 ML:

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 di Agent Platform 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 in grado di scalare su set di dati di grandi dimensioni. In questa sezione, parleremo degli strumenti e delle 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 gestito di Gemini Enterprise Agent Platform o di orchestrarlo con Agent Platform Pipelines. Facoltativamente, puoi eseguire il codice direttamente in Deep Learning VM Image, Deep Learning Containers o Compute Engine. Tuttavia, sconsigliamo questo approccio se utilizzi funzionalità della piattaforma dell'agente come la scalabilità automatica e la funzionalità di burst.

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

Per rendere operativa l'esecuzione dei job di addestramento su Agent Platform, puoi creare pipeline di addestramento. Una pipeline di addestramento, che è 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 non riesce e non viene eseguito il checkpoint, il job di addestramento o la pipeline verranno completati e i dati andranno persi perché il modello non è in memoria. Per evitare questo scenario, 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 esecuzione di addestramento.

Per scoprire di più sui checkpoint, consulta Checkpoint di addestramento per TensorFlow Core, Salvataggio e caricamento di un checkpoint generale in PyTorch e Pattern di progettazione 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, 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 mitigare 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 progetto Google Cloud . Se il tuo bucket Cloud Storage si trova in un progetto Google Cloud diverso, devi concedere a Gemini Enterprise Agent Platform l'accesso per leggere gli artefatti del modello.

Se utilizzi un container predefinito di Gemini Enterprise Agent Platform, assicurati che i nomi 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.

Calcola regolarmente i nuovi valori delle caratteristiche

Spesso, un modello utilizza un sottoinsieme di caratteristiche provenienti da Agent Platform Feature Store. Le caratteristiche in Agent Platform Feature Store saranno già pronte per l'erogazione online. Per tutte le nuove funzionalità create dai data scientist mediante l'approvvigionamento di dati dal data lake, consigliamo di pianificare i job di elaborazione dati e 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 importarle in Agent Platform Feature Store per l'erogazione online o recupero dati 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. L'output del job di addestramento è costituito da uno o più artefatti del modello archiviati su Cloud Storage che puoi caricare su Model Registry in modo che il file possa essere utilizzato per fornire previsioni. Esistono due tipi di distribuzione delle previsioni: la previsione in batch viene utilizzata per valutare i batch di dati con una cadenza regolare, mentre la previsione online viene utilizzata per la valutazione dei dati quasi in tempo reale per le applicazioni live. Entrambi gli approcci ti consentono di ottenere previsioni dai modelli addestrati passando i dati di input a un modello di ML ospitato nel cloud e ottenendo inferenze per ogni istanza di dati.Per saperne di più, consulta Generazione di previsioni in batch e Genera previsioni online da modelli con addestramento personalizzato.

Per ridurre la latenza per le richieste peer-to-peer tra il client e il server di modelli, utilizza gli endpoint privati di Agent Platform. Gli endpoint privati sono particolarmente utili se l'applicazione che effettua le richieste di previsione e il file binario di distribuzione si trovano nella 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, 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 le previsioni in batch, puoi recuperare i dati dal data lake o dall'API di recupero dati in batch di 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 modello per la previsione online, hai bisogno di un modo scalabile e a bassa latenza per fornire gli input o le caratteristiche che devono essere passati all'endpoint del modello. Puoi farlo utilizzando uno dei numerosi servizi di database su Google Cloud o l'API di erogazione online di Feature Store. I client che chiamano l'endpoint di previsione online possono prima chiamare la soluzione di erogazione delle caratteristiche per recuperare gli input delle caratteristiche, quindi 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 fase di test e produzione, condividendo le risorse tra i deployment.

L'acquisizione di flussi di dati ti consente di apportare aggiornamenti in tempo reale ai valori delle caratteristiche. Questo metodo è utile quando la priorità è avere i dati più recenti disponibili per l'erogazione online. Ad esempio, puoi acquisire dati sugli eventi in streaming e, nel giro di pochi secondi, l'acquisizione di flussi di dati di Feature Store rende questi dati disponibili per gli scenari di erogazione online.

Inoltre, puoi personalizzare la gestione e il formato di input (richiesta) e output (risposta) da e verso il server di modelli utilizzando le routine di previsione personalizzate.

Attiva la scalabilità automatica

Se utilizzi il servizio di previsione online, nella maggior parte dei casi ti consigliamo di attivare la scalabilità automatica impostando il numero minimo e massimo di nodi. Per saperne di più, consulta Ottieni previsioni per un modello con addestramento personalizzato. Per garantire un accordo sul livello del servizio (SLA) ad alta affidabilità, 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 workflow ML

Consigliamo le seguenti best practice per l'orchestrazione del workflow ML a seconda delle tue esigenze di infrastruttura e integrazione:

Google Cloud fornisce una suite completa per l'orchestrazione del workflow ML. Per processi end-to-end complessi che comprendono attività di data engineering come estrazione, caricamento e trasformazione (ELT), addestramento ML e sistemi aziendali esterni, consigliamo Managed Airflow come orchestratore aziendale. Per i workflow autonomi che rimangono rigorosamente all'interno dell'ecosistema di Agent Platform, Agent Platform Pipelines fornisce un servizio completamente gestito serverless che ti consente di riaddestrare i modelli con la frequenza necessaria. Sebbene l'addestramento consenta ai modelli di adattarsi ai cambiamenti e di mantenere le prestazioni nel tempo, considera quanto cambieranno i tuoi dati quando scegli la cadenza di addestramento ottimale del modello.

I workflow di orchestrazione ML sono ideali per i clienti che hanno già progettato e creato il proprio modello, lo hanno messo in produzione e vogliono automatizzare il ciclo di vita del ML. Il codice che utilizzi per la sperimentazione sarà probabilmente utile per il resto del flusso di lavoro ML con alcune modifiche. Per lavorare con i workflow ML nativi dei container in Agent Platform Pipelines, devi avere una buona conoscenza di Python, comprendere l'infrastruttura di base come i container e avere conoscenze di ML. Per un'orchestrazione più ampia senza la necessità di gestire container personalizzati per attività non di ML, Managed Airflow offre oltre 1000 operatori predefiniti e un framework di configurazione accessibile basato su YAML per i data scientist.

Utilizza Managed Airflow per i workflow MLOps aziendali end-to-end

Sebbene sia possibile avviare manualmente ogni processo di trattamento dati, addestramento, valutazione e deployment, ti consigliamo di utilizzare Managed Airflow per orchestrare l'intero flusso quando l'architettura comprende sistemi eterogenei. Managed Airflow è basato su Apache Airflow. Managed Airflow funge da control plane unificato, che ti consente di integrare perfettamente i servizi Google Cloud (come BigQuery e Dataflow) con Agent Platform e strumenti aziendali di terze parti.

In alternativa alla scrittura di DAG Python Airflow complessi, puoi utilizzare Orchestration Pipelines per definire la logica di business e le dipendenze in un file YAML conciso. Questo approccio dichiarativo riduce drasticamente la barriera all'ingresso, consentendo ai data scientist di creare ed eseguire il deployment di pipeline in più passaggi senza problemi e senza richiedere una conoscenza approfondita di Apache Airflow. Per scoprire di più su MLOps su Orchestration Pipelines, consulta Da settimane a minuti: la nuova era agentica delle pipeline di dati.

Utilizza le pipeline di Gemini Enterprise Agent Platform per i workflow serverless integrati in Agent Platform

Se i tuoi workflow sono interamente basati su container e se vengono eseguiti rigorosamente all'interno dell'ecosistema di Agent Platform, ti consigliamo di utilizzare Agent Platform Pipelines per orchestrare il flusso. Per informazioni dettagliate, consulta MLOps livello 1: automazione della pipeline ML. Agent Platform Pipelines fornisce l'esecuzione serverless per i DAG generati da Kubeflow e TensorFlow Extended (TFX).

Utilizza Kubeflow Pipelines per una creazione flessibile delle pipeline

Consigliamo l'SDK Kubeflow Pipelines alla maggior parte degli utenti che vogliono creare pipeline gestite per Agent Platform Pipelines. Kubeflow Pipelines è flessibile e ti consente di utilizzare il codice per creare pipeline containerizzate. Fornisce anche componenti della pipeline Google Cloud , che ti consentono di includere funzionalità della piattaforma Agent come AutoML nella tua pipeline. Per scoprire di più su Kubeflow Pipelines, consulta Kubeflow Pipelines e Agent Platform Pipelines.

Utilizza Ray su Gemini Enterprise Agent Platform per i workflow di ML distribuito

Ray fornisce un framework distribuito generale e unificato per scalare i flussi di lavoro di machine learning tramite un framework di computing distribuito, scalabile e open source Python. Questo framework può aiutare a risolvere le sfide derivanti dalla presenza di una varietà di framework distribuiti nel tuo ecosistema di ML, come la gestione di più modalità di parallelismo delle attività, pianificazione e gestione delle risorse. Puoi utilizzare Ray su Gemini Enterprise Agent Platform per sviluppare applicazioni su Agent Platform.

organizzazione degli artefatti

Ti consigliamo di utilizzare le seguenti best practice per organizzare gli artefatti:

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 gli artefatti in queste località:

Località di archiviazione Artefatti
Repository del controllo del codice sorgente
  • Istanze Gemini Enterprise Agent Platform Workbench
  • Codice sorgente della pipeline
  • Funzioni di pre-elaborazione
  • Codice sorgente del modello
  • Pacchetti di addestramento del modello
  • 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
Inferenza di Gemini Enterprise Agent Platform
  • 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 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

Una volta eseguito il deployment del modello in produzione, devi monitorare le prestazioni per garantire che il modello funzioni come previsto. Gemini Enterprise Agent Platform 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 delle deviazioni: 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 saperne di più, consulta Modelli di monitoraggio per disallineamenti o deviazioni delle caratteristiche.

Utilizza il rilevamento di disallineamento e 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 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 caratteristiche 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 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.

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 fatto che le prestazioni del modello potrebbero peggiorare. Ad esempio, se il modello inizialmente si basava su cinque caratteristiche per fare previsioni nei dati di addestramento e di test, ma ha iniziato a basarsi su caratteristiche completamente diverse quando è entrato in produzione, le attribuzioni delle caratteristiche 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.

Utilizza BigQuery per supportare il monitoraggio dei modelli

Il monitoraggio dei modelli BigQuery ML è un insieme di strumenti e funzionalità che ti aiuta 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 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 quelli di distribuzione. Le statistiche di addestramento, che vengono salvate durante l'addestramento del modello, consentono il rilevamento dello skew senza bisogno dei dati originali.
  • Deriva dei dati: i dati reali spesso cambiano nel tempo. Il monitoraggio del modello ti aiuta a identificare quando i dati di input che il modello vede in produzione (dati di distribuzione) iniziano a differire in modo significativo dai dati con cui è stato addestrato (dati di addestramento). Questa deviazione può comportare un peggioramento delle prestazioni.
  • Disallineamento o deviazione dei dati avanzati: se vuoi statistiche dettagliate su disallineamento o deviazione, monitora il disallineamento o la deviazione dei dati avanzati.

Passaggi successivi