TFX sur les pipelines Cloud AI Platform

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Introduction

Ce didacticiel est conçu pour présenter TensorFlow Extended (TFX) et les pipelines AIPlatform 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 afficher la lignée des artefacts créés.

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

Ensemble de données sur les taxis de Chicago

TaxiTaxi de Chicago

Vous utilisez le jeu 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 de BigQuery .

Modèle d'objectif - 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 à Google Cloud Console .

  2. Accepter les conditions d'utilisation de Google Cloud

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

    1. Sélectionnez votre pays.

    2. Acceptez les conditions d'utilisation.

    3. Entrez les détails de facturation.

      Vous ne serez pas facturé à ce stade. Si vous n'avez pas d'autres projets Google Cloud, vous pouvez suivre ce didacticiel sans dépasser les limites de Google Cloud Free Tier , 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 le menu déroulant du projet à côté de l'en-tête Google Cloud Platform et 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 Clusters AI Platform Pipelines .

    Sous 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 Kubeflow Pipelines :

    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 . (Ceci est nécessaire pour que ce cluster puisse accéder aux autres éléments de votre projet. Si vous manquez cette étape, la corriger ultérieurement est un peu délicat.)

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

      Le cluster "cluster-1" a été 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écutez Workbench, vous devez activer l'API Notebooks.

    Sous 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 version ultérieure).

    Nouvel ordinateur portable -> TensorFlow Enterprise 2.7 -> Sans GPU

    Sélectionnez une région et une zone, puis donnez un nom à l'instance de bloc-notes.

    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 vCPU disponibles pour cette instance de 4 à 2 :

    1. Sélectionnez Options avancées en bas du formulaire Nouveau bloc-notes .
    2. Sous Configuration de la machine, vous pouvez sélectionner une configuration avec 1 ou 2 vCPU si vous devez rester dans le niveau gratuit.

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

4. Lancez le bloc-notes de démarrage

  1. Accédez à la page Clusters AI Platform Pipelines .

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

  2. Sur la ligne du cluster que vous utilisez dans ce didacticiel, cliquez sur Ouvrir le tableau de bord des pipelines .

  3. Sur la page Premiers pas , cliquez sur Ouvrir un bloc-notes Cloud AI Platform sur Google Cloud .

  4. Sélectionnez l'instance Notebook que vous utilisez pour ce didacticiel et Continuer , puis Confirmer .

    select-notebook

5. Continuez à travailler dans le Notebook

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, définit et imprime l'ID du projet :

vérifier la version python et importer

Connectez-vous à vos services Google Cloud

La configuration du pipeline a besoin de votre ID de projet, que vous pouvez obtenir via le bloc-notes et définir en tant que 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 votre point de terminaison de cluster KFP.

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

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 votre répertoire de projet

Modifiez la cellule de bloc-notes suivante 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 bloc-notes utilise ensuite l'interface de ligne de commande tfx pour copier le modèle de pipeline. Ce didacticiel utilise le jeu de données Chicago Taxi pour effectuer une classification binaire, de sorte que le modèle définit 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 dans le répertoire du projet :

%cd {PROJECT_DIR}

Parcourir les fichiers de pipeline

Sur le côté gauche du bloc-notes Cloud AI Platform, 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 créent un pipeline. Ceux-ci incluent les codes sources Python, les exemples de données et les blocs-notes Jupyter. Ceux-ci sont destinés à cet exemple particulier. Pour vos propres pipelines, il s'agirait 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 les constantes communes pour les exécuteurs de pipeline
    • pipeline.py — définit les composants TFX et un pipeline
  • models - Ce répertoire contient des 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 de tf::Transform
    • estimator - Ce répertoire contient un modèle basé sur l'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 les runners pour chaque moteur d'orchestration

7. Exécutez votre premier pipeline TFX sur Kubeflow

Le bloc-notes 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 un stockage de blocs. Pour ce didacticiel, nous utiliserons GCS pour stocker nos charges utiles de métadonnées, à l'aide du compartiment qui a été créé automatiquement lors de la configuration. Son nom sera <your-project-id>-kubeflowpipelines-default .

Créer le pipeline

Le bloc-notes 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 bloc-notes 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écutez le pipeline

Le bloc-notes 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 consiste à comprendre et à nettoyer les données.

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

Composants

Composants de donnéesComposants de données

  • ExampleGen ingère et divise l'ensemble de données d'entrée.
  • StatisticsGen calcule des statistiques pour l'ensemble de données.
  • SchemaGen SchemaGen examine les statistiques et crée un schéma de données.
  • ExampleValidator 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 de modèle 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érifier la canalisation

Pour Kubeflow Orchestrator, accédez au tableau de bord KFP et recherchez les sorties de pipeline sur la page de votre exécution de pipeline. Cliquez sur l'onglet "Experiments" à gauche, puis sur "All runs" sur la page Experiments. Vous devriez pouvoir trouver l'exécution avec le nom de votre pipeline.

Exemple plus avancé

L'exemple présenté ici n'est vraiment destiné qu'à vous aider à démarrer. Pour un exemple plus avancé, consultez le TensorFlow Data Validation Colab .

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.

  • Caractéristique croix
  • Vocabulaires
  • Incrustations
  • APC
  • Encodage catégoriel

L'un des avantages de l'utilisation de TFX est que vous n'écrirez votre code de transformation qu'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 le jeu 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, accédez au tableau de bord KFP et recherchez les sorties de pipeline sur la page de votre exécution de pipeline. Cliquez sur l'onglet "Experiments" à gauche, puis sur "All runs" sur la page Experiments. Vous devriez pouvoir trouver l'exécution avec le nom de votre pipeline.

Exemple plus avancé

L'exemple présenté ici n'est vraiment destiné qu'à 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 agréables, propres et transformées.

  • Inclure les transformations de l'étape précédente afin qu'elles soient appliquées de manière cohérente
  • Enregistrer 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

  • Trainer entraîne un modèle TensorFlow.

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, accédez au tableau de bord KFP et recherchez les sorties de pipeline sur la page de votre exécution de pipeline. Cliquez sur l'onglet "Experiments" à gauche, puis sur "All runs" sur la page Experiments. Vous devriez pouvoir trouver l'exécution avec le nom de votre pipeline.

Exemple plus avancé

L'exemple présenté ici n'est vraiment destiné qu'à vous aider à démarrer. Pour un exemple plus avancé, consultez le didacticiel TensorBoard .

11. Analyser les performances du modèle

Comprendre plus que les métriques de haut niveau.

  • Les utilisateurs bénéficient des performances du modèle uniquement pour leurs requêtes
  • Les mauvaises performances sur les tranches de données peuvent être masquées par des métriques de haut niveau
  • L'équité du modèle est importante
  • Souvent, les sous-ensembles clés d'utilisateurs ou de données sont très importants et peuvent être petits
    • Performances 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, accédez au tableau de bord KFP et recherchez les sorties de pipeline sur la page de votre exécution de pipeline. Cliquez sur l'onglet "Experiments" à gauche, puis sur "All runs" sur la page Experiments. Vous devriez pouvoir trouver l'exécution avec le nom de votre pipeline.

12. Servir le modèle

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

  • 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

  • Diffusion TensorFlow
  • TensorFlow Lite
  • TensorFlowJS
  • Hub TensorFlow

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, accédez au tableau de bord KFP et recherchez les sorties de pipeline sur la page de votre exécution de pipeline. Cliquez sur l'onglet "Experiments" à gauche, puis sur "All runs" sur la page Experiments. Vous devriez pouvoir trouver l'exécution avec 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, y compris :

  • TensorFlow Serving , pour diffuser votre modèle sur un serveur ou une batterie de serveurs et traiter les demandes 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 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 Kubeflow Pipelines

Selon les 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 de 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 qui est 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 le faire est de créer un wrapper pour set_memory_request et de 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 économique. BigQuery peut être utilisé comme source d'exemples de formation dans TFX. Au cours de 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 de query de la fonction create_pipeline .

Nous devons spécifier le 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.

Changer de répertoire d'un niveau vers le haut. 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 changé 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 maintenant prêt à utiliser BigQuery comme source d'exemple. Mettez à jour le pipeline comme précédemment 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}

Essayer Dataflow

Plusieurs composants TFX utilisent Apache Beam pour implémenter des pipelines parallèles aux données, ce qui signifie que vous pouvez répartir 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 .

Changer de répertoire d'un niveau vers le haut. 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 changé.

Double-cliquez pour ouvrir kubeflow_runner.py . Décommentez beam_pipeline_args . (Assurez-vous également de commenter les 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 Cloud AI Platform Training and Prediction 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 l'entraînement des modèles de ML. De plus, lorsque votre modèle est créé et prêt à être diffusé, vous pouvez transférer votre modèle vers Cloud AI Platform Prediction pour diffusion. Dans cette étape, nous allons configurer nos composants Trainer et Pusher pour utiliser 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 au niveau supérieur 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 tâches de formation dans les tâches Cloud AI Platform . Si votre pipeline s'est terminé avec succès, vous pouvez trouver votre modèle dans Cloud AI Platform Models .

14. Utilisez vos propres données

Dans ce didacticiel, vous avez créé un pipeline pour un modèle à l'aide du jeu de données Chicago Taxi. Maintenant, essayez 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 l'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 dans votre instruction de requête.
  2. Ajoutez des fonctionnalités dans models / features.py .
  3. Modifier 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 Formateur

Voir le guide du composant Formateur pour plus de détails sur les pipelines de formation.

Nettoyer

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 les ressources individuelles en visitant chaque console : - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine