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

Last reviewed 2022-12-15 UTC

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

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

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

Flusso di lavoro di machine learning su Google Cloud

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

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

Ai fini del presente documento si presume che:

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

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

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

Se non hai mai utilizzato il machine learning, dai un'occhiata al corso accelerato sul machine learning di Google.

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

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

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

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

Configurazione dell'ambiente di machine learning

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

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

Le istanze di blocco note forniscono inoltre un insieme sicuro di software e pattern di accesso da subito. È pratica comune personalizzare le proprietà di Google Cloud, come la rete e Identity and Access Management, e il software (tramite un container) associato a un'istanza di blocco note. Per ulteriori informazioni, consulta Componenti di Vertex AI e Introduzione ai blocchi note gestiti dall'utente.

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

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

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

Il controllo dell'accesso più semplice consiste nell'archiviare le risorse e gli artefatti non elaborati e Vertex AI, come set di dati e modelli, nello stesso progetto Google Cloud. Più in genere, la società dispone di 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 aziendale tra progetti con Identity and Access Management (IAM).

Usa l'SDK Vertex AI per Python

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

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

Sviluppo del machine learning

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

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

Preparare i dati di addestramento

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

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

Archiviare dati strutturati e semistrutturati in BigQuery

Se utilizzi dati strutturati o semistrutturati, ti consigliamo di archiviare tutti i dati in BigQuery, seguendo il consiglio di BigQuery per la struttura dei progetti. Nella maggior parte dei casi, puoi archiviare dati intermedi elaborati anche in BigQuery. Per ottenere la massima velocità, è preferibile archiviare i dati materializzati anziché utilizzare viste o sottoquery per l'addestramento.

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

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

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

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

Combina molte immagini, video o clip audio individuali in file di grandi dimensioni, poiché miglioreranno la velocità effettiva di lettura e scrittura in Cloud Storage. Cerca file di almeno 100 MB e con un numero di shard compreso tra 100 e 10.000.

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

Utilizza Vertex AI Data Labeling per dati non strutturati

Potresti aver bisogno di essere umani per fornire etichette ai tuoi dati, soprattutto se si tratta di dati non strutturati. Utilizza Vertex AI Data Labeling per questo lavoro. Puoi assumere i tuoi etichettatori e utilizzare il software di Google Cloud per gestire il loro lavoro oppure utilizzare gli etichettatori interni di Google per l'attività. Per scoprire di più, consulta la pagina Richiesta di etichettatura dei dati.

Utilizzare Vertex AI Feature Store con i dati strutturati

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

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

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

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

  2. Crea una nuova funzionalità. Se Vertex AI Feature Store non ha le funzionalità necessarie, crea una nuova funzionalità utilizzando i dati del tuo data lake.

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

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

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

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

Evitare di archiviare i dati nell'archiviazione a blocchi

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

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

Durante lo sviluppo dei modelli, utilizza Vertex AI TensorBoard per visualizzare e confrontare esperimenti specifici, ad esempio in base agli iperparametri. Vertex AI TensorBoard è un servizio Vertex AI TensorBoard gestito di livello enterprise con una soluzione sicura ed economica che consente a data scientist e ricercatori ML di collaborare facilmente semplificando il monitoraggio, il confronto e la condivisione dei propri 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 di incorporamenti in uno spazio dimensionale inferiore e molto altro.

Usa gli esperimenti di Vertex AI 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 blocco note per set di dati di piccole dimensioni

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

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

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

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

utilizza un'istanza di blocco note per comprendere i modelli

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

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

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

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

Per ulteriori informazioni su Vertex Explainable AI, consulta:

Trattamento dati

L'approccio consigliato per il trattamento dei dati dipende dal framework e dai tipi di dati che stai utilizzando. Questa sezione fornisce suggerimenti di alto livello 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 tuo modello con BigQuery ML, utilizza le trasformazioni integrate in BigQuery per pre-elaborare i dati. Se usi AutoML, usa le trasformazioni integrate in AutoML per la pre-elaborazione dei dati. Se stai creando un modello personalizzato, utilizzare le trasformazioni di BigQuery potrebbe essere il metodo più conveniente.

Utilizzare Dataflow per elaborare i dati

In caso di grandi volumi di dati, ti consigliamo di utilizzare Dataflow, che impiega il modello di programmazione Apache Beam. Puoi utilizzare Dataflow per convertire i dati non strutturati in formati di dati binari come TFRecord, che può migliorare le prestazioni 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 investimenti in un codebase e competenze Apache Spark, valuta l'utilizzo di Dataproc. Usa script Python una tantum per set di dati più piccoli che rientrano in memoria.

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

Utilizzo di set di dati gestiti con metadati ML

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

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

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

Formazione operativa

L'addestramento operativo fa riferimento al processo per rendere ripetibile l'addestramento di un modello, tenere traccia delle ripetizioni e gestire le prestazioni. Sebbene i blocchi note di Vertex AI Workbench siano comodi per lo sviluppo iterativo su piccoli set di dati, ti consigliamo di rendere operativo il codice per renderlo riproducibile e scalabile su grandi set di dati. In questa sezione, parleremo degli strumenti e delle best practice per applicare le tue routine di addestramento.

Esegui il codice in un servizio gestito

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

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

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

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

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

Il flusso di lavoro ML in questo documento presuppone che tu non abbia un addestramento interattivo. Se il modello presenta errori 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, è consigliabile utilizzare sempre i checkpoint di addestramento per garantire di non perdere lo stato.

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

Per scoprire di più sui checkpoint, consulta gli articoli Addestramento checkpoint per TensorFlow Core, Salvataggio e caricamento di un checkpoint generale in PyTorch e Machine learning pattern di progettazione.

Prepara gli artefatti del modello per la gestione in Cloud Storage

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

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

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

  • SaveModel di TensorFlow: saved_model.pb

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

  • XGBoost: model.bst

  • PyTorch: model.pth

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

Calcola regolarmente i nuovi valori delle caratteristiche

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

Deployment e distribuzione del modello

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

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

Specifica il numero e i tipi di macchine che ti servono

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

Pianifica gli input per il modello

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

Se esegui il deployment del tuo 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 molti servizi di database su Google Cloud oppure puoi utilizzare l'API di pubblicazione online di Vertex AI Feature Store. I client che chiamano l'endpoint di previsione online possono prima chiamare la soluzione di gestione delle caratteristiche per recuperare gli input delle funzionalità, quindi chiamare l'endpoint di previsione con questi input.

L'importazione di flussi di dati consente di apportare aggiornamenti in tempo reale ai valori delle caratteristiche. Questo metodo è utile quando è fondamentale avere i dati più recenti disponibili per la pubblicazione online. Ad esempio, puoi importare i flussi di dati degli eventi e, entro pochi secondi, l'importazione di flussi di dati di Vertex AI Feature Store li rende disponibili per gli scenari di pubblicazione online.

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

Attiva la scalabilità automatica

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

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

Orchestrazione dei flussi di lavoro di machine learning

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

I flussi di lavoro di orchestrazione ML funzionano al meglio per i clienti che hanno già progettato e creato il proprio modello, lo hanno messo in produzione e desiderano determinare cosa funziona e cosa no nel modello ML. Il codice che usi per la sperimentazione sarà probabilmente utile per il resto del flusso di lavoro ML, Per lavorare con flussi di lavoro ML automatizzati, devi avere familiarità con Python, conoscere 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 ML

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

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

Utilizzare Kubeflow Pipelines per la costruzione flessibile di pipeline

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

Organizzazione degli artefatti

Gli artefatti sono output derivanti da ogni passaggio nel flusso di lavoro ML. È una best practice organizzarli in modo standardizzato.

Organizza gli artefatti del modello ML

Archivia i tuoi elementi in queste posizioni:

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

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

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

Monitoraggio del modello

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

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

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

Il monitoraggio dei modelli funziona per i dati strutturati, come caratteristiche numeriche e categoriche, ma non per i dati non strutturati, come le immagini. Per maggiori informazioni, consulta la pagina relativa al monitoraggio dei modelli per l'inclinazione o la deviazione delle caratteristiche.

Utilizza il rilevamento dell'inclinazione e della deviazione

Utilizza il più possibile il rilevamento del disallineamento, in quanto sapere che i dati di produzione si discostano da quelli di addestramento è un chiaro indicatore del fatto che le prestazioni del modello non sono quelle previste in produzione. Per il rilevamento del disallineamento, configura il job di monitoraggio del modello fornendo un puntatore ai dati di addestramento che hai utilizzato per addestrare il modello.

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

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

Ottimizza le soglie di avviso

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

Utilizza l'attribuzione delle funzionalità per rilevare le deviazioni o il disallineamento dei dati

Puoi utilizzare le attribuzioni delle caratteristiche in Vertex Explainable AI per rilevare la deviazione o il disallineamento dei dati come indicatore precoce del fatto che le prestazioni del modello potrebbero peggiorare. Ad esempio, se originariamente il modello si basava su cinque caratteristiche per effettuare previsioni nei dati di addestramento e test, ma iniziava a fare affidamento su funzionalità completamente diverse quando è entrato in produzione, le attribuzioni delle caratteristiche ti aiuterebbero a rilevare questo peggioramento delle prestazioni del modello.

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

Passaggi successivi