Points de contrôle
Deploy Vertex AI Workbench instance
/ 20
Create training and validation dataset
/ 20
Create the TensorFlow Model
/ 20
Deploy flights model to Vertex AI
/ 20
Deploy flights_xai model to Vertex AI
/ 20
Machine Learning avec TensorFlow dans Vertex AI
- GSP273
- Présentation
- Prérequis
- Tâche 1 : Déployer une instance Vertex AI Workbench
- Tâche 2 : Créer un minimum de données d'entraînement et de validation
- Tâche 3 : Créer les données d'entrée
- Tâche 4 : Créer, entraîner et évaluer le modèle TensorFlow
- Tâche 5 : Déployer le modèle "flights" dans Vertex AI
- Tâche 6 : Explicabilité
- Tâche 7 : Appeler le modèle déployé
- Félicitations !
GSP273
Présentation
Dans cet atelier, vous allez créer une instance Vertex AI Workbench sur laquelle vous développerez un modèle TensorFlow dans un notebook Jupyter. Vous entraînerez le modèle, créerez un pipeline de données d'entrée pour déployer ce modèle sur un point de terminaison, puis demanderez des prédictions.
TensorFlow est une plate-forme Open Source de bout en bout dédiée au machine learning. Cette plate-forme propose un écosystème complet et flexible d'outils, de bibliothèques et de ressources communautaires permettant aux chercheurs d'avancer dans le domaine du machine learning, et aux développeurs de créer et de déployer facilement des applications qui exploitent cette technologie.
Vertex AI rassemble AutoML et AI Platform au sein d'une API, d'une bibliothèque cliente et d'une interface utilisateur unifiées. Avec Vertex AI, l'entraînement AutoML et l'entraînement personnalisé sont tous deux disponibles.
Vertex AI Workbench permet aux utilisateurs de créer rapidement des workflows de bout en bout basés sur des notebooks, grâce à une intégration approfondie avec des services de données (Dataproc, Dataflow, BigQuery, Dataplex, etc.) et Vertex AI. Cette solution permet aux data scientists de se connecter aux services de données Google Cloud, d'analyser des ensembles de données, de tester différentes techniques de modélisation, de déployer des modèles entraînés en production et de gérer les MLOps tout au long du cycle de vie des modèles.
Vertex AI Workbench est un environnement de développement unique pour l'ensemble du workflow de science des données.
Cet atelier repose sur un ensemble d'exemples de code et de scripts développés pour l'ouvrage Data Science on Google Cloud Platform (2e édition) publié par O'Reilly Media, Inc.
Objectifs
- Déployer une instance Vertex AI Workbench
- Créer un minimum de données d'entraînement et de validation
- Créer le pipeline de données d'entrée
- Créer un modèle TensorFlow
- Déployer le modèle dans Vertex AI
- Déployer un modèle Explainable AI dans Vertex AI
- Obtenir des prédictions à partir du point de terminaison du modèle
Prérequis
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google Cloud
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte. -
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}} Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}} Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés. -
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais gratuits.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Tâche 1 : Déployer une instance Vertex AI Workbench
-
Dans le menu de navigation de la console Google Cloud, cliquez sur Vertex AI > Workbench.
-
Cliquez sur + Créer.
-
Dans la boîte de dialogue Créer une instance, utilisez le nom par défaut ou saisissez un nom unique pour l'instance Vertex AI Workbench. Définissez la région sur
et la zone sur , et laissez les autres paramètres par défaut. -
Cliquez sur Créer.
-
Cliquez sur Ouvrir JupyterLab.
Pour utiliser un notebook, vous devez saisir des commandes dans une cellule. Veillez à lancer l'exécution des commandes depuis la cellule. Pour ce faire, appuyez sur Maj + Entrée ou cliquez sur l'icône triangulaire dans le menu supérieur du notebook afin d'exécuter les cellules sélectionnées et de passer à l'étape suivante.
Tâche 2 : Créer un minimum de données d'entraînement et de validation
- Dans la section des lanceurs de Notebooks, cliquez sur Python 3 pour ouvrir un nouveau notebook.
- Importez les bibliothèques Python et définissez des variables d'environnement :
Vous pouvez ignorer les avertissements TensorRT Library Load ou TensorFlow AVX2 FMA.
Exporter les fichiers contenant les données d'entraînement et de validation
Au début de cet atelier, quelques tables sont créées dans l'ensemble de données BigQuery. Dans cette section, vous allez créer des tables temporaires avec les données nécessaires dans BigQuery, puis exporter ces tables vers des fichiers CSV dans Google Cloud Storage. Ensuite, vous supprimerez ces tables temporaires. Pour poursuivre, vous allez lire et traiter ces fichiers de données CSV pour créer les ensembles de données d'entraînement et de validation, ainsi que l'ensemble de données complet dont vous avez besoin pour un modèle TensorFlow personnalisé.
- Créez l'ensemble de données d'entraînement
flights_train_data
pour l'entraînement du modèle :
- Créez l'ensemble de données d'évaluation
flights_eval_data
pour l'évaluation du modèle :
- Créez l'ensemble de données complet
flights_all_data
à l'aide du code suivant :
- Exportez tous les ensembles de données (entraînement, validation, complet) au format de fichier CSV dans le bucket Google Cloud Storage :
Cette opération prend environ deux minutes.
- Patientez jusqu'à l'affichage du résultat de l'exécution du script bash suivant dans votre cellule de notebook :
- Listez les objets exportés vers le bucket Google Cloud Storage à l'aide du code suivant :
Tâche 3 : Créer les données d'entrée
Configuration dans le notebook
- À des fins de développement, vous effectuez l'entraînement pour un petit nombre d'époques. Cela explique pourquoi la valeur de NUM_EXAMPLES est si basse.
- Attribuez vos URI de données d'entraînement et de validation respectivement à
training_data_uri
etvalidation_data_uri
:
- Définissez les paramètres du modèle à l'aide du bloc de code suivant :
Lire les données dans TensorFlow
- Pour lire les fichiers CSV de Google Cloud Storage dans TensorFlow, utilisez la méthode suivante du package
tf.data
:
Écrivez des fonctions features_and_labels()
et read_dataset()
. La fonction read_dataset()
lit les données d'entraînement et génère des exemples batch_size à chaque lecture. En outre, elle permet d'arrêter l'itération une fois qu'un certain nombre d'exemples ont été lus.
L'ensemble de données contient toutes les colonnes du fichier CSV, nommées en fonction de la ligne d'en-tête. Les données comprennent à la fois les caractéristiques et les étiquettes. Il est conseillé de les séparer en écrivant la fonction features_and_labels()
de manière à faciliter la lecture du code ultérieur. Par conséquent, une fonction pop() sera appliquée au dictionnaire et renverra un tuple de caractéristiques et d'étiquettes.
- Saisissez et exécutez le code suivant :
Tâche 4 : Créer, entraîner et évaluer le modèle TensorFlow
En règle générale, vous créez une caractéristique pour chaque colonne des données tabulaires. Les colonnes de caractéristiques sont disponibles dans Keras, ce qui permet de représenter des données structurées à l'aide de techniques d'extraction de caractéristiques standards telles que les représentations vectorielles continues, le binning et le croisement de caractéristiques. Étant donné que les données numériques peuvent être transmises directement au modèle de ML, vous devez séparer les colonnes à valeur réelle des colonnes creuses (ou de chaîne) :
- Saisissez et exécutez le code suivant :
Toutes ces caractéristiques proviennent directement du fichier d'entrée (et sont fournies par tout client qui demande une prédiction pour un vol). Les couches d'entrée présentent un mappage "1 pour 1" avec les caractéristiques d'entrée et leurs types. Par conséquent, plutôt que de répéter les noms de colonne, vous devez créer une couche d'entrée pour chacune de ces colonnes, en spécifiant le bon type de données (nombre à virgule flottante ou chaîne).
- Saisissez et exécutez le code suivant :
Binning
Les colonnes à valeurs réelles dont la précision est excessive sont susceptibles de provoquer un surapprentissage. Elles peuvent être discrétisées et transformées en colonnes catégorielles. Par exemple, si vous disposez d'une colonne indiquant l'âge de l'avion, vous pouvez la discrétiser en seulement trois bins : moins de 5 ans, 5 à 20 ans et plus de 20 ans. Utilisez le raccourci de discrétisation. Vous pouvez discrétiser les latitudes et les longitudes et faire en sorte que les différents bins se croisent. Cela a pour effet de diviser le territoire en grilles et permet d'obtenir le point de grille dans lequel se situent une latitude et une longitude spécifiques.
- Saisissez et exécutez le code suivant :
Entraîner et évaluer le modèle
- Enregistrez le point de contrôle :
- Supprimez les points de contrôle du modèle déjà présents dans le bucket de stockage :
Vous recevez le message d'erreur CommandException: 1 files/objects could not be removed
(Exception de commande : impossible de supprimer 1 fichier/objet), car le modèle n'a pas encore été enregistré. Cette erreur signale que l'emplacement cible ne comporte aucun fichier. Vous devez vous assurer que cet emplacement est vide avant d'essayer d'enregistrer le modèle. C'est précisément ce que cette commande vous permet de faire.
- Grâce aux colonnes de caractéristiques creuses et à valeur réelle ainsi améliorées au-delà des entrées brutes, vous pouvez créer un classificateur large et profond (
wide_and_deep_classifier
) en transmettant séparément les colonnes de caractéristiques linéaires et profondes :
Utilisez train_dataset
pour l'entraînement du modèle et eval_dataset
pour l'évaluation du modèle.
- Créez le modèle à l'aide des blocs de code suivants :
- Visualisez la perte et la justesse du modèle à l'aide de
matplotlib.pyplot
:
Le résultat ressemble à ceci :
Exporter le modèle entraîné
- Enregistrez les artefacts du modèle dans le bucket Google Cloud Storage :
Tâche 5 : Déployer le modèle "flights" dans Vertex AI
Vertex AI offre un environnement entièrement géré, sans serveur et avec autoscaling pour les modèles de machine learning. Vous bénéficiez des avantages du paiement à l'usage pour toutes les ressources de calcul (telles que les CPU ou les GPU). La gestion des dépendances est prise en charge, car les modèles sont conteneurisés. Les points de terminaison assurent la répartition du trafic, ce qui vous permet d'effectuer facilement des tests A/B.
Les avantages vont au-delà de l'absence de gestion d'infrastructure. Après avoir déployé un modèle dans Vertex AI, vous accédez à de nombreuses fonctionnalités intéressantes sans avoir à ajouter de code supplémentaire : explicabilité, détection des dérives, surveillance, etc.
- Avec la cellule de code suivante, créez le point de terminaison du modèle
flights
et supprimez tous les modèles existants ayant le même nom :
- Créez un fichier d'entrée
example_input.json
de test à l'aide du code suivant :
- Effectuez une requête de prédiction depuis le point de terminaison du modèle. Voici les données d'entrée présentées dans un fichier au format JSON appelé
example_input.json
:
Les programmes clients peuvent utiliser cette méthode pour appeler le modèle que vous avez déployé.
Supposons que ces programmes ont accès aux données d'entrée dans un fichier au format JSON appelé example_input.json
.
- Envoyez une requête HTTP POST pour obtenir le résultat au format JSON :
Tâche 6 : Explicabilité
L'explicabilité des modèles est l'un des principaux problèmes du machine learning. Ce concept large englobe l'analyse et la compréhension des résultats fournis par les modèles de machine learning. L'explicabilité en machine learning signifie que vous pouvez expliquer ce qui se passe dans votre modèle, de l'entrée à la sortie. Cette approche résout le problème d'opacité des modèles en les rendant plus transparents. Explainable AI (XAI) est la méthode la plus formelle pour décrire cela.
- Exécutez le code suivant :
- Créez un fichier au format JSON appelé
explanation-metadata.json
avec les métadonnées qui décrivent l'entrée et la sortie du modèle à des fins explicatives. Dans cet exemple, vous allez utiliser la méthodesampled-shapley
pour expliquer le modèle :
- Affichez le fichier
explanation-metadata.json
à l'aide de la commandecat
:
Créer et déployer un autre modèle flight_xai dans Vertex AI
- Créez le point de terminaison du modèle
flights_xai
, puis importez le modèle et déployez-le sur son point de terminaison à l'aide du code suivant :
Tâche 7 : Appeler le modèle déployé
Les programmes clients peuvent utiliser cette méthode pour appeler le modèle que vous avez déployé. Supposons que ces programmes ont accès aux données d'entrée dans un fichier au format JSON appelé example_input.json
. Envoyez une requête HTTP POST pour obtenir le résultat au format JSON.
- Exécutez le code suivant :
Félicitations !
Félicitations ! Dans cet atelier, vous avez appris à créer un modèle avec Vertex AI et à le déployer sur des points de terminaison Vertex AI. Vous avez également appris à expliquer les prédictions du modèle à l'aide de la fonctionnalité Vertex AI Explainable AI (XAI). Vous avez ensuite entraîné un modèle de régression logistique sur l'ensemble des valeurs d'entrée, et vous avez découvert que le modèle n'était pas en mesure d'exploiter efficacement les nouvelles caractéristiques, telles que l'emplacement des aéroports.
Étapes suivantes et informations supplémentaires
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière modification du manuel : 30 octobre 2023
Dernier test de l'atelier : 31 octobre 2023
Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.