Architettura per MLOps con TensorFlow Extended, Vertex AI Pipelines e Cloud Build

Last reviewed 2024-06-28 UTC

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), distribuzione continua (CD) e addestramento continuo (CT) per il sistema ML utilizzando Cloud Build e Vertex AI Pipelines,

In questo documento, i termini sistema ML e pipeline ML fanno riferimento al modello ML. pipeline di addestramento, anziché pipeline di punteggio o previsione del modello.

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 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 tuoi 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, il processo manuale di addestramento, convalida e deployment modelli possono essere sufficienti. Questo approccio manuale funziona se il tuo team gestisce solo alcuni modelli ML che non vengono riaddestrati o che non vengono modificati di frequente. In pratica, Tuttavia, spesso i modelli si guastano quando vengono implementati nel mondo reale perché non si adattano ai cambiamenti nelle dinamiche degli ambienti o ai dati che descrive tali 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 tua pipeline on demand, in base a una pianificazione, in base alla disponibilità nuovi dati, sul peggioramento delle prestazioni del modello, su modifiche significative le proprietà statistiche dei dati o in base ad altre condizioni.

Pipeline CI/CD a confronto con pipeline CT

La disponibilità di nuovi dati è un trigger per riaddestrare il modello 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 una con un'API REST per la distribuzione online. La differenza tra i due sono i seguenti:

  • Per addestrare un nuovo modello ML con nuovi dati, la pipeline CT di cui è stato eseguito il deployment in precedenza viene eseguito. Non viene eseguito il deployment di nuove pipeline o nuovi componenti. solo un nuovo servizio di previsione o modello appena addestrato viene fornito alla fine della pipeline.
  • 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 ML CT.

L'output della pipeline CI/CD è la pipeline CT.

Figura 1. Pipeline CI/CD e CT di ML.

L'output per queste pipeline è il seguente:

  • Se viene fornita una nuova implementazione, una pipeline CI/CD di successo esegue il deployment di una nuova pipeline di CT ML.
  • Se vengono forniti nuovi dati, una pipeline CT di successo addestra un nuovo modello e ne esegue il deployment 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 delle chiavi di TFX sono le seguenti:

Panoramica del sistema ML di TFX

Il seguente diagramma mostra come le varie librerie TFX vengono integrate per comporre un sistema ML.

Passaggi di un sistema ML basato su TFX.

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:

  1. 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 usati per addestrare e valutare il modello.
  2. Convalida dei dati: TFDV convalida i dati rispetto ai dati previsti (non elaborati) . 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 ai disallineamenti dello schema. Gli output di questo passaggio le anomalie (se presenti) e la decisione di eseguire il downstream passi o meno.
  3. 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.
  4. 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 che viene utilizzato per la valutazione un altro modello salvato che viene usato per la distribuzione online del modello a scopo di previsione.
  5. 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 di dati che non funziona. Questa valutazione aiuta garantire che il modello venga promosso per la pubblicazione solo se soddisfa le criteri di qualità. I criteri possono includere equità di prestazioni su vari dati sottoinsiemi (ad es. dati demografici e località) e miglioramento del rendimento rispetto ai modelli precedenti o a un modello di benchmark. L'output di questo passaggio è un insieme di metriche delle prestazioni e la decisione di promuovere il modello alla produzione.
  6. Distribuzione del modello per la previsione: una volta convalidato il modello appena addestrato, il deployment viene eseguito come microservizio per fornire le previsioni online utilizzando TensorFlow Pubblicazione. L'output di questo passaggio è un servizio di previsione di cui è stato eseguito il deployment del modello ML addestrato. Puoi sostituire questo passaggio archiviando il modello addestrato in in un registro 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 del flusso di lavoro ML viene eseguita utilizzando un servizio gestito su Google Cloud, che garantisce l'agilità, affidabilità e prestazioni su larga scala.

Passaggi di un sistema di ML basato su TFX su Google Cloud.

Figura 3. Sistema ML basato su TFX su Google Cloud.

La tabella seguente descrive la chiave 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 Analisi del modello TensorFlow Dataflow
Distribuzione del modello per le previsioni Distribuzione di TensorFlow Vertex AI Prediction
Archiviazione modello 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 le seguenti procedure:
    • 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 prodotti durante l'esecuzione della 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 il modello di job di addestramento container predefiniti per TensorFlow, Scikit-learn, XGBoost e PyTorch. Puoi anche eseguire qualsiasi il tuo framework utilizzando il tuo 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.
  • Previsione Vertex AI è un servizio gestito per eseguire Previsioni batch utilizzando i modelli addestrati previsioni online eseguendo il deployment dei tuoi modelli come microservizi 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 consente di gestire il ciclo di vita dei modelli ML. Puoi controllare la versione importati e visualizzarne le metriche sulle prestazioni. Un modello può quindi essere utilizzato per previsioni batch o esegui il deployment del modello per la distribuzione online utilizzando Vertex AI Prediction

Orchestrare il sistema ML utilizzando Vertex AI Pipelines

Questo documento spiega come progettare un sistema 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. Lo strumento di orchestrazione esegue la pipeline in sequenza e si sposta da un passaggio all'altro in base alle condizioni definite. Ad esempio, un la condizione definita potrebbe eseguire il passaggio di pubblicazione del modello dopo passaggio di valutazione se le metriche di valutazione soddisfano soglie predefinite. I passaggi possono anche in parallelo per risparmiare tempo, ad esempio convalidare il deployment dell'infrastruttura 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 Pipeline ML in cui ogni componente della pipeline può essere eseguito 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.
  • R 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à o componenti ML containerizzati. Un componente della pipeline è un codice autonomo pacchettizzato come Immagine Docker. Un componente esegue un passaggio nella pipeline. Prende gli argomenti di input e produce artefatti.
  • Una specifica della sequenza di attività ML, definita mediante un lingua specifica del dominio (DSL). 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 oppure in modo condizionale.
  • Un insieme di parametri di input della pipeline, i cui valori vengono passati al componenti della pipeline, tra cui i criteri per filtrare i dati e dove archiviare gli artefatti prodotti dalla pipeline.

Il seguente diagramma mostra un grafico di esempio di Vertex AI Pipelines.

Grafico di una pipeline ML che utilizza Vertex AI Pipelines.

Figura 4. Un grafico di esempio di Vertex AI Pipelines.

SDK Kubeflow Pipelines

La SDK Kubeflow Pipelines consente di creare componenti, definirne l'orchestrazione ed eseguirli come pipeline. Per maggiori dettagli 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 conducente fornisce i metadati all'esecutore eseguendo una query sull'archivio metadati. Il publisher accetta i risultati dell'esecutore e li archivia nei metadati. Puoi anche implementare 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. Quindi, puoi inviare il file a Vertex AI Pipelines per l'esecuzione.

Il seguente diagramma mostra come in Vertex AI Pipelines, un container un'attività può richiamare altri servizi, come job BigQuery, Job di addestramento Vertex AI (distribuito) e Dataflow di lavoro.

Architettura di Vertex AI Pipelines su Google Cloud.

Figura 5. Richiamo di Vertex AI Pipelines servizi gestiti di Google Cloud.

Vertex AI Pipelines ti consente di orchestrare e automatizzare una produzione mediante l'esecuzione dei 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 si limitano all'esecuzione di servizi correlati a TFX su in 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.
  • Fornisce riproducibilità del codice nell'ambiente di sviluppo e 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 con la composizione di pipeline complesse.
  • Si integra con Vertex ML Metadata per la tracciabilità e la riproducibilità di esecuzioni e artefatti della pipeline.

Per un'introduzione completa a Vertex AI Pipelines, consulta l'elenco delle esempi di blocchi note.

Attivazione e pianificazione di Vertex AI Pipelines

Quando esegui il deployment di una pipeline in produzione, devi automatizzarne le esecuzioni, a seconda degli scenari descritti Automazione delle pipeline di 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 con un altro servizio per ottenere trigger basati su eventi o scheduler.

Trigger di Vertex AI Pipelines.

Figura 6. Diagramma di flusso che mostra più trigger per Vertex AI Pipelines utilizzando le funzioni Pub/Sub e Cloud Run.

Nella figura 6 è riportato un esempio su come attivare la funzione 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 quindi attiva la pipeline.
  • Cloud Composer la pubblicazione di messaggi nell'ambito di un flusso di lavoro più ampio, come flusso di lavoro di importazione che attiva la pipeline di addestramento dopo BigQuery importa 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 generale di CI/CD per il machine learning con Vertex AI Pipelines.

Architettura di CI/CD per la pipeline di ML che utilizza Vertex AI Pipelines.

Figura 7: panoramica generale di CI/CD con Vertex AI Pipelines.

Il nucleo di questa architettura è Cloud Build. Cloud Build può importare l'origine da Artifact Registry GitHub o Bitbucket, ed eseguire una build secondo le tue specifiche e produrre artefatti come container Docker o file tar 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 o utilizza i passaggi di build supportati forniti da Cloud Build scrivi i tuoi passaggi di build.

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. I trigger eseguono i passaggi di build configurati ogni volta che viene eseguito il push delle modifiche all'origine 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 sono acquisite dalle build attivate. Queste variabili includono $COMMIT_SHA, $REPO_NAME, $BRANCH_NAME, $TAG_NAME e $REVISION_ID. Altro le 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.
  • i Dockerfile necessari per creare immagini container Docker, una per ogni componente della pipeline.
  • Test di unità e di integrazione di Python per verificare i metodi implementati nel componente e nella pipeline complessiva.
  • Altri script, tra cui il file cloudbuild.yaml, trigger di test e deployment della 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 del modello e 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.

Esempi di passaggi di compilazione.

Figura 8. Esempi di passi di build eseguiti da Cloud Build.

In genere, Cloud Build esegue i seguenti passaggi di compilazione, che sono mostrati anche nella figura 7:

  1. Il repository di codice sorgente viene copiato in Cloud Build dell'ambiente di runtime, nella directory /workspace.
  2. Esegui test delle unità e di integrazione.
  3. (Facoltativo) Esegui l'analisi statica del codice utilizzando un analizzatore come Pylint.
  4. Se i test vengono superati, vengono create le immagini container Docker, una per del componente della pipeline. Le immagini sono taggate con il parametro $COMMIT_SHA.
  5. Le immagini dei container Docker vengono caricate in Artifact Registry (come mostrato nella Figura 7).
  6. L'URL dell'immagine viene aggiornato in ciascuno dei file component.yaml con il immagini container Docker create e taggate.
  7. Il flusso di lavoro della pipeline viene compilato pipeline.json.
  8. Il file pipeline.json è stato caricato in Artifact Registry.
  9. (Facoltativo) Esegui la pipeline con i valori parametro come parte di una il test di integrazione o l'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 end-to-end di pipeline Vertex su GitHub.

Ulteriori considerazioni

Quando configuri l'architettura CI/CD ML su Google Cloud, tieni in considerazione quanto segue:

  • Per l'ambiente di data science, puoi utilizzare una macchina locale oppure Vertex AI Workbench
  • Puoi configurare la pipeline automatizzata di Cloud Build ignora trigger, ad esempio, se vengono modificati solo i file di documentazione o se i blocchi note degli esperimenti vengono modificati.
  • 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.
  • Come alternativa a Cloud Build, puoi usare altre build sistemi come Jenkins. È disponibile un deployment di Jenkins pronto all'uso Google Cloud Marketplace.
  • Puoi configurare la pipeline per il deployment automatico diversi ambienti, tra cui sviluppo, test e gestione temporanea, in base diversi trigger. Inoltre, puoi eseguire il deployment manualmente, come la pre-produzione o la produzione, in genere dopo per ottenere l'approvazione di una release. Puoi avere più routine di creazione diversi trigger o per diversi ambienti di destinazione.
  • Puoi utilizzare la modalità Apache Airflow, un popolare framework di orchestrazione e pianificazione, per uso generico per flussi di lavoro, che puoi eseguire utilizzando Cloud Composer completamente gestito di Google Cloud. Per ulteriori informazioni su come orchestrare le pipeline di dati con Cloud Composer e Cloud Build, per Impostazione di una pipeline CI/CD per il flusso di lavoro di elaborazione 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 gestire tutto il traffico in tempo reale, puoi anche eseguire test A/B. Configura il nuovo modello per la pubblicazione del 10% su il 20% del traffico in tempo reale. Se il nuovo modello ha prestazioni migliori di quello attuale, puoi configurare il nuovo modello per gestire tutto il traffico. In caso contrario, il sistema di pubblicazione esegue il rollback al modello corrente.

Passaggi successivi

Collaboratori

Autori:

Altro collaboratore: Wyatt Gorman | Responsabile soluzioni HPC