TFX sur les pipelines Cloud AI Platform

Introduction

Ce didacticiel est conçu pour présenter TensorFlow Extended (TFX) et AIPlatform Pipelines et vous aider à apprendre à créer vos propres pipelines de machine learning sur Google Cloud. Il montre l'intégration avec TFX, AI Platform Pipelines et Kubeflow, ainsi que l'interaction avec TFX dans les notebooks Jupyter.

À la fin de ce didacticiel, vous aurez créé et exécuté un pipeline ML, hébergé sur Google Cloud. Vous pourrez visualiser les résultats de chaque exécution et visualiser la lignée des artefacts créés.

Vous suivrez un processus de développement ML typique, en commençant par l'examen de l'ensemble de données et en terminant par un pipeline fonctionnel complet. En cours de route, vous découvrirez des moyens de déboguer et de mettre à jour votre pipeline, ainsi que de mesurer les performances.

Ensemble de données sur les taxis de Chicago

TaxiTaxis de Chicago

Vous utilisez l' ensemble de données Taxi Trips publié par la ville de Chicago.

Vous pouvez en savoir plus sur l'ensemble de données dans Google BigQuery . Explorez l'ensemble de données complet dans l' interface utilisateur BigQuery .

Objectif du modèle - Classification binaire

Le client donnera-t-il un pourboire supérieur ou inférieur à 20 % ?

1. Configurer un projet Google Cloud

1.a Configurez votre environnement sur Google Cloud

Pour commencer, vous avez besoin d'un compte Google Cloud. Si vous en avez déjà un, passez directement à Créer un nouveau projet .

  1. Accédez à la console Google Cloud .

  2. Accepter les conditions générales de Google Cloud

  3. Si vous souhaitez démarrer avec un compte d'essai gratuit, cliquez sur Essayez gratuitement (ou Commencez gratuitement ).

    1. Sélectionnez votre pays.

    2. Acceptez les conditions de service.

    3. Saisissez les détails de facturation.

      Vous ne serez pas facturé à ce stade. Si vous n'avez aucun autre projet Google Cloud, vous pouvez suivre ce didacticiel sans dépasser les limites de l'offre gratuite de Google Cloud , qui incluent un maximum de 8 cœurs exécutés en même temps.

1.b Créez un nouveau projet.

  1. Dans le tableau de bord principal de Google Cloud , cliquez sur la liste déroulante du projet à côté de l'en-tête de Google Cloud Platform , puis sélectionnez Nouveau projet .
  2. Donnez un nom à votre projet et entrez d'autres détails du projet
  3. Une fois que vous avez créé un projet, assurez-vous de le sélectionner dans la liste déroulante des projets.

2. Configurer et déployer un pipeline AI Platform sur un nouveau cluster Kubernetes

  1. Accédez à la page des clusters de pipelines AI Platform .

    Dans le menu de navigation principal : ≡ > AI Platform > Pipelines

  2. Cliquez sur + Nouvelle instance pour créer un nouveau cluster.

  3. Sur la page de présentation de Kubeflow Pipelines , cliquez sur Configurer .

  4. Cliquez sur "Activer" pour activer l'API Kubernetes Engine

  5. Sur la page Déployer les pipelines Kubeflow :

    1. Sélectionnez une zone (ou « région ») pour votre cluster. Le réseau et le sous-réseau peuvent être définis, mais pour les besoins de ce didacticiel, nous les laisserons par défaut.

    2. IMPORTANT Cochez la case intitulée Autoriser l'accès aux API cloud suivantes . (Cela est nécessaire pour que ce cluster puisse accéder aux autres éléments de votre projet. Si vous manquez cette étape, la corriger plus tard est un peu délicate.)

    3. Cliquez sur Créer un nouveau cluster et attendez plusieurs minutes jusqu'à ce que le cluster soit créé. Cela prendra quelques minutes. Une fois l'opération terminée, vous verrez un message du type :

      Cluster "cluster-1" créé avec succès dans la zone "us-central1-a".

    4. Sélectionnez un espace de noms et un nom d'instance (l'utilisation des valeurs par défaut convient). Pour les besoins de ce didacticiel, ne cochez pas executor.emissary ou Managedstorage.enabled .

    5. Cliquez sur Déployer et attendez quelques instants jusqu'à ce que le pipeline soit déployé. En déployant Kubeflow Pipelines, vous acceptez les conditions d'utilisation.

