TFX sulle pipeline della piattaforma Cloud AI

introduzione

Questo tutorial è progettato per introdurre TensorFlow Extended (TFX) e AIPlatform Pipelines e aiutarti a imparare a creare le tue pipeline di machine learning su Google Cloud. Mostra l'integrazione con TFX, AI Platform Pipelines e Kubeflow, nonché l'interazione con TFX nei notebook Jupyter.

Alla fine di questo tutorial, avrai creato ed eseguito una pipeline ML, ospitata su Google Cloud. Sarai in grado di visualizzare i risultati di ogni corsa e visualizzare il lignaggio degli artefatti creati.

Seguirai un tipico processo di sviluppo di ML, iniziando dall'esaminare il set di dati e finendo con una pipeline funzionante completa. Lungo la strada esplorerai modi per eseguire il debug e aggiornare la tua pipeline e misurare le prestazioni.

Set di dati sui taxi di Chicago

TaxiTaxi di Chicago

Stai utilizzando il set di dati Taxi Trips rilasciato dalla città di Chicago.

Puoi leggere ulteriori informazioni sul set di dati in Google BigQuery . Esplora il set di dati completo nell'interfaccia utente di BigQuery .

Obiettivo del modello - Classificazione binaria

Il cliente darà una mancia superiore o inferiore al 20%?

1. Configura un progetto Google Cloud

1.a Configura il tuo ambiente su Google Cloud

Per iniziare, è necessario un account Google Cloud. Se ne hai già uno, passa a Crea nuovo progetto .

  1. Vai a Google Cloud Console .

  2. Accetta i termini e le condizioni di Google Cloud

  3. Se desideri iniziare con un account di prova gratuito, fai clic su Prova gratuitamente (o Inizia gratuitamente ).

    1. Seleziona il tuo paese.

    2. Accetta i termini del servizio.

    3. Inserisci i dettagli di fatturazione.

      Non ti verrà addebitato a questo punto. Se non hai altri progetti Google Cloud, puoi completare questo tutorial senza superare i limiti del piano gratuito di Google Cloud , che include un massimo di 8 core in esecuzione contemporaneamente.

1.b Creare un nuovo progetto.

  1. Dalla dashboard principale di Google Cloud , fai clic sul menu a discesa del progetto accanto all'intestazione di Google Cloud Platform e seleziona Nuovo progetto .
  2. Assegna un nome al tuo progetto e inserisci altri dettagli del progetto
  3. Dopo aver creato un progetto, assicurati di selezionarlo dal menu a discesa del progetto.

2. Configura e distribuisci una AI Platform Pipeline su un nuovo cluster Kubernetes

  1. Vai alla pagina AI Platform Pipelines Clusters .

    Nel menu di navigazione principale: ≡ > Piattaforma AI > Condutture

  2. Fare clic su + Nuova istanza per creare un nuovo cluster.

  3. Nella pagina di panoramica delle pipeline Kubeflow , fai clic su Configura .

  4. Fai clic su "Abilita" per abilitare l'API Kubernetes Engine

  5. Nella pagina Distribuisci pipeline Kubeflow :

    1. Seleziona una zona (o "regione") per il tuo cluster. La rete e la sottorete possono essere impostate, ma ai fini di questo tutorial le lasceremo come impostazioni predefinite.

    2. IMPORTANTE Selezionare la casella Consenti l'accesso alle seguenti API cloud . (Questo è necessario affinché questo cluster acceda alle altre parti del tuo progetto. Se salti questo passaggio, risolverlo in un secondo momento è un po' complicato.)

    3. Fare clic su Crea nuovo cluster e attendere alcuni minuti fino alla creazione del cluster. Ci vorranno alcuni minuti. Al termine vedrai un messaggio del tipo:

      Cluster "cluster-1" creato con successo nella zona "us-central1-a".

    4. Seleziona uno spazio dei nomi e un nome di istanza (va bene usare i valori predefiniti). Ai fini di questo tutorial non selezionare executor.emissary o managedstorage.enabled .

    5. Fare clic su Distribuisci e attendere alcuni istanti finché la pipeline non è stata distribuita. Distribuendo Kubeflow Pipelines, accetti i Termini di servizio.

3. Configura l'istanza Cloud AI Platform Notebook.

  1. Vai alla pagina di Vertex AI Workbench . La prima volta che esegui Workbench dovrai abilitare l'API Notebooks.

    Nel menu di navigazione principale: ≡ -> Vertex AI -> Workbench

  2. Se richiesto, abilita l'API di Compute Engine.

  3. Crea un nuovo notebook con TensorFlow Enterprise 2.7 (o superiore) installato.

    Nuovo notebook -> TensorFlow Enterprise 2.7 -> Senza GPU

    Seleziona una regione e una zona e assegna un nome all'istanza del notebook.

    Per rimanere entro i limiti del piano gratuito, potrebbe essere necessario modificare le impostazioni predefinite qui per ridurre il numero di vCPU disponibili per questa istanza da 4 a 2:

    1. Seleziona Opzioni avanzate nella parte inferiore del modulo Nuovo taccuino .
    2. In Configurazione macchina potresti voler selezionare una configurazione con 1 o 2 vCPU se devi rimanere nel piano gratuito.

    3. Attendi la creazione del nuovo notebook, quindi fai clic su Abilita API notebook

4. Avviare il blocco appunti per iniziare

  1. Vai alla pagina AI Platform Pipelines Clusters .

    Nel menu di navigazione principale: ≡ -> Piattaforma AI -> Condutture

  2. Nella riga relativa al cluster che stai utilizzando in questo tutorial, fai clic su Open Pipelines Dashboard .

  3. Nella pagina Guida introduttiva , fai clic su Apri un notebook Cloud AI Platform su Google Cloud .

  4. Seleziona l'istanza Notebook che stai utilizzando per questo tutorial e Continua , quindi Conferma .

    select-taccuino

5. Continua a lavorare nel Notebook

Installare

Il notebook per iniziare inizia installando TFX e Kubeflow Pipelines (KFP) nella macchina virtuale in cui è in esecuzione Jupyter Lab.

Quindi controlla quale versione di TFX è installata, esegue un'importazione e imposta e stampa l'ID progetto:

controlla la versione python e importa

Connettiti con i tuoi servizi Google Cloud

La configurazione della pipeline richiede il tuo ID progetto, che puoi ottenere tramite il notebook e impostare come variabile ambientale.

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

Ora imposta l'endpoint del cluster KFP.

Questo può essere trovato dall'URL del dashboard Pipelines. Vai alla dashboard di Kubeflow Pipeline e guarda l'URL. L'endpoint è tutto ciò che nell'URL inizia con https:// , fino a googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

Il notebook imposta quindi un nome univoco per l'immagine Docker personalizzata:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. Copia un modello nella directory del tuo progetto

Modifica la successiva cella del taccuino per impostare un nome per la pipeline. In questo tutorial useremo my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

Il notebook utilizza quindi l'interfaccia a riga di tfx per copiare il modello di pipeline. Questo tutorial utilizza il set di dati Chicago Taxi per eseguire la classificazione binaria, quindi il modello imposta il modello su taxi :

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

Il notebook cambia quindi il suo contesto CWD nella directory del progetto:

%cd {PROJECT_DIR}

Sfoglia i file della pipeline

Sul lato sinistro di Cloud AI Platform Notebook, dovresti vedere un browser di file. Dovrebbe esserci una directory con il nome della tua pipeline ( my_pipeline ). Aprilo e visualizza i file. (Sarai in grado di aprirli e modificarli anche dall'ambiente del notebook.)

# You can also list the files from the shell
 ls

Il comando tfx template copy sopra ha creato uno scaffold di file di base che costruisce una pipeline. Questi includono codici sorgente Python, dati di esempio e notebook Jupyter. Questi sono pensati per questo particolare esempio. Per le tue pipeline questi sarebbero i file di supporto richiesti dalla tua pipeline.

Ecco una breve descrizione dei file Python.

  • pipeline : questa directory contiene la definizione della pipeline
    • configs.py — definisce le costanti comuni per i corridori della pipeline
    • pipeline.py — definisce i componenti TFX e una pipeline
  • models : questa directory contiene le definizioni del modello ML.
    • features.py features_test.py — definisce le caratteristiche per il modello
    • preprocessing.py / preprocessing_test.py — definisce i lavori di preelaborazione usando tf::Transform
    • estimator - Questa directory contiene un modello basato su Estimator.
      • constants.py — definisce le costanti del modello
      • model.py / model_test.py : definisce il modello DNN utilizzando lo stimatore TF
    • keras - Questa directory contiene un modello basato su Keras.
      • constants.py — definisce le costanti del modello
      • model.py / model_test.py — definisce il modello DNN usando Keras
  • beam_runner.py / kubeflow_runner.py — definisce i corridori per ogni motore di orchestrazione

7. Esegui la tua prima pipeline TFX su Kubeflow

Il notebook eseguirà la pipeline utilizzando il comando tfx run CLI.

Connetti allo spazio di archiviazione

Le pipeline in esecuzione creano artefatti che devono essere archiviati in ML-Metadata . Gli artefatti si riferiscono ai payload, che sono file che devono essere archiviati in un file system o in un block storage. Per questo tutorial, utilizzeremo GCS per archiviare i nostri payload di metadati, utilizzando il bucket che è stato creato automaticamente durante la configurazione. Il suo nome sarà <your-project-id>-kubeflowpipelines-default .

Crea la pipeline

Il notebook caricherà i nostri dati di esempio nel bucket GCS in modo da poterli utilizzare nella nostra pipeline in un secondo momento.

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv

Il notebook utilizza quindi il comando tfx pipeline create per creare la pipeline.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

Durante la creazione di una pipeline, Dockerfile verrà generato per creare un'immagine Docker. Non dimenticare di aggiungere questi file al tuo sistema di controllo del codice sorgente (ad esempio, git) insieme ad altri file sorgente.

Esegui la pipeline

Il notebook utilizza quindi il comando tfx run create per avviare un'esecuzione della pipeline. Vedrai anche questa corsa elencata in Esperimenti nel dashboard di Kubeflow Pipelines.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

Puoi visualizzare la tua pipeline dal dashboard di Kubeflow Pipelines.

8. Convalida i tuoi dati

Il primo compito in qualsiasi data science o progetto ML è comprendere e pulire i dati.

  • Comprendere i tipi di dati per ciascuna funzione
  • Cerca anomalie e valori mancanti
  • Comprendere le distribuzioni per ciascuna funzione

Componenti

Componenti di datiComponenti di dati

Nell'editor di file di laboratorio Jupyter:

In pipeline / pipeline.py , decommenta le righe che aggiungono questi componenti alla pipeline:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( ExampleGen era già abilitato quando i file modello sono stati copiati.)

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Controlla la conduttura

Per Kubeflow Orchestrator, visita il dashboard di KFP e trova gli output della pipeline nella pagina per l'esecuzione della pipeline. Fai clic sulla scheda "Esperimenti" a sinistra e su "Tutte le esecuzioni" nella pagina Esperimenti. Dovresti essere in grado di trovare la corsa con il nome della pipeline.

Esempio più avanzato

L'esempio presentato qui è in realtà solo pensato per iniziare. Per un esempio più avanzato, vedere TensorFlow Data Validation Colab .

Per ulteriori informazioni sull'utilizzo di TFDV per esplorare e convalidare un set di dati, vedere gli esempi su tensorflow.org .

9. Ingegneria delle funzionalità

Puoi aumentare la qualità predittiva dei tuoi dati e/o ridurre la dimensionalità con l'ingegneria delle funzionalità.

  • Caratteristica croci
  • Vocabolari
  • Incorporamenti
  • PCA
  • Codifica categoriale

Uno dei vantaggi dell'utilizzo di TFX è che scriverai il codice di trasformazione una volta e le trasformazioni risultanti saranno coerenti tra l'addestramento e l'elaborazione.

Componenti

Trasformare

  • Trasforma esegue l'ingegneria delle funzionalità sul set di dati.

Nell'editor di file di laboratorio Jupyter:

In pipeline / pipeline.py , trova e decommenta la riga che aggiunge Transform alla pipeline.

# components.append(transform)

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Controllare gli output della pipeline

Per Kubeflow Orchestrator, visita il dashboard di KFP e trova gli output della pipeline nella pagina per l'esecuzione della pipeline. Fai clic sulla scheda "Esperimenti" a sinistra e su "Tutte le esecuzioni" nella pagina Esperimenti. Dovresti essere in grado di trovare la corsa con il nome della pipeline.

Esempio più avanzato

L'esempio presentato qui è in realtà solo pensato per iniziare. Per un esempio più avanzato, vedere TensorFlow Transform Colab .

10. Formazione

Addestra un modello TensorFlow con i tuoi dati belli, puliti e trasformati.

  • Includere le trasformazioni del passaggio precedente in modo che vengano applicate in modo coerente
  • Salva i risultati come SavedModel per la produzione
  • Visualizza ed esplora il processo di formazione utilizzando TensorBoard
  • Salva anche un EvalSavedModel per l'analisi delle prestazioni del modello

Componenti

  • Il trainer allena un modello TensorFlow.

Nell'editor di file di laboratorio Jupyter:

In pipeline / pipeline.py , trova e decommenta il che aggiunge Trainer alla pipeline:

# components.append(trainer)

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Controllare gli output della pipeline

Per Kubeflow Orchestrator, visita il dashboard di KFP e trova gli output della pipeline nella pagina per l'esecuzione della pipeline. Fai clic sulla scheda "Esperimenti" a sinistra e su "Tutte le esecuzioni" nella pagina Esperimenti. Dovresti essere in grado di trovare la corsa con il nome della pipeline.

Esempio più avanzato

L'esempio presentato qui è in realtà solo pensato per iniziare. Per un esempio più avanzato, vedere il tutorial di TensorBoard .

11. Analisi delle prestazioni del modello

Comprendere più delle metriche di primo livello.

  • Gli utenti sperimentano le prestazioni del modello solo per le loro query
  • Le scarse prestazioni su porzioni di dati possono essere nascoste da metriche di livello superiore
  • L'equità del modello è importante
  • Spesso i sottoinsiemi chiave di utenti o dati sono molto importanti e possono essere piccoli
    • Prestazioni in condizioni critiche ma insolite
    • Performance per segmenti di pubblico chiave come gli influencer
  • Se stai sostituendo un modello attualmente in produzione, assicurati innanzitutto che quello nuovo sia migliore

Componenti

  • Il valutatore esegue un'analisi approfondita dei risultati della formazione.

Nell'editor di file di laboratorio Jupyter:

In pipeline / pipeline.py , trova e decommenta la riga che aggiunge Evaluator alla pipeline:

components.append(evaluator)

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Controllare gli output della pipeline

Per Kubeflow Orchestrator, visita il dashboard di KFP e trova gli output della pipeline nella pagina per l'esecuzione della pipeline. Fai clic sulla scheda "Esperimenti" a sinistra e su "Tutte le esecuzioni" nella pagina Esperimenti. Dovresti essere in grado di trovare la corsa con il nome della pipeline.

12. Al servizio del modello

Se il nuovo modello è pronto, fallo così.

  • Pusher distribuisce i modelli salvati in posizioni note

Gli obiettivi di distribuzione ricevono nuovi modelli da località note

  • Servizio TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • Hub TensorFlow

Componenti

  • Pusher distribuisce il modello a un'infrastruttura di servizio.

Nell'editor di file di laboratorio Jupyter:

In pipeline / pipeline.py , trova e decommenta la riga che aggiunge Pusher alla pipeline:

# components.append(pusher)

Controllare gli output della pipeline

Per Kubeflow Orchestrator, visita il dashboard di KFP e trova gli output della pipeline nella pagina per l'esecuzione della pipeline. Fai clic sulla scheda "Esperimenti" a sinistra e su "Tutte le esecuzioni" nella pagina Esperimenti. Dovresti essere in grado di trovare la corsa con il nome della pipeline.

Destinazioni di distribuzione disponibili

Ora hai addestrato e convalidato il tuo modello e il tuo modello è ora pronto per la produzione. Ora puoi distribuire il tuo modello a qualsiasi destinazione di distribuzione di TensorFlow, tra cui:

  • TensorFlow Serving , per servire il tuo modello su un server o una server farm ed elaborare richieste di inferenza REST e/o gRPC.
  • TensorFlow Lite , per includere il tuo modello in un'applicazione mobile nativa Android o iOS o in un'applicazione Raspberry Pi, IoT o microcontrollore.
  • TensorFlow.js , per eseguire il modello in un browser Web o in un'applicazione Node.JS.

Esempi più avanzati

L'esempio presentato sopra è in realtà pensato solo per iniziare. Di seguito alcuni esempi di integrazione con altri servizi Cloud.

Considerazioni sulle risorse di Kubeflow Pipelines

A seconda dei requisiti del tuo carico di lavoro, la configurazione predefinita per la tua distribuzione di Kubeflow Pipelines può soddisfare o meno le tue esigenze. Puoi personalizzare le configurazioni delle tue risorse usando pipeline_operator_funcs nella tua chiamata a KubeflowDagRunnerConfig .

pipeline_operator_funcs è un elenco di elementi OpFunc , che trasforma tutte le istanze ContainerOp generate nella specifica della pipeline KFP compilata da KubeflowDagRunner .

Ad esempio, per configurare la memoria possiamo usare set_memory_request per dichiarare la quantità di memoria necessaria. Un modo tipico per farlo è creare un wrapper per set_memory_request e usarlo per aggiungerlo all'elenco delle pipeline OpFunc s:

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

Funzioni di configurazione delle risorse simili includono:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

Prova BigQueryExampleGen

BigQuery è un data warehouse su cloud serverless, altamente scalabile e conveniente. BigQuery può essere utilizzato come fonte per esempi di formazione in TFX. In questo passaggio, aggiungeremo BigQueryExampleGen alla pipeline.

Nell'editor di file di laboratorio Jupyter:

Fare doppio clic per aprire pipeline.py . Commenta CsvExampleGen e decommenta la riga che crea un'istanza di BigQueryExampleGen . È inoltre necessario rimuovere il commento dall'argomento della query della funzione create_pipeline .

È necessario specificare quale progetto GCP utilizzare per BigQuery e ciò avviene impostando --project in beam_pipeline_args durante la creazione di una pipeline.

Fare doppio clic per aprire configs.py . Decommentare la definizione di BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS e BIG_QUERY_QUERY . Dovresti sostituire l'ID progetto e il valore della regione in questo file con i valori corretti per il tuo progetto GCP.

Cambia directory di un livello superiore. Fare clic sul nome della directory sopra l'elenco dei file. Il nome della directory è il nome della pipeline che è my_pipeline se non è stato modificato il nome della pipeline.

Fare doppio clic per aprire kubeflow_runner.py . Decommenta due argomenti, query e beam_pipeline_args , per la funzione create_pipeline .

Ora la pipeline è pronta per utilizzare BigQuery come origine di esempio. Aggiorna la pipeline come prima e crea una nuova esecuzione come abbiamo fatto nei passaggi 5 e 6.

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Prova Flusso di dati

Diversi componenti TFX utilizzano Apache Beam per implementare pipeline di dati paralleli e ciò significa che puoi distribuire carichi di lavoro di elaborazione dati utilizzando Google Cloud Dataflow . In questo passaggio, imposteremo l'orchestratore Kubeflow in modo che utilizzi Dataflow come back-end di elaborazione dati per Apache Beam.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

Fare doppio clic sulla pipeline per cambiare directory e fare doppio clic per aprire configs.py . Decommenta la definizione di GOOGLE_CLOUD_REGION e DATAFLOW_BEAM_PIPELINE_ARGS .

Cambia directory di un livello superiore. Fare clic sul nome della directory sopra l'elenco dei file. Il nome della directory è il nome della pipeline che è my_pipeline se non è stato modificato.

Fare doppio clic per aprire kubeflow_runner.py . beam_pipeline_args . (Assicurati anche di commentare beam_pipeline_args corrente che hai aggiunto nel passaggio 7.)

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Puoi trovare i tuoi lavori Dataflow in Dataflow in Cloud Console .

Prova la formazione e la previsione della piattaforma Cloud AI con KFP

TFX interagisce con diversi servizi GCP gestiti, come Cloud AI Platform for Training and Prediction . Puoi impostare il tuo componente Trainer per utilizzare Cloud AI Platform Training, un servizio gestito per la formazione di modelli ML. Inoltre, quando il tuo modello è creato e pronto per essere servito, puoi inviare il tuo modello a Cloud AI Platform Prediction per la pubblicazione. In questo passaggio, imposteremo il nostro componente Trainer e Pusher per utilizzare i servizi Cloud AI Platform.

Prima di modificare i file, potresti dover abilitare l' API AI Platform Training & Prediction .

Fare doppio clic sulla pipeline per cambiare directory e fare doppio clic per aprire configs.py . Decommenta la definizione di GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS e GCP_AI_PLATFORM_SERVING_ARGS . Utilizzeremo la nostra immagine del contenitore personalizzata per addestrare un modello in Cloud AI Platform Training, quindi dovremmo impostare masterConfig.imageUri in GCP_AI_PLATFORM_TRAINING_ARGS sullo stesso valore di CUSTOM_TFX_IMAGE sopra.

Cambia la directory di un livello superiore e fai doppio clic per aprire kubeflow_runner.py . ai_platform_training_args e ai_platform_serving_args .

Aggiorna la pipeline ed eseguila nuovamente

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Puoi trovare i tuoi lavori di formazione in Cloud AI Platform Jobs . Se la pipeline è stata completata correttamente, puoi trovare il tuo modello in Cloud AI Platform Models .

14. Usa i tuoi dati

In questo tutorial, hai creato una pipeline per un modello utilizzando il set di dati Chicago Taxi. Ora prova a inserire i tuoi dati nella pipeline. I tuoi dati possono essere archiviati ovunque la pipeline possa accedervi, inclusi i file Google Cloud Storage, BigQuery o CSV.

È necessario modificare la definizione della pipeline per adattare i dati.

Se i tuoi dati sono archiviati in file

  1. Modifica DATA_PATH in kubeflow_runner.py , indicando la posizione.

Se i tuoi dati sono archiviati in BigQuery

  1. Modifica BIG_QUERY_QUERY in configs.py nella tua istruzione di query.
  2. Aggiungi funzionalità in models / features.py .
  3. Modifica models / preprocessing.py per trasformare i dati di input per l'addestramento .
  4. Modifica models / keras / model.py e models / keras / constants.py per descrivere il tuo modello ML .

Ulteriori informazioni sull'allenatore

Consulta la guida ai componenti Trainer per maggiori dettagli sulle pipeline di formazione.

Pulire

Per ripulire tutte le risorse Google Cloud utilizzate in questo progetto, puoi eliminare il progetto Google Cloud che hai utilizzato per il tutorial.

In alternativa, puoi ripulire le singole risorse visitando ciascuna console: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine