Vertex AI Pipelines vous permet d'automatiser, de surveiller et de gérer vos systèmes de machine learning (ML) sans serveur en utilisant des pipelines de ML pour orchestrer vos workflows de ML. Vous pouvez exécuter par lot des pipelines de ML définis à l'aide des pipelines Kubeflow ou TensorFlow Extended (TFX). Pour découvrir comment choisir un framework de définition de votre pipeline de ML, consultez la section Interfaces permettant de définir un pipeline.
Cette page présente les éléments suivants :
Qu'est-ce qu'un pipeline de ML ?
Un pipeline de ML est une description portable et extensible d'un workflow MLOps sous la forme d'une série d'étapes appelées "tâches de pipeline". Chaque tâche effectue une étape spécifique dans le workflow pour entraîner et/ou déployer un modèle de ML.
Avec les pipelines de ML, vous pouvez appliquer des stratégies MLOps pour automatiser et surveiller les processus reproductibles de votre pratique du ML. Par exemple, vous pouvez réutiliser une définition de pipeline pour réentraîner un modèle en continu sur les dernières données de production. Pour en savoir plus sur le MLOps dans Vertex AI, consultez la section MLOps sur Vertex AI.
Structure d'un pipeline de ML
Un pipeline de ML est un graphe orienté acyclique (DAG) de tâches de pipeline conteneurisées, qui sont connectées entre elles à l'aide de dépendances d'entrée/sortie. Vous pouvez créer chaque tâche en Python ou en tant qu'image de conteneur prédéfinie.
Vous pouvez définir le pipeline en tant que DAG à l'aide du SDK Kubeflow Pipelines ou du SDK TFX, le compiler en YAML servant de représentation intermédiaire, puis l'exécuter. Par défaut, les tâches de pipeline s'exécutent en parallèle. Vous pouvez associer les tâches pour les exécuter en série. Pour plus d'informations sur les tâches de pipeline, consultez la section Tâche de pipeline. Pour en savoir plus sur le workflow de définition, de compilation et d'exécution du pipeline, consultez la section Cycle de vie d'un pipeline de ML.
Tâches et composants d'un pipeline
Une tâche de pipeline est une instanciation d'un composant de pipeline avec des entrées spécifiques. Lorsque vous définissez votre pipeline de ML, vous pouvez connecter plusieurs tâches entre elles pour former un DAG, en acheminant les sorties d'une tâche de pipeline vers les entrées de la tâche de pipeline suivante dans le workflow de ML. Vous pouvez également utiliser les entrées du pipeline de ML en tant qu'entrées d'une tâche de pipeline.
Composant de pipeline
Un composant de pipeline est un ensemble autonome de code qui effectue une étape spécifique d'un workflow de ML, par exemple le prétraitement des données, l'entraînement du modèle ou son déploiement. Un composant comprend généralement les éléments suivants :
Entrées : un composant peut avoir un ou plusieurs paramètres et artefacts d'entrée.
Sorties : chaque composant possède un ou plusieurs paramètres ou artefacts de sortie.
Logique : il s'agit du code exécutable du composant. Pour les composants conteneurisés, la logique contient également la définition de l'environnement ou l'image du conteneur dans lequel le composant est exécuté.
Les composants constituent la base de la définition de tâches dans un pipeline de ML. Pour définir des tâches de pipeline, vous pouvez utiliser des composants prédéfinis du pipeline Google Cloud ou créer vos propres composants personnalisés.
Composants prédéfinis
Utilisez des composants prédéfinis du pipeline Google Cloud si vous souhaitez utiliser dans votre pipeline des fonctionnalités de Vertex AI, telles qu'AutoML. Pour apprendre à utiliser les composants du pipeline Google Cloud afin de définir un pipeline, consultez la section Construire un pipeline.
Composants personnalisés
Vous pouvez créer vos propres composants personnalisés à utiliser dans votre pipeline de ML. Pour en savoir plus sur la création de composants personnalisés, consultez la section Créer vos propres composants de pipeline.
Pour apprendre à créer des composants Kubeflow Pipelines personnalisés, consultez le notebook Jupyter Pipelines avec des composants légers basés sur des fonctions Python sur GitHub. Pour apprendre à créer des composants TFX personnalisés, consultez le tutoriel sur les composants de fonction Python TFX dans les tutoriels TensorFlow Extended en production.
Tâche de pipeline
Une tâche de pipeline est l'instanciation d'un composant de pipeline, qui effectue une étape spécifique dans votre workflow de ML. Vous pouvez créer des tâches de pipeline de ML à l'aide de Python ou en tant qu'images de conteneurs prédéfinies.
Dans une tâche, vous pouvez exploiter les capacités de calcul à la demande de Vertex AI avec Kubernetes pour exécuter votre code de manière évolutive, ou déléguer votre charge de travail à un autre moteur d'exécution, tel que BigQuery, Dataflow ou Dataproc sans serveur.
Cycle de vie d'un pipeline de ML
De la définition à l'exécution et à la surveillance, le cycle de vie d'un pipeline de ML comprend les étapes générales suivantes :
Définition : le processus de définition d'un pipeline de ML et de sa tâche est également appelé création d'un pipeline. Dans cette étape, vous devez effectuer les actions suivantes :
Choisir un framework de ML : Vertex AI Pipelines est compatible avec les pipelines de ML définis à l'aide des frameworks TFX ou Kubeflow Pipelines. Pour savoir comment choisir un framework de création de votre pipeline, consultez la section Interfaces permettant de définir un pipeline.
Définir les tâches de pipeline et configurer le pipeline : pour plus d'informations, consultez la section Construire un pipeline.
Compilation : dans cette étape, vous devez effectuer les actions suivantes :
Générer la définition de votre pipeline de ML dans un fichier YAML compilé pour la représentation intermédiaire, que vous pouvez utiliser pour exécuter votre pipeline de ML.
Facultatif : Vous pouvez importer le fichier YAML compilé dans un dépôt en tant que modèle de pipeline et le réutiliser pour créer des exécutions de pipeline de ML.
Exécution : créez une instance d'exécution de votre pipeline de ML à l'aide du fichier YAML compilé ou d'un modèle de pipeline. L'instance d'exécution d'une définition de pipeline est appelée exécution de pipeline.
Vous pouvez créer une occurrence unique de l'exécution du pipeline ou utiliser l'API Scheduler pour créer des exécutions de pipeline récurrentes à partir de la même définition de pipeline de ML. Vous pouvez également cloner une exécution de pipeline existante. Pour savoir comment choisir une interface d'exécution d'un pipeline de ML, consultez la section Interfaces permettant d'exécuter un pipeline. Pour en savoir plus sur la création d'une exécution de pipeline, consultez la section Exécuter un pipeline.
Surveillance, visualisation et analyse des exécutions : après avoir créé une exécution de pipeline, vous pouvez effectuer les actions suivantes pour surveiller les performances, l'état et les coûts des exécutions du pipeline :
Configurez des notifications par e-mail en cas d'échecs du pipeline. Pour en savoir plus, consultez la section Configurer les notifications par e-mail.
Utilisez Cloud Logging afin de créer des entrées de journal pour les événements de surveillance. Pour en savoir plus, consultez la section Afficher les journaux des tâches du pipeline.
Visualisez, analysez et comparez des exécutions de pipeline. Pour en savoir plus, consultez la section Visualiser et analyser les résultats du pipeline.
Utilisez l'exportation Cloud Billing vers BigQuery pour analyser les coûts d'exécution du pipeline. Pour en savoir plus, consultez la section Comprendre les coûts d'exécution des pipelines.
Facultatif : arrêt ou suppression d'exécutions de pipeline : la durée de maintien en activité d'un pipeline n'est soumise à aucune limite. Vous pouvez facultativement effectuer les actions suivantes :
Arrêter une exécution de pipeline.
Mettre en pause ou reprendre une planification d'exécution de pipeline.
Supprimer un modèle de pipeline, une exécution de pipeline ou une planification d'exécution de pipeline existants.
Qu'est-ce qu'une exécution de pipeline ?
Une exécution de pipeline est une instance d'exécution de votre définition de pipeline de ML. Chaque exécution de pipeline est identifiée par un nom d'exécution unique. Vertex AI Pipelines vous permet de créer une exécution de pipeline de ML de différentes manières :
Utiliser la définition YAML compilée d'un pipeline
Utiliser un modèle prédéfini à partir de la galerie de modèles
Pour en savoir plus sur la création d'une exécution de pipeline, consultez la section Exécuter un pipeline. Pour en savoir plus sur la création d'une exécution de pipeline à partir d'un modèle de pipeline, consultez la section Créer, importer et utiliser un modèle de pipeline.
Pour en savoir plus sur la capture et le stockage des métadonnées d'exécution du pipeline à l'aide de Vertex ML Metadata, consultez la section Utiliser Vertex ML Metadata pour suivre la traçabilité des artefacts de ML.
Pour plus d'informations sur l'utilisation des exécutions de pipeline pour tester votre workflow de ML à l'aide des tests Vertex AI, consultez la section Ajouter des exécutions de pipeline aux tests.
Suivre la traçabilité des artefacts de ML
Une exécution de pipeline contient plusieurs artefacts et paramètres, y compris des métadonnées de pipeline. Pour comprendre les changements dans les performances ou la justesse de votre système de ML, vous devez analyser les métadonnées et la traçabilité des artefacts de ML pour vos exécutions de pipeline. La traçabilité d'un artefact de ML comprend tous les facteurs qui ont contribué à sa création, ainsi que les métadonnées et les références aux artefacts qui en découlent.
Les graphiques de traçabilité vous aident à analyser la cause première en amont et l'impact en aval. Chaque exécution de pipeline génère un graphique de traçabilité des paramètres et des artefacts qui sont saisis dans l'exécution, matérialisés dans l'exécution et générés par l'exécution. Les métadonnées qui composent ce graphe de traçabilité sont stockées dans Vertex ML Metadata. Ces métadonnées peuvent également être synchronisées avec Dataplex.
Utiliser Vertex ML Metadata pour suivre la traçabilité des artefacts de pipeline
Lorsque vous exécutez un pipeline à l'aide de Vertex AI Pipelines, tous les paramètres et métadonnées d'artefact utilisés et générés par le pipeline sont stockés dans Vertex ML Metadata. Vertex ML Metadata est une implémentation gérée de la bibliothèque ML Metadata dans TensorFlow. Elle permet d'enregistrer et d'écrire des schémas de métadonnées personnalisés. Lorsque vous créez une exécution de pipeline dans Vertex AI Pipelines, les métadonnées de l'exécution du pipeline sont stockées dans le magasin de métadonnées par défaut du projet et de la région où vous exécutez le pipeline.
Utiliser Dataplex pour suivre la traçabilité des artefacts de pipeline (preview)
Dataplex est une data fabric globale et multiprojet intégrée à plusieurs systèmes dans Google Cloud, tels que Vertex AI, BigQuery et Cloud Composer. Dans Dataplex, vous pouvez rechercher un artefact de pipeline et afficher son graphique de traçabilité. Notez que pour éviter les conflits d'artefacts, toute ressource cataloguée dans Dataplex est identifiée par un nom complet (FQN).
Pour en savoir plus sur le suivi de la traçabilité des artefacts de ML à l'aide de Vertex ML Metadata et Dataplex, consultez la section Suivre la traçabilité des artefacts de pipelines.
Pour en savoir plus sur la visualisation, l'analyse et la comparaison des exécutions de pipeline, consultez la section Visualiser et analyser les résultats du pipeline. Pour obtenir la liste des types d'artefacts propriétaires définis dans les composants du pipeline Google Cloud, consultez la section Types d'artefacts de métadonnées de ML.
Ajouter des exécutions de pipeline aux tests
Les tests Vertex AI vous permettent de suivre et d'analyser différentes architectures de modèle, hyperparamètres et environnements d'entraînement afin de trouver le meilleur modèle pour votre cas d'utilisation de ML. Après avoir créé une exécution de pipeline de ML, vous pouvez l'associer à un test ou à une exécution de test. Vous pouvez ainsi tester différents ensembles de variables, tels que les hyperparamètres, le nombre d'étapes d'entraînement ou les itérations.
Pour plus d'informations sur les tests de workflows de ML à l'aide des tests Vertex AI, consultez la section Présentation des tests Vertex AI.
Étapes suivantes
Découvrez les interfaces que vous pouvez utiliser pour définir et exécuter des pipelines à l'aide de Vertex AI Pipelines.
Pour commencer, découvrez comment définir un pipeline à l'aide du SDK Kubeflow Pipelines.
Découvrez les bonnes pratiques de mise en œuvre de modèles de ML personnalisés sur Vertex AI.