3. Configurez l'instance Cloud AI Platform Notebook.

  1. Accédez à la page Vertex AI Workbench . La première fois que vous exécuterez Workbench, vous devrez activer l'API Notebooks.

    Dans le menu de navigation principal : ≡ -> Vertex AI -> Workbench

  2. Si vous y êtes invité, activez l'API Compute Engine.

  3. Créez un nouveau bloc-notes avec TensorFlow Enterprise 2.7 (ou supérieur) installé.

    Nouveau bloc-notes -> TensorFlow Enterprise 2.7 -> Sans GPU

    Sélectionnez une région et une zone, puis attribuez un nom à l'instance de notebook.

    Pour rester dans les limites de l'offre gratuite, vous devrez peut-être modifier les paramètres par défaut ici pour réduire le nombre de processeurs virtuels disponibles pour cette instance de 4 à 2 :

    1. Sélectionnez Options avancées au bas du formulaire Nouveau bloc-notes .
    2. Sous Configuration de la machine, vous souhaiterez peut-être sélectionner une configuration avec 1 ou 2 processeurs virtuels si vous devez rester dans le niveau gratuit.

    3. Attendez que le nouveau notebook soit créé, puis cliquez sur Activer l'API Notebooks.

4. Lancez le bloc-notes de démarrage

  1. Accédez à la page des clusters de pipelines AI Platform .

    Dans le menu de navigation principal : ≡ -> AI Platform -> Pipelines

  2. Sur la ligne du cluster que vous utilisez dans ce didacticiel, cliquez sur Open Pipelines Dashboard .

  3. Sur la page Mise en route , cliquez sur Ouvrir un bloc-notes Cloud AI Platform sur Google Cloud .

  4. Sélectionnez l'instance de Notebook que vous utilisez pour ce didacticiel et continuez , puis confirmez .

    sélectionner un ordinateur portable

5. Continuez à travailler dans le bloc-notes

Installer

Le bloc-notes de démarrage commence par installer TFX et Kubeflow Pipelines (KFP) dans la machine virtuelle sur laquelle Jupyter Lab s'exécute.

Il vérifie ensuite quelle version de TFX est installée, effectue une importation, puis définit et imprime l'ID du projet :

vérifier la version de Python et importer

Connectez-vous à vos services Google Cloud

La configuration du pipeline nécessite votre ID de projet, que vous pouvez obtenir via le notebook et définir comme variable d'environnement.

# 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)

Définissez maintenant le point de terminaison de votre cluster KFP.

Celui-ci peut être trouvé à partir de l'URL du tableau de bord Pipelines. Accédez au tableau de bord Kubeflow Pipeline et regardez l'URL. Le point de terminaison correspond à tout ce qui se trouve dans l'URL commençant par https:// , jusqu'à googleusercontent.com inclus.

ENDPOINT='' # Enter YOUR ENDPOINT here.

Le notebook définit ensuite un nom unique pour l'image Docker personnalisée :

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

6. Copiez un modèle dans le répertoire de votre projet

Modifiez la cellule suivante du bloc-notes pour définir un nom pour votre pipeline. Dans ce tutoriel, nous utiliserons my_pipeline .

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

Le notebook utilise ensuite la CLI tfx pour copier le modèle de pipeline. Ce didacticiel utilise l'ensemble de données Chicago Taxi pour effectuer une classification binaire. Le modèle définit donc le modèle sur taxi :

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

Le notebook modifie ensuite son contexte CWD vers le répertoire du projet :

%cd {PROJECT_DIR}

Parcourez les fichiers du pipeline

Sur le côté gauche de Cloud AI Platform Notebook, vous devriez voir un navigateur de fichiers. Il devrait y avoir un répertoire avec le nom de votre pipeline ( my_pipeline ). Ouvrez-le et affichez les fichiers. (Vous pourrez également les ouvrir et les modifier à partir de l'environnement du bloc-notes.)

# You can also list the files from the shell
 ls

La commande tfx template copy ci-dessus a créé un échafaudage de base de fichiers qui construisent un pipeline. Ceux-ci incluent les codes sources Python, les exemples de données et les notebooks Jupyter. Ceux-ci sont destinés à cet exemple particulier. Pour vos propres pipelines, il s'agira des fichiers de support dont votre pipeline a besoin.

Voici une brève description des fichiers Python.

  • pipeline - Ce répertoire contient la définition du pipeline
    • configs.py - définit des constantes communes pour les exécuteurs de pipeline
    • pipeline.py - définit les composants TFX et un pipeline
  • models - Ce répertoire contient les définitions de modèles ML.
    • features.py features_test.py — définit les fonctionnalités du modèle
    • preprocessing.py / preprocessing_test.py — définit les tâches de prétraitement à l'aide tf::Transform
    • estimator - Ce répertoire contient un modèle basé sur un estimateur.
      • constants.py — définit les constantes du modèle
      • model.py / model_test.py - définit le modèle DNN à l'aide de l'estimateur TF
    • keras - Ce répertoire contient un modèle basé sur Keras.
      • constants.py — définit les constantes du modèle
      • model.py / model_test.py - définit le modèle DNN à l'aide de Keras
  • beam_runner.py / kubeflow_runner.py — définit des exécuteurs pour chaque moteur d'orchestration

7. Exécutez votre premier pipeline TFX sur Kubeflow

Le notebook exécutera le pipeline à l’aide de la commande CLI tfx run .

Connectez-vous au stockage

Les pipelines en cours d'exécution créent des artefacts qui doivent être stockés dans ML-Metadata . Les artefacts font référence aux charges utiles, qui sont des fichiers qui doivent être stockés dans un système de fichiers ou dans un stockage par blocs. Pour ce didacticiel, nous utiliserons GCS pour stocker nos charges utiles de métadonnées, en utilisant le compartiment créé automatiquement lors de la configuration. Son nom sera <your-project-id>-kubeflowpipelines-default .

Créer le pipeline

Le notebook téléchargera nos exemples de données dans le compartiment GCS afin que nous puissions les utiliser ultérieurement dans notre pipeline.

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

Le notebook utilise ensuite la commande tfx pipeline create pour créer le pipeline.

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

Lors de la création d'un pipeline, Dockerfile sera généré pour créer une image Docker. N'oubliez pas d'ajouter ces fichiers à votre système de contrôle de code source (par exemple, git) avec d'autres fichiers source.

Exécuter le pipeline

Le notebook utilise ensuite la commande tfx run create pour démarrer une exécution de votre pipeline. Vous verrez également cette exécution répertoriée sous Expériences dans le tableau de bord Kubeflow Pipelines.

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

Vous pouvez afficher votre pipeline à partir du tableau de bord Kubeflow Pipelines.

8. Validez vos données

La première tâche de tout projet de science des données ou de ML est de comprendre et de nettoyer les données.

  • Comprendre les types de données pour chaque fonctionnalité
  • Rechercher des anomalies et des valeurs manquantes
  • Comprendre les distributions pour chaque fonctionnalité

Composants

Composants de donnéesComposants de données

  • ExempleGen ingère et divise l'ensemble de données d'entrée.
  • StatisticsGen calcule les statistiques pour l'ensemble de données.
  • SchemaGen SchemaGen examine les statistiques et crée un schéma de données.
  • SampleValidator recherche les anomalies et les valeurs manquantes dans l'ensemble de données.

Dans l'éditeur de fichiers de laboratoire Jupyter :

Dans pipeline / pipeline.py , décommentez les lignes qui ajoutent ces composants à votre pipeline :

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

( ExampleGen était déjà activé lorsque les fichiers modèles ont été copiés.)

Mettez à jour le pipeline et réexécutez-le

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

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

Vérifiez le pipeline

Pour Kubeflow Orchestrator, visitez le tableau de bord KFP et recherchez les sorties du pipeline dans la page correspondant à l'exécution de votre pipeline. Cliquez sur l'onglet "Expériences" sur la gauche et sur "Toutes les exécutions" dans la page Expériences. Vous devriez pouvoir trouver l'exécution portant le nom de votre pipeline.

Exemple plus avancé

L'exemple présenté ici est en réalité uniquement destiné à vous aider à démarrer. Pour un exemple plus avancé, consultez le Colab de validation des données TensorFlow .

Pour plus d'informations sur l'utilisation de TFDV pour explorer et valider un ensemble de données, consultez les exemples sur tensorflow.org .

9. Ingénierie des fonctionnalités

Vous pouvez augmenter la qualité prédictive de vos données et/ou réduire la dimensionnalité grâce à l'ingénierie des fonctionnalités.

  • Croix de fonctionnalités
  • Vocabulaires
  • Intégrations
  • APC
  • Encodage catégoriel

L'un des avantages de l'utilisation de TFX est que vous écrirez votre code de transformation une seule fois et que les transformations résultantes seront cohérentes entre la formation et la diffusion.

Composants

Transformer

  • Transform effectue l'ingénierie des fonctionnalités sur l'ensemble de données.

Dans l'éditeur de fichiers de laboratoire Jupyter :

Dans pipeline / pipeline.py , recherchez et décommentez la ligne qui ajoute Transform au pipeline.

# components.append(transform)

Mettez à jour le pipeline et réexécutez-le

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

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

Vérifier les sorties du pipeline

Pour Kubeflow Orchestrator, visitez le tableau de bord KFP et recherchez les sorties du pipeline dans la page correspondant à l'exécution de votre pipeline. Cliquez sur l'onglet "Expériences" sur la gauche et sur "Toutes les exécutions" dans la page Expériences. Vous devriez pouvoir trouver l'exécution portant le nom de votre pipeline.

Exemple plus avancé

L'exemple présenté ici est en réalité uniquement destiné à vous aider à démarrer. Pour un exemple plus avancé, consultez TensorFlow Transform Colab .

10. Formation

Entraînez un modèle TensorFlow avec vos données belles, propres et transformées.

  • Incluez les transformations de l'étape précédente afin qu'elles soient appliquées de manière cohérente
  • Enregistrez les résultats en tant que SavedModel pour la production
  • Visualisez et explorez le processus de formation à l'aide de TensorBoard
  • Enregistrez également un EvalSavedModel pour l'analyse des performances du modèle

Composants

Dans l'éditeur de fichiers de laboratoire Jupyter :

Dans pipeline / pipeline.py , recherchez et décommentez le qui ajoute Trainer au pipeline :

# components.append(trainer)

Mettez à jour le pipeline et réexécutez-le

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

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

Vérifier les sorties du pipeline

Pour Kubeflow Orchestrator, visitez le tableau de bord KFP et recherchez les sorties du pipeline dans la page correspondant à l'exécution de votre pipeline. Cliquez sur l'onglet "Expériences" sur la gauche et sur "Toutes les exécutions" dans la page Expériences. Vous devriez pouvoir trouver l'exécution portant le nom de votre pipeline.

Exemple plus avancé

L'exemple présenté ici est en réalité uniquement destiné à vous aider à démarrer. Pour un exemple plus avancé, consultez le didacticiel TensorBoard .

11. Analyse des performances du modèle

Comprendre bien plus que les indicateurs de haut niveau.

  • Les utilisateurs bénéficient des performances du modèle uniquement pour leurs requêtes
  • De mauvaises performances sur des tranches de données peuvent être masquées par des métriques de niveau supérieur
  • L’équité du modèle est importante
  • Souvent, des sous-ensembles clés d'utilisateurs ou de données sont très importants et peuvent être petits
    • Performance dans des conditions critiques mais inhabituelles
    • Performance pour les publics clés tels que les influenceurs
  • Si vous remplacez un modèle actuellement en production, assurez-vous d'abord que le nouveau est meilleur

Composants

  • L'évaluateur effectue une analyse approfondie des résultats de la formation.

Dans l'éditeur de fichiers de laboratoire Jupyter :

Dans pipeline / pipeline.py , recherchez et décommentez la ligne qui ajoute Evaluator au pipeline :

components.append(evaluator)

Mettez à jour le pipeline et réexécutez-le

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

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

Vérifier les sorties du pipeline

Pour Kubeflow Orchestrator, visitez le tableau de bord KFP et recherchez les sorties du pipeline dans la page correspondant à l'exécution de votre pipeline. Cliquez sur l'onglet "Expériences" sur la gauche et sur "Toutes les exécutions" dans la page Expériences. Vous devriez pouvoir trouver l'exécution portant le nom de votre pipeline.

12. Servir le modèle

Si le nouveau modèle est prêt, faites-le.

  • Pusher déploie SavedModels dans des emplacements bien connus

Les cibles de déploiement reçoivent de nouveaux modèles provenant d'emplacements bien connus

  • Service TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

Composants

  • Pusher déploie le modèle sur une infrastructure de service.

Dans l'éditeur de fichiers de laboratoire Jupyter :

Dans pipeline / pipeline.py , recherchez et décommentez la ligne qui ajoute Pusher au pipeline :

# components.append(pusher)

Vérifier les sorties du pipeline

Pour Kubeflow Orchestrator, visitez le tableau de bord KFP et recherchez les sorties du pipeline dans la page correspondant à l'exécution de votre pipeline. Cliquez sur l'onglet "Expériences" sur la gauche et sur "Toutes les exécutions" dans la page Expériences. Vous devriez pouvoir trouver l'exécution portant le nom de votre pipeline.

Cibles de déploiement disponibles

Vous avez maintenant formé et validé votre modèle, et votre modèle est maintenant prêt pour la production. Vous pouvez désormais déployer votre modèle sur n'importe quelle cible de déploiement TensorFlow, notamment :

  • TensorFlow Serving , pour diffuser votre modèle sur un serveur ou une batterie de serveurs et traiter les requêtes d'inférence REST et/ou gRPC.
  • TensorFlow Lite , pour inclure votre modèle dans une application mobile native Android ou iOS, ou dans une application Raspberry Pi, IoT ou microcontrôleur.
  • TensorFlow.js , pour exécuter votre modèle dans un navigateur Web ou une application Node.JS.

Exemples plus avancés

L’exemple présenté ci-dessus est en réalité uniquement destiné à vous aider à démarrer. Vous trouverez ci-dessous quelques exemples d'intégration avec d'autres services Cloud.

Considérations sur les ressources de Kubeflow Pipelines

En fonction des exigences de votre charge de travail, la configuration par défaut de votre déploiement Kubeflow Pipelines peut ou non répondre à vos besoins. Vous pouvez personnaliser vos configurations de ressources à l'aide pipeline_operator_funcs dans votre appel à KubeflowDagRunnerConfig .

pipeline_operator_funcs est une liste d'éléments OpFunc , qui transforme toutes les instances ContainerOp générées dans la spécification de pipeline KFP compilée à partir de KubeflowDagRunner .

Par exemple, pour configurer la mémoire, nous pouvons utiliser set_memory_request pour déclarer la quantité de mémoire nécessaire. Une façon typique de procéder consiste à créer un wrapper pour set_memory_request et à l'utiliser pour l'ajouter à la liste des OpFunc du pipeline :

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)

Les fonctions de configuration de ressources similaires incluent :

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

Essayez BigQueryExampleGen

BigQuery est un entrepôt de données cloud sans serveur, hautement évolutif et rentable. BigQuery peut être utilisé comme source d'exemples de formation dans TFX. Dans cette étape, nous ajouterons BigQueryExampleGen au pipeline.

Dans l'éditeur de fichiers de laboratoire Jupyter :

Double-cliquez pour ouvrir pipeline.py . Commentez CsvExampleGen et décommentez la ligne qui crée une instance de BigQueryExampleGen . Vous devez également décommenter l'argument query de la fonction create_pipeline .

Nous devons spécifier quel projet GCP utiliser pour BigQuery, et cela se fait en définissant --project dans beam_pipeline_args lors de la création d'un pipeline.

Double-cliquez pour ouvrir configs.py . Décommentez la définition de BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS et BIG_QUERY_QUERY . Vous devez remplacer l'ID du projet et la valeur de la région dans ce fichier par les valeurs correctes pour votre projet GCP.

Changez de répertoire d’un niveau au-dessus. Cliquez sur le nom du répertoire au-dessus de la liste des fichiers. Le nom du répertoire est le nom du pipeline qui est my_pipeline si vous n'avez pas modifié le nom du pipeline.

Double-cliquez pour ouvrir kubeflow_runner.py . Décommentez deux arguments, query et beam_pipeline_args , pour la fonction create_pipeline .

Le pipeline est désormais prêt à utiliser BigQuery comme exemple de source. Mettez à jour le pipeline comme avant et créez une nouvelle exécution comme nous l'avons fait aux étapes 5 et 6.

Mettez à jour le pipeline et réexécutez-le

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

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

Essayez Dataflow

Plusieurs composants TFX utilisent Apache Beam pour implémenter des pipelines de données parallèles, ce qui signifie que vous pouvez distribuer les charges de travail de traitement des données à l'aide de Google Cloud Dataflow . Dans cette étape, nous allons configurer l'orchestrateur Kubeflow pour qu'il utilise Dataflow comme back-end de traitement des données pour 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

Double-cliquez sur pipeline pour changer de répertoire, puis double-cliquez pour ouvrir configs.py . Décommentez la définition de GOOGLE_CLOUD_REGION et DATAFLOW_BEAM_PIPELINE_ARGS .

Changez de répertoire d’un niveau au-dessus. Cliquez sur le nom du répertoire au-dessus de la liste des fichiers. Le nom du répertoire est le nom du pipeline qui est my_pipeline si vous ne l'avez pas modifié.

Double-cliquez pour ouvrir kubeflow_runner.py . Décommentez beam_pipeline_args . (Assurez-vous également de commenter beam_pipeline_args actuels que vous avez ajoutés à l'étape 7.)

Mettez à jour le pipeline et réexécutez-le

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

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

Vous pouvez trouver vos tâches Dataflow dans Dataflow dans Cloud Console .

Essayez la formation et la prédiction Cloud AI Platform avec KFP

TFX interagit avec plusieurs services GCP gérés, tels que Cloud AI Platform for Training and Prediction . Vous pouvez configurer votre composant Trainer pour qu'il utilise Cloud AI Platform Training, un service géré pour la formation des modèles ML. De plus, lorsque votre modèle est créé et prêt à être servi, vous pouvez le transférer vers Cloud AI Platform Prediction pour le servir. Dans cette étape, nous allons configurer nos composants Trainer et Pusher pour qu'ils utilisent les services Cloud AI Platform.

Avant de modifier des fichiers, vous devrez peut-être d'abord activer l'API AI Platform Training & Prediction .

Double-cliquez sur pipeline pour changer de répertoire, puis double-cliquez pour ouvrir configs.py . Décommentez la définition de GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS et GCP_AI_PLATFORM_SERVING_ARGS . Nous utiliserons notre image de conteneur personnalisée pour entraîner un modèle dans Cloud AI Platform Training. Nous devons donc définir masterConfig.imageUri dans GCP_AI_PLATFORM_TRAINING_ARGS sur la même valeur que CUSTOM_TFX_IMAGE ci-dessus.

Changez de répertoire d'un niveau plus haut et double-cliquez pour ouvrir kubeflow_runner.py . Décommentez ai_platform_training_args et ai_platform_serving_args .

Mettez à jour le pipeline et réexécutez-le

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

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

Vous pouvez trouver vos offres de formation dans Cloud AI Platform Jobs . Si votre pipeline s'est terminé avec succès, vous pouvez trouver votre modèle dans Modèles Cloud AI Platform .

14. Utilisez vos propres données

Dans ce didacticiel, vous avez créé un pipeline pour un modèle à l'aide de l'ensemble de données Chicago Taxi. Essayez maintenant de mettre vos propres données dans le pipeline. Vos données peuvent être stockées partout où le pipeline peut y accéder, y compris les fichiers Google Cloud Storage, BigQuery ou CSV.

Vous devez modifier la définition du pipeline pour s'adapter à vos données.

Si vos données sont stockées dans des fichiers

  1. Modifiez DATA_PATH dans kubeflow_runner.py , en indiquant l'emplacement.

Si vos données sont stockées dans BigQuery

  1. Modifiez BIG_QUERY_QUERY dans configs.py en votre instruction de requête.
  2. Ajoutez des fonctionnalités dans models features.py .
  3. Modifiez models / preprocessing.py pour transformer les données d'entrée pour la formation .
  4. Modifiez models / keras / model.py et models / keras / constants.py pour décrire votre modèle ML .

En savoir plus sur le formateur

Consultez le guide des composants du formateur pour plus de détails sur les pipelines de formation.

Nettoyage

Pour nettoyer toutes les ressources Google Cloud utilisées dans ce projet, vous pouvez supprimer le projet Google Cloud que vous avez utilisé pour le didacticiel.

Vous pouvez également nettoyer des ressources individuelles en visitant chaque console : - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine