Questo documento descrive l'architettura complessiva di un sistema di machine learning (ML) che utilizza le librerie TensorFlow Extended (TFX). Inoltre, illustra come configurare un'integrazione continua (CI), una distribuzione continua (CD) e un addestramento continuo (CT) per il sistema di ML utilizzando Cloud Build e Vertex AI Pipelines.
In questo documento, i termini sistema ML e pipeline ML fanno riferimento alle pipeline di addestramento dei modelli ML, anziché alle pipeline di punteggio o di previsione dei modelli.
Questo documento è rivolto a data scientist e ML engineer che vogliono adattare le proprie pratiche di CI/CD per spostare le soluzioni di ML in produzione su Google Cloud e che vogliono contribuire a garantire la qualità, la manutenibilità e l'adattabilità delle proprie pipeline di ML.
Questo documento tratta i seguenti argomenti:
- Informazioni su CI/CD e automazione nel machine learning.
- Progettazione di una pipeline ML integrata con TFX.
- Orchestrazione e automazione della pipeline ML utilizzando Vertex AI Pipelines.
- Configurazione di un sistema CI/CD per la pipeline ML utilizzando Cloud Build.
MLOps
Per integrare un sistema di ML in un ambiente di produzione, devi orchestrare i passaggi della pipeline di ML. Inoltre, devi automatizzare l'esecuzione della pipeline per l'addestramento continuo dei modelli. Per sperimentare nuove idee e funzionalità, devi adottare pratiche CI/CD nelle nuove implementazioni delle pipeline. Le seguenti sezioni forniscono una panoramica generale di CI/CD e CT nel machine learning.
Automazione di pipeline ML
In alcuni casi d'uso, la procedura manuale di addestramento, convalida e implementazione dei modelli di ML può essere sufficiente. Questo approccio manuale funziona se il tuo team gestisce solo alcuni modelli ML che non vengono addestrati di nuovo o non vengono modificati di frequente. Tuttavia, in pratica, i modelli spesso non funzionano quando vengono implementati nel mondo reale perché non riescono ad adattarsi ai cambiamenti nelle dinamiche degli ambienti o ai dati che descrivono queste dinamiche.
Affinché il sistema di ML si adatti a queste modifiche, devi applicare le seguenti tecniche di MLOps:
- Automatizza l'esecuzione della pipeline ML per addestrare nuovamente i nuovi modelli su nuovi dati in modo da rilevare eventuali schemi emergenti. Il CT viene descritto più avanti in questo documento nella sezione ML con Vertex AI Pipelines.
- Configura un sistema di distribuzione continua per eseguire frequentemente il deployment di nuove implementazioni dell'intera pipeline di ML. CI/CD viene discusso più avanti in questo documento nella sezione Configurazione di CI/CD per l'ML su Google Cloud.
Puoi automatizzare le pipeline di produzione ML per addestrare nuovamente i modelli con nuovi dati. Puoi attivare la pipeline on demand, in base a una pianificazione, alla disponibilità di nuovi dati, al degrado delle prestazioni del modello, a variazioni significative nelle proprietà statistiche dei dati o in base ad altre condizioni.
Pipeline CI/CD rispetto alla pipeline CT
La disponibilità di nuovi dati è uno degli elementi che attivano il riaddestramento del modello di ML. La disponibilità di una nuova implementazione della pipeline ML (inclusa la nuova architettura del modello, il feature engineering e gli iperparametri) è un altro trigger importante per eseguire nuovamente la pipeline ML. Questa nuova implementazione della pipeline ML funge da nuova versione del servizio di previsione del modello, ad esempio un microservizio con un'API REST per il servizio online. La differenza tra i due casi è la seguente:
- Per addestrare un nuovo modello di ML con nuovi dati, viene eseguita la pipeline di CT distribuita in precedenza. Non vengono implementati nuovi componenti o pipeline; alla fine della pipeline viene pubblicato solo un nuovo servizio di previsione o un nuovo modello addestrato.
- Per addestrare un nuovo modello ML con una nuova implementazione, viene eseguita il deployment di una nuova pipeline tramite una pipeline CI/CD.
Per eseguire rapidamente il deployment di nuove pipeline ML, devi configurare una pipeline CI/CD. Questa pipeline è responsabile del deployment automatico di nuove pipeline e nuovi componenti di ML quando le nuove implementazioni sono disponibili e approvate per vari ambienti (come sviluppo, test, gestione temporanea, preproduzione e produzione).
Il seguente diagramma mostra la relazione tra la pipeline CI/CD e la pipeline CT ML.
Figura 1. Pipeline CI/CD e CT di ML.
L'output di queste pipeline è il seguente:
- Se viene fornita una nuova implementazione, una pipeline CI/CD di successo esegue il deployment di una nuova pipeline CT di ML.
- Se vengono forniti nuovi dati, una pipeline di CT efficace addestra un nuovo modello e lo implementa come servizio di previsione.
Progettare un sistema ML basato su TFX
Le sezioni seguenti spiegano come progettare un sistema ML integrato utilizzando TensorFlow Extended (TFX) per configurare una pipeline CI/CD per il sistema ML. Sebbene esistano diversi framework per la creazione di modelli ML, TFX è una piattaforma ML integrata per lo sviluppo e il deployment di sistemi ML di produzione. Una pipeline TFX è una sequenza di componenti che implementano un sistema di ML. Questa pipeline TFX è progettata per attività di ML scalabili e ad alte prestazioni. Queste attività includono modellazione, addestramento, convalida, inferenza di pubblicazione e gestione dei deployment. Le librerie principali di TFX sono le seguenti:
- TensorFlow Data Validation (TFDV): viene utilizzato per rilevare le anomalie nei dati.
- TensorFlow Transform (TFT): utilizzato per la pre-elaborazione dei dati e il feature engineering.
- TensorFlow Estimators e Keras: vengono utilizzati per creare e addestrare i modelli ML.
- TensorFlow Model Analysis (TFMA): viene utilizzato per la valutazione e l'analisi dei modelli ML.
- TensorFlow Serving (TFServing): viene utilizzato per pubblicare modelli ML come API REST e gRPC.
Panoramica del sistema ML di TFX
Il seguente diagramma mostra come le varie librerie TFX vengono integrate per comporre un sistema ML.
Figura 2. Un tipico sistema ML basato su TFX.
La Figura 2 mostra un tipico sistema ML basato su TFX. I seguenti passaggi possono essere completati manualmente o mediante una pipeline automatizzata:
- Estrazione dei dati: il primo passaggio consiste nell'estrarre i nuovi dati di addestramento dalle sue origini dati. Gli output di questo passaggio sono file di dati utilizzati per l'addestramento e la valutazione del modello.
- Convalida dei dati: TFDV convalida i dati in base allo schema di dati (non elaborati) previsto. Lo schema dei dati viene creato e corretto durante la fase di sviluppo, prima del deployment del sistema. I passaggi di convalida dei dati rilevano anomalie relative sia alla distribuzione dei dati sia agli scostamenti dello schema. Gli output di questo passaggio sono le anomalie (se presenti) e la decisione di eseguire o meno i passaggi a valle.
- Trasformazione dei dati: dopo la convalida, i dati vengono suddivisi e preparati per l'attività di ML mediante l'esecuzione di trasformazioni dei dati e operazioni di progettazione di funzionalità utilizzando TFT. Gli output di questo passaggio sono file di dati per addestrare e valutare il modello, in genere trasformati in formato
TFRecords
. Inoltre, gli elementi artefatti della trasformazione prodotti aiutano a creare gli input del modello e a incorporare il processo di trasformazione nel modello salvato esportato dopo l'addestramento. - Addestramento e ottimizzazione del modello: per implementare e addestrare il modello ML, utilizza l'API
tf.Keras
con i dati trasformati prodotti dal passaggio precedente. Per selezionare le impostazioni dei parametri che generano il modello migliore, puoi utilizzare Keras Tuner, una libreria di ottimizzazione degli iperparametri per Keras. In alternativa, puoi utilizzare altri servizi come Katib, Vertex AI Vizier o l'ottimizzatore degli iperparametri di Vertex AI. L'output di questo passaggio è un modello salvato utilizzato per la valutazione e un altro modello salvato utilizzato per la pubblicazione online del modello per la previsione. - Valutazione e convalida del modello: quando il modello viene esportato dopo il passaggio di addestramento, viene valutato su un set di dati di test per valutare la qualità del modello utilizzando TFMA. TFMA valuta la qualità del modello nel suo complesso e identifica la parte del modello dei dati che non funziona. Questa valutazione contribuisce a garantire che il modello venga promosso per la pubblicazione solo se soddisfa i criteri di qualità. I criteri possono includere un rendimento equo su vari sottoinsiemi di dati (ad es. dati demografici e località) e un miglioramento del rendimento rispetto ai modelli precedenti o a un modello di riferimento. L'output di questo passaggio è un insieme di metriche sul rendimento e una decisione sull'eventuale promozione del modello in produzione.
- Pubblicazione del modello per la previsione: dopo la convalida del modello appena addestrato, viene eseguito il deployment come microservizio per pubblicare le previsioni online utilizzando TensorFlow Serving. L'output di questo passaggio è un servizio di previsione di cui è stato eseguito il deployment del modello ML addestrato. Puoi sostituire questo passaggio memorizzando il modello addestrato in un registry dei modelli. Successivamente viene avviato un modello separato che gestisce il processo CI/CD.
Per un esempio di come utilizzare le librerie TFX, consulta il tutorial ufficiale sul componente Keras di TFX.
Sistema ML TFX su Google Cloud
In un ambiente di produzione, i componenti del sistema devono essere eseguiti su larga scala su una piattaforma affidabile. Il seguente diagramma mostra come ogni passaggio della pipeline di ML di TFX viene eseguito utilizzando un servizio gestito su Google Cloud, che garantisce agilità, affidabilità e prestazioni su larga scala.
Figura 3. Sistema di ML basato su TFX su Google Cloud.
La tabella seguente descrive i principali servizi Google Cloud mostrati nella figura 3:
Passaggio | Libreria TFX | Servizio Google Cloud |
---|---|---|
Estrazione e convalida dei dati | TensorFlow Data Validation | Dataflow |
Trasformazione dei dati | TensorFlow Transform | Dataflow |
Addestramento e ottimizzazione del modello | TensorFlow | Vertex AI Training |
Valutazione e convalida del modello | TensorFlow Model Analysis | Dataflow |
Erogazione del modello per le previsioni | TensorFlow Serving | Vertex AI Prediction |
Spazio di archiviazione dei modelli | N/D | Registro dei modelli di Vertex AI |
- Dataflow
è un servizio completamente gestito, serverless e affidabile per l'esecuzione di pipeline Apache Beam su larga scala su Google Cloud. Dataflow viene utilizzato per scalare i seguenti processi:
- Calcolo delle statistiche per convalidare i dati in arrivo.
- Eseguire la preparazione e la trasformazione dei dati.
- Valutare il modello su un set di dati di grandi dimensioni.
- Calcolo delle metriche su diversi aspetti del set di dati di valutazione.
- Cloud Storage
è uno spazio di archiviazione durevole e ad alta disponibilità per oggetti binari di grandi dimensioni.
Cloud Storage ospita gli elementi di cui è composta la pipeline ML, tra cui:
- Anomalie dei dati (se presenti)
- Dati e artefatti trasformati
- Modello esportato (addestrato)
- Metriche di valutazione del modello
- Vertex AI Training è un servizio gestito per l'addestramento di modelli ML su larga scala. Puoi eseguire job di addestramento dei modelli con container predefiniti per TensorFlow, Scikit learn, XGBoost e PyTorch. Puoi anche eseguire qualsiasi framework utilizzando i tuoi container personalizzati. Per la tua infrastruttura di addestramento puoi utilizzare acceleratori e più nodi per l'addestramento distribuito. Inoltre, è disponibile un servizio scalabile basato sull'ottimizzazione bayesiana per l'ottimizzazione degli iperparametri.
- Vertex AI Prediction è un servizio gestito per eseguire previsioni batch utilizzando i modelli addestrati e previsioni online eseguendo il deployment dei modelli come microservizio con un'API REST. Il servizio si integra anche con Vertex Explainable AI e Vertex AI Model Monitoring per comprendere i modelli e ricevere avvisi in caso di deviazione e disallineamento delle caratteristiche o delle attribuzioni delle caratteristiche.
- Vertex AI Model Registry ti consente di gestire il ciclo di vita dei modelli ML. Puoi eseguire la versione dei modelli importati e visualizzarne le metriche sul rendimento. Un modello può quindi essere utilizzato per le previsioni batch o per il deployment per la pubblicazione online utilizzando Vertex AI Prediction.
Orchestrazione del sistema di ML utilizzando Vertex AI Pipelines
Questo documento illustra come progettare un sistema di ML basato su TFX e come eseguire ogni componente del sistema su larga scala su Google Cloud. Tuttavia, è necessario un orchestratore per collegare tra loro questi diversi componenti del sistema. L'orchestratore esegue la pipeline in sequenza e passa automaticamente da un passaggio all'altro in base alle condizioni definite. Ad esempio, una condizione definita potrebbe eseguire il passaggio di pubblicazione del modello dopo il passaggio di valutazione del modello se le metriche di valutazione soddisfano le soglie predefinite. I passaggi possono anche essere eseguiti in parallelo per risparmiare tempo, ad esempio per convalidare l'infrastruttura di deployment e valutare il modello. L'orchestrazione della pipeline di ML è utile sia nelle fasi di sviluppo sia in quelle di produzione:
- Durante la fase di sviluppo, l'orchestrazione aiuta i data scientist a eseguire l'esperimento di ML, anziché eseguire manualmente ogni passaggio.
- Durante la fase di produzione, l'orchestrazione consente di automatizzare l'esecuzione della pipeline ML in base a una pianificazione o a determinate condizioni di attivazione.
ML con Vertex AI Pipelines
Vertex AI Pipelines è un servizio gestito di Google Cloud che ti consente di orchestrare e automatizzare le pipeline di ML in cui ogni componente della pipeline può essere eseguito in container su Google Cloud o altre piattaforme cloud. I parametri e gli artefatti della pipeline generati vengono memorizzati automaticamente in Vertex ML Metadata che consente il monitoraggio della derivazione e dell'esecuzione. Il servizio Vertex AI Pipelines è costituito da:
- Un'interfaccia utente per la gestione e il monitoraggio di esperimenti, job ed esecuzioni.
- Un motore per la pianificazione di flussi di lavoro di ML in più fasi.
- Un SDK Python per definire e manipolare pipeline e componenti.
- Integrazione con Vertex ML Metadata per salvare informazioni su esecuzioni, modelli, set di dati e altri artefatti.
Di seguito è riportata una pipeline eseguita su Vertex AI Pipelines:
- Un insieme di attività ML o componenti containerizzati. Un componente della pipeline è un codice autonomo pacchettizzato come immagine Docker. Un componente esegue un passaggio della pipeline. Prende gli argomenti di input e produce artefatti.
- Una specifica della sequenza delle attività di ML, definita tramite un linguaggio specifico per il dominio (DSL) di Python. La topologia del flusso di lavoro è definita implicitamente collegando gli output di un passaggio a monte agli input di un passaggio a valle. Un passaggio nella definizione della pipeline richiama un componente della pipeline. In una pipeline complessa, i componenti possono essere eseguiti più volte in loop o in modo condizionale.
- Un insieme di parametri di input della pipeline, i cui valori vengono trasmessi ai componenti della pipeline, inclusi i criteri per filtrare i dati e dove archiviare gli elementi artefatti prodotti dalla pipeline.
Il seguente diagramma mostra un grafico di esempio di Vertex AI Pipelines.
Figura 4. Un grafico di esempio di Vertex AI Pipelines.
SDK Kubeflow Pipelines
L'SDK Kubeflow Pipelines ti consente di creare componenti, definirne l'orchestrazione ed eseguirli come pipeline. Per informazioni dettagliate sui componenti di Kubeflow Pipelines, consulta Creare componenti nella documentazione di Kubeflow.
Puoi anche utilizzare il DSL della pipeline TFX e i componenti TFX. Un componente TFX incapsula le funzionalità di metadati. Il driver fornisce i metadati all'executor eseguendo una query sull'archivio di metadati. L'editore accetta i risultati dell'eseguitore e li memorizza nei metadati. Puoi anche implementare il tuo componente personalizzato, che ha la stessa integrazione con i metadati. Puoi compilare le pipeline TFX in un file YAML compatibile con Vertex AI Pipelines utilizzando tfx.orchestration.experimental.KubeflowV2DagRunner. Dopodiché puoi inviare il file a Vertex AI Pipelines per l'esecuzione.
Il seguente diagramma mostra come in Vertex AI Pipelines un'attività con contenitore possa richiamare altri servizi come job BigQuery, job di addestramento Vertex AI (distribuiti) e job Dataflow.
Figura 5. Vertex AI Pipelines che richiamano i servizi gestiti di Google Cloud.
Vertex AI Pipelines ti consente di orchestrare e automatizzare una pipeline di ML di produzione eseguendo i servizi Google Cloud richiesti. Nella figura 5, Vertex ML Metadata funge da repository di metadati ML per Vertex AI Pipelines.
I componenti della pipeline non sono limitati all'esecuzione di servizi correlati a TFX su Google Cloud. Questi componenti possono eseguire qualsiasi servizio correlato ai dati e al calcolo, tra cui Dataproc per i job SparkML, AutoML e altri carichi di lavoro di calcolo.
La contenimento delle attività in Vertex AI Pipelines presenta i seguenti vantaggi:
- Scollega l'ambiente di esecuzione dal runtime del codice.
- Offre la riproducibilità del codice tra l'ambiente di sviluppo e quello di produzione, perché gli elementi che testi sono gli stessi in produzione.
- Isola ogni componente della pipeline; ognuno può avere la propria versione del runtime, lingue e librerie diverse.
- Aiuta a comporre pipeline complesse.
- Si integra con Vertex ML Metadata per la tracciabilità e la riproducibilità delle esecuzioni e degli artefatti della pipeline.
Per un'introduzione completa a Vertex AI Pipelines, consulta l'elenco degli esempi di notebook disponibili.
Attivazione e pianificazione di Vertex AI Pipelines
Quando esegui il deployment di una pipeline in produzione, devi automatizzare le relative esecuzioni, a seconda degli scenari descritti nella sezione Automazione di pipeline ML.
L'SDK Vertex AI ti consente di gestire la pipeline tramite codice. La classe google.cloud.aiplatform.PipelineJob include API per creare esperimenti ed eseguire il deployment e l'esecuzione di pipeline. Utilizzando l'SDK, puoi quindi richiamare Vertex AI Pipelines da un altro servizio per ottenere trigger basati su pianificatore o eventi.
Figura 6. Diagramma di flusso che mostra più attivatori per le pipeline Vertex AI che utilizzano le funzioni Pub/Sub e Cloud Run.
Nella figura 6 puoi vedere un esempio di come attivare il servizio Vertex AI Pipelines per eseguire una pipeline. La pipeline viene attivata utilizzando l'SDK Vertex AI da una funzione Cloud Run. La funzione Cloud Run stessa è un abbonato a Pub/Sub e viene attivata in base ai nuovi messaggi. Qualsiasi servizio che voglia attivare l'esecuzione della pipeline può pubblicare nell'argomento Pub/Sub corrispondente. L'esempio precedente ha tre servizi di pubblicazione:
- Cloud Scheduler pubblica i messaggi in base a una pianificazione e attiva quindi la pipeline.
- Cloud Composer pubblica i messaggi all'interno di un flusso di lavoro più grande, ad esempio un flusso di lavoro di importazione dei dati che attiva la pipeline di addestramento dopo che BigQuery ha importato nuovi dati.
- Cloud Logging pubblica un messaggio in base ai log che soddisfano alcuni criteri di filtro. Puoi configurare i filtri per rilevare l'arrivo di nuovi dati o persino gli avvisi di skew e deviazione generati dal servizio Vertex AI Model Monitoring.
Configurazione di CI/CD per l'apprendimento automatico su Google Cloud
Vertex AI Pipelines ti consente di orchestrare sistemi di ML che prevedono più passaggi, tra cui la pre-elaborazione dei dati, l'addestramento e la valutazione dei modelli e il deployment dei modelli. Nella fase di esplorazione della data science, Vertex AI Pipelines consente di eseguire rapidamente esperimenti su tutto il sistema. Nella fase di produzione, Vertex AI Pipelines consente di automatizzare l'esecuzione della pipeline in base a nuovi dati per addestrare o addestrare nuovamente il modello ML.
Architettura CI/CD
Il seguente diagramma mostra una panoramica di alto livello del CI/CD per il ML con Vertex AI Pipelines.
Figura 7: panoramica generale di CI/CD con Vertex AI Pipelines.
Al centro di questa architettura c'è Cloud Build. Cloud Build può importare il codice sorgente da Artifact Registry, GitHub o Bitbucket, quindi eseguire una build in base alle tue specifiche e produrre elementi come container Docker o file tar di Python.
Cloud Build esegue la build come una serie di passaggi di build,
definiti in un
file di configurazione della build
(cloudbuild.yaml
). Ogni passaggio di build viene eseguito in un container Docker. Puoi
utilizzare i passaggi di compilazione supportati
forniti da Cloud Build oppure
scrivere i tuoi passaggi di compilazione.
Il processo Cloud Build, che esegue il CI/CD richiesto per il sistema di ML, può essere eseguito manualmente o tramite trigger di build automatici. Gli trigger eseguono i passaggi di compilazione configurati ogni volta che vengono inviate modifiche al codice sorgente della build. Puoi impostare un trigger di compilazione per eseguire la routine di compilazione in caso di modifiche al repository di codice sorgente o solo quando le modifiche soddisfano determinati criteri.
Inoltre, puoi avere routine di compilazione (file di configurazione Cloud Build) che vengono eseguite in risposta a diversi trigger. Ad esempio, puoi avere routine di compilazione che vengono attivate quando vengono eseguiti commit nel ramo di sviluppo o nel ramo principale.
Puoi utilizzare le sostituzioni delle variabili di configurazione per definire le variabili di ambiente in fase di compilazione. Queste sostituzioni vengono acquisite dalle build attivate. Queste variabili includono $COMMIT_SHA
,
$REPO_NAME
, $BRANCH_NAME
, $TAG_NAME
e $REVISION_ID
. Altre
variabili non basate su attivatori sono $PROJECT_ID
e $BUILD_ID
. Le sostituzioni sono utili per le variabili il cui valore non è noto fino al momento della compilazione o per riutilizzare una richiesta di compilazione esistente con valori di variabili diversi.
Caso d'uso del flusso di lavoro CI/CD
Un repository di codice sorgente in genere include i seguenti elementi:
- Il codice sorgente del flusso di lavoro delle pipeline Python in cui è definito il flusso di lavoro della pipeline
- Il codice sorgente dei componenti della pipeline Python e i file di specifiche dei componenti corrispondenti per i diversi componenti della pipeline, come la convalida dei dati, la trasformazione dei dati, l'addestramento del modello, la valutazione del modello e la gestione del modello.
- Dockerfile necessari per creare immagini container Docker, uno per ogni componente della pipeline.
- Test di unità e di integrazione di Python per testare i metodi implementati nel componente e nella pipeline complessiva.
- Altri script, tra cui il file
cloudbuild.yaml
, gli attivatori dei test e i deployment delle pipeline. - File di configurazione (ad esempio il file
settings.yaml
), incluse le configurazioni per i parametri di input della pipeline. - Notebooks utilizzati per l'analisi esplorativa dei dati, l'analisi dei modelli e la sperimentazione interattiva sui modelli.
Nell'esempio seguente, una routine di compilazione viene attivata quando uno sviluppatore spinge il codice sorgente nel ramo di sviluppo dal proprio ambiente di data science.
Figura 8. Esempi di passaggi di compilazione eseguiti da Cloud Build.
In genere, Cloud Build esegue i seguenti passaggi di compilazione, che sono mostrati anche nella figura 7:
- Il repository del codice sorgente viene copiato nell'ambiente di runtime Cloud Build, nella directory
/workspace
. - Esegui test di unità e integrazione.
- (Facoltativo) Esegui l'analisi statica del codice utilizzando un analizzatore come Pylint.
- Se i test vengono superati, vengono create le immagini dei container Docker, una per ogni componente della pipeline. Le immagini sono taggate con il parametro
$COMMIT_SHA
. - Le immagini dei container Docker vengono caricate in Artifact Registry (come mostrato nella Figura 7).
- L'URL immagine viene aggiornato in ciascuno dei file
component.yaml
con le immagini container Docker create e taggate. - Il flusso di lavoro della pipeline viene compilato per produrre il
pipeline.json
file. - Il file
pipeline.json
viene caricato in Artifact Registry. - (Facoltativo) Esegui la pipeline con i valori dei parametri nell'ambito di un test di integrazione o di un'esecuzione in produzione. La pipeline eseguita genera un nuovo modello e potrebbe anche eseguirne il deployment come API su Vertex AI Prediction.
Per un esempio di MLOps end-to-end pronto per la produzione che include CI/CD utilizzando Cloud Build, consulta Esempi di pipeline Vertex end-to-end su GitHub.
Ulteriori considerazioni
Quando configuri l'architettura CI/CD per l'apprendimento automatico su Google Cloud, considera quanto segue:
- Per l'ambiente di data science, puoi utilizzare un computer locale o un Vertex AI Workbench.
- Puoi configurare la pipeline Cloud Build automatica in modo da ignorare gli attivatori, ad esempio se vengono modificati solo i file di documentazione o i notebook di sperimentazione.
- Puoi eseguire la pipeline per i test di integrazione e di regressione come test di compilazione. Prima di eseguire il deployment della pipeline nell'ambiente di destinazione, puoi utilizzare il metodo
wait()
per attendere il completamento dell'esecuzione della pipeline inviata. - In alternativa all'utilizzo di Cloud Build, puoi utilizzare altri sistemi di compilazione come Jenkins. Un deployment di Jenkins pronto all'uso è disponibile su Google Cloud Marketplace.
- Puoi configurare la pipeline in modo che venga eseguita automaticamente in diversi ambienti, tra cui sviluppo, test e gestione temporanea, in base a diversi trigger. Inoltre, puoi eseguire il deployment manualmente in ambienti specifici, ad esempio pre-produzione o produzione, in genere dopo aver ottenuto l'approvazione della release. Puoi avere più routine di compilazione per diversi attivatori o per diversi ambienti di destinazione.
- Puoi utilizzare Apache Airflow, un popolare framework di pianificazione e orchestrazione, per flussi di lavoro di uso generale, che puoi eseguire utilizzando il servizio completamente gestito Cloud Composer. Per saperne di più su come orchestrare le pipeline di dati con Cloud Composer e Cloud Build, consulta Configurare una pipeline CI/CD per il flusso di lavoro di elaborazione dei dati.
- Quando esegui il deployment di una nuova versione del modello in produzione, eseguilo come release canary per farti un'idea del suo rendimento (CPU, memoria e utilizzo del disco). Prima di configurare il nuovo modello per pubblicare tutto il traffico in tempo reale, puoi anche eseguire test A/B. Configura il nuovo modello in modo che pubblichi dal 10% al 20% del traffico in tempo reale. Se il nuovo modello ha un rendimento migliore rispetto a quello attuale, puoi configurarlo in modo che gestisca tutto il traffico. In caso contrario, il sistema di pubblicazione esegue il rollback al modello corrente.
Passaggi successivi
- Scopri di più sulla distribuzione continua in stile GitOps con Cloud Build.
- Scopri di più su come configurare una pipeline CI/CD per il flusso di lavoro di elaborazione dei dati.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Cloud Architecture Center.
Collaboratori
Autori:
- Ross Thomson | Cloud Solutions Architect
- Khalid Salama | Staff Software Engineer, Machine Learning
Altro collaboratore: Wyatt Gorman | HPC Solutions Manager