Bonnes pratiques de mise en œuvre du machine learning sur Google Cloud

Last reviewed 2022-12-15 UTC

Ce document présente les bonnes pratiques de mise en œuvre du machine learning (ML) sur Google Cloud, en se concentrant sur l'utilisation de modèles personnalisés basés sur vos données et votre code. Nous vous fournissons des recommandations pour développer votre modèle personnalisé en prenant en compte chaque étape du workflow de machine learning, le tout avec des liens pertinents pour approfondir certains sujets.

Le diagramme suivant offre une vue d'ensemble des étapes du workflow de ML présentées dans ce document :

  1. Développement du ML
  2. Traitement des données
  3. Entraînement opérationnel
  4. Déploiement et diffusion de modèles
  5. Orchestration des workflows de ML
  6. Organisation des artefacts
  7. Surveillance des modèles

Workflow de machine learning sur Google Cloud

Ce document n'est pas une liste exhaustive de recommandations. Son objectif est d'aider les data scientists et les architectes de machine learning à comprendre l'éventail des activités impliquées dans l'utilisation du ML sur Google Cloud et à planifier en conséquence. Bien que d'autres solutions de développement de ML (comme AutoML) soient mentionnées dans la section Utiliser des outils et produits recommandés, le présent document se concentre sur les modèles personnalisés.

Avant de suivre les bonnes pratiques décrites dans ce document, nous vous recommandons de lire la page Présentation de Vertex AI.

Dans le cadre du présent document, nous partons du principe que :

  • Vous utilisez principalement des services Google Cloud. Les approches hybrides et sur site ne sont pas abordées dans ce document.

  • Vous souhaitez collecter des données d'entraînement et les stocker dans Google Cloud.

  • Vous disposez d'une connaissance intermédiaire du machine learning, des outils de big data et du prétraitement des données. De plus, vous maîtrisez Cloud Storage, BigQuery et les principes de base de Google Cloud.

Si vous débutez avec le machine learning, consultez le Cours d'initiation au Machine Learning de Google.

Le tableau suivant répertorie les outils et les produits recommandés pour chaque phase du workflow de ML décrite dans le présent document :

Étape du workflow du machine learning Outils et produits recommandés
Configurer l'environnement de ML
Développement du ML
Traitement des données
Entraînement opérationnel
Déploiement et inférence d'un modèle
Orchestration des workflows de ML
Organisation des artefacts
Surveillance des modèles

Google propose AutoML, Vertex AI Prévision et BigQuery ML comme alternatives de routine d'entraînement prédéfinies aux solutions de modèles entraînés personnalisés Vertex AI. Le tableau suivant fournit des recommandations sur quand utiliser ces options pour Vertex AI.

Environnement de ML Description Choisissez cet environnement si…
BigQuery ML BigQuery ML regroupe les données, l'infrastructure et les types de modèles prédéfinis dans un seul système.
  • Toutes vos données sont contenues dans BigQuery.
  • Vous êtes à l'aise avec SQL.
  • L'ensemble des modèles disponibles dans BigQuery ML correspond au problème que vous essayez de résoudre.
AutoML (dans le contexte de Vertex AI) AutoML propose des routines d'entraînement pour les problèmes courants tels que la classification d'images et la régression tabulaire. Presque tous les aspects de l'entraînement et de la diffusion d'un modèle (choix d'une architecture, réglage des hyperparamètres et provisionnement des machines) sont gérés pour vous.
Modèles entraînés personnalisés Vertex AI Vertex vous permet d'exécuter vos propres routines d'entraînement personnalisées et de déployer des modèles de n'importe quel type sur une architecture sans serveur. Pour faciliter le développement de votre modèle, Vertex AI offre aussi des services supplémentaires comme le réglage et la surveillance des hyperparamètres. Consultez la section Choisir une méthode d'entraînement personnalisé.
  • Votre problème ne correspond pas aux critères répertoriés dans ce tableau pour BigQuery ML ou AutoML.
  • Vous effectuez déjà une formation sur site ou sur une autre plate-forme cloud, et vous avez besoin de cohérence entre les plates-formes.

Configuration de l'environnement de machine learning

Utiliser les notebooks Vertex AI Workbench pour l'expérimentation et le développement

Quels que soient vos outils, nous vous recommandons d'utiliser les notebooks Vertex AI Workbench pour l'expérimentation et le développement, y compris l'écriture de code, le démarrage des jobs, l'exécution des requêtes et la vérification de l'état. Les instances de notebooks vous permettent d'accéder à tous les services de données et d'intelligence artificielle (IA) de Google Cloud de manière simple et reproductible.

Les instances de notebook vous fournissent également un ensemble sécurisé de logiciels et de modèles d'accès prêts à l'emploi. Il est courant de personnaliser les propriétés Google Cloud telles que le réseau et la gestion de l'identité (Identity and Access Management) ou les propriétés logicielles (via un conteneur) associées à une instance de notebook. Pour en savoir plus, consultez les pages Composants de Vertex AI et Présentation des notebooks gérés par l'utilisateur.

Créez une instance de notebook pour chaque membre de l'équipe.

Créez une instance de notebooks gérés par l'utilisateur pour chaque membre de votre équipe de science des données. Si un membre de l'équipe est impliqué dans plusieurs projets, en particulier des projets ayant des dépendances différentes, nous vous recommandons d'utiliser plusieurs instances Notebooks, en traitant chaque instance comme un espace de travail virtuel. Notez que vous pouvez arrêter les instances de Notebooks lorsqu'elles ne sont pas utilisées.

Stocker vos ressources et artefacts de ML en fonction de votre stratégie d'entreprise

Le contrôle des accès le plus simple consiste à stocker vos ressources et artefacts bruts et Vertex AI, tels que des ensembles de données et des modèles, dans le même projet Google Cloud. Plus généralement, votre entreprise dispose de règles qui contrôlent l'accès. Si vos ressources et artefacts sont stockés dans plusieurs projets, vous pouvez configurer le contrôle des accès entre projets de votre entreprise à l'aide d'Identity and Access Management (IAM).

Utiliser le SDK Vertex AI pour Python

Le Vertex SDK pour Python vous permet d'utiliser Vertex AI avec Python vos workflows de création de modèles de bout en bout. De plus, vous bénéficiez d'une intégration parfaite avec vos frameworks de ML favoris dont PyTorch, TensorFlow, XGBoost et scikit-learn.

Vous pouvez également utiliser la console Google Cloud, qui est compatible avec les fonctionnalités de Vertex AI en tant qu'interface utilisateur via le navigateur.

Développement du machine learning

La section Développement pour le machine learning traite de la préparation des données, des tests et de l'évaluation du modèle. Pour résoudre un problème de machine learning, il est généralement nécessaire de créer et de comparer un grand nombre de modèles différents pour déterminer ce qui fonctionne le mieux.

En règle générale, les data scientists créent des modèles en utilisant des architectures, des ensembles de données d'entrée, des hyperparamètres et du matériel différents. Ils évaluent ensuite les différents modèles en se basant sur les métriques de performances globales (précision et rappel par exemple) pour des ensembles de données de test. Enfin, les data scientists évaluent les performances des modèles par rapport à des sous-ensembles de données spécifiques, à différentes versions de modèle et à différentes architectures de modèle.

Préparer les données d'entraînement

Les données utilisées pour entraîner un modèle peuvent provenir de n'importe quel nombre de systèmes : journaux d'un système de service en ligne, images provenant d'un appareil local ou documents récupérés sur le Web.

Quelle que soit l'origine de vos données, vous devez les extraire des systèmes sources, les stocker (séparément de la source opérationnelle) et les convertir dans un format optimisé pour l'entraînement de ML. Pour en savoir plus sur la préparation des données d'entraînement en vue d'une utilisation avec Vertex AI, consultez la page Préparer des données d'entraînement à utiliser avec Vertex AI.

Stocker des données structurées et semi-structurées dans BigQuery

Si vous utilisez des données structurées ou semi-structurées, nous vous recommandons de stocker toutes les données dans BigQuery, en suivant les recommandations de BigQuery pour la Structure des projets Dans la plupart des cas, vous pouvez également stocker des données intermédiaires traitées dans BigQuery. Pour une vitesse maximale, il est préférable de stocker des données matérialisées plutôt que d'utiliser des vues ou des sous-requêtes pour les données d'entraînement.

Lire des données dans BigQuery en utilisant l'API BigQuery Storage. Pour le suivi des artefacts, envisagez d'utiliser un ensemble de données tabulaires géré. Le tableau suivant répertorie les outils Google Cloud qui facilitent l'utilisation de l'API :

Si vous utilisez : Utilisez cet outil Google Cloud
TensorFlow ou Keras Lecteur tf.data.dataset pour BigQuery
TFX Client BigQuery
Dataflow Connecteur d'E/S BigQuery
Tout autre framework (tel que PyTorch, XGBoost ou scilearn-kit) Bibliothèque cliente BigQuery pour Python

Stocker les données image, vidéo, audio et non structurées dans Cloud Storage

Stockez ces données dans des formats de conteneurs volumineux sur Cloud Storage. Cela s'applique aux fichiers TFRecord partitionnés si vous utilisez TensorFlow, ou aux fichiers Avro si vous utilisez un autre framework.

Combinez de nombreuses images, vidéos ou clips audio individuels sous forme de fichiers volumineux afin d'améliorer votre débit de lecture et d'écriture dans Cloud Storage. Optez pour des fichiers d'au moins 100 Mo et entre 100 et 10 000 partitions.

Pour activer la gestion des données, regroupez les partitions en utilisant des buckets et répertoires Cloud Storage. Pour en savoir plus, consultez la page Qu'est-ce que Cloud Storage ?

Utilisez Vertex Data Labeling pour les données non structurées.

Vous devrez peut-être créer des étiquettes pour vos données, en particulier pour les données non structurées. Pour ce faire, utilisez Vertex Data Labeling. Vous pouvez embaucher vos propres étiqueteurs et utiliser le logiciel de Google Cloud pour gérer leur travail, ou simplement faire appel aux étiqueteurs internes de Google pour votre tâche. Pour en savoir plus, consultez la section Demander l'ajout d'étiquettes aux données.

Utiliser Vertex AI Feature Store avec les données structurées

Lorsque vous entraînez un modèle avec des données structurées et quel que soit l'endroit où vous entraînez ce modèle, procédez comme suit :

  1. Effectuez une recherche dans Vertex AI Feature Store pour déterminer si les caractéristiques existantes répondent à vos besoins.

    1. Ouvrez Vertex AI Feature Store et effectuez une recherche pour voir si une caractéristique existe déjà pour votre cas d'utilisation ou pour le signal que vous souhaitez transmettre au modèle.

    2. Si vous souhaitez utiliser des caractéristiques de Vertex AI Feature Store, récupérez-les pour vos étiquettes d'entraînement en utilisant la fonction de diffusion par lots de Vertex AI Feature Store.

  2. Créer une caractéristique Si Vertex AI Feature Store ne propose pas les caractéristiques dont vous avez besoin, créez-en une nouvelle en utilisant les données de votre lac de données.

    1. Récupérez les données brutes de votre lac de données et écrivez vos scripts pour extraire et traiter les caractéristiques.

    2. Associez les valeurs de caractéristiques que vous avez extraites de Vertex AI Feature Store aux nouvelles valeurs de caractéristiques que vous avez créées à partir du lac de données. La fusion de ces valeurs de caractéristiques permet de créer l'ensemble de données d'entraînement.

    3. Configurez une tâche périodique pour calculer les valeurs mises à jour de la nouvelle caractéristique. Une fois que vous avez déterminé qu'une caractéristique est utile et que vous souhaitez la faire passer en production, configurez une tâche périodique à un intervalle adapté pour calculer les valeurs mises à jour de cette caractéristique et l'intégrer dans Vertex AI Feature Store. En ajoutant votre nouvelle caractéristique à Vertex AI Feature Store, vous disposez automatiquement d'une solution permettant de la diffuser en ligne (pour les cas d'utilisation de prédictions en ligne) et de la partager avec d'autres utilisateurs de l'entreprise qui peuvent l'utiliser pour leurs propres modèles de ML.

Pour en savoir plus, consultez Vertex AI Feature Store.

Éviter de stocker des données dans un stockage de blocs

Évitez de stocker des données dans un stockage de blocs (système de fichiers réseau ou disque dur virtuel par exemple). Ces outils sont plus difficiles à gérer que Cloud Storage ou BigQuery et posent souvent des problèmes de réglage des performances. De même, évitez de lire les données directement à partir de bases de données telles que Cloud SQL. Stockez plutôt les données dans BigQuery et Cloud Storage. Pour plus d'informations, consultez la documentation de Cloud Storage et la section Présentation du chargement de données pour BigQuery.

Utiliser Vertex AI TensorBoard et Tests Vertex AI pour analyser les tests

Lorsque vous développez des modèles, Vertex AI TensorBoard vous permet de trouver et de comparer des tests spécifiques (tests basés sur des hyperparamètres par exemple). Vertex AI TensorBoard est un service Vertex AI TensorBoard géré par l'entreprise offrant une solution économique et sécurisée qui permet aux data scientists et aux chercheurs en ML de collaborer facilement en facilitant le suivi, la comparaison et le partage de leurs tests. Vertex AI TensorBoard permet d'effectuer un suivi des métriques de test (pertes et précision au fil du temps par exemple), de visualiser le graphe du modèle, de projeter les représentations vectorielles continues dans un espace de dimension inférieure et bien plus encore.

Utilisez Vertex AI Tests pour effectuer l'intégration à Vertex ML Metadata, et pour créer des journaux et créer des liaisons entre les paramètres, les métriques et les artefacts d'ensemble de données et de modèle.

Entraîner un modèle dans une instance de notebook pour de petits ensembles de données

L'entraînement d'un modèle dans une instance Notebooks peut être suffisant pour les petits ensembles de données ou pour des sous-ensembles d'un ensemble de données plus volumineux. Il peut s'avérer plus pratique d'utiliser le service d'entraînement pour les ensembles de données plus volumineux ou pour l'entraînement distribué. Cependant, même pour de petits ensembles de données, il est recommandé d'utiliser le service d'entraînement Vertex AI pour faire passer l'entraînement en production lorsqu'il est effectué de manière planifiée ou en réponse à l'arrivée de données supplémentaires.

Optimiser la précision des prédictions de votre modèle grâce aux réglages d'hyperparamètres

Pour optimiser la précision prédictive de votre modèle, utilisez le réglage d'hyperparamètres, l'outil d'amélioration automatique de modèle fourni par Vertex AI Training, qui exploite l'infrastructure de traitement de Google Cloud et Vertex AI Vizier pour tester différentes configurations d'hyperparamètres lors de l'entraînement de votre modèle. Les réglages d'hyperparamètres éliminent la nécessité d'ajuster manuellement les hyperparamètres sur de nombreux entraînements pour obtenir les valeurs optimales.

Pour en savoir plus sur les réglages d'hyperparamètres, consultez les pages Présentation des réglages d'hyperparamètres et Utiliser les réglages d'hyperparamètres.

Utiliser une instance de notebook pour comprendre vos modèles

Utilisez une instance de notebook pour évaluer et comprendre vos modèles. Outre les bibliothèques courantes intégrées telles que scikit-learn, les instances de notebook incluent l'outil de simulation WIT (What-If Tool) et l'outil d'interprétabilité du langage (LIT). WIT vous permet d'analyser vos modèles de manière interactive pour détecter les biais à l'aide de plusieurs techniques tandis que LIT vous permet de comprendre le comportement d'un modèle de traitement du langage naturel à l'aide d'un outil visuel, interactif et extensible.

Utiliser les attributions de caractéristiques pour mieux comprendre les prédictions des modèles

Vertex Explainable AI fait partie intégrante du processus de mise en œuvre du ML et fournit des attributions de caractéristiques qui permettent de mieux comprendre les prédictions générées par les modèles. En décrivant en détail l'importance de chaque caractéristique qu'un modèle utilise comme entrée pour effectuer une prédiction, Vertex Explainable AI vous aide à mieux comprendre le comportement de votre modèle pour plus de confiance.

Vertex Explainable AI est compatible avec les modèles entraînés à partir de données tabulaires ou de données d'image.

Pour en savoir plus sur Vertex Explainable AI, consultez les pages suivantes :

Traitement des données

L'approche recommandée pour le traitement des données dépend du framework et des types de données que vous utilisez. Cette section fournit des recommandations de haut niveau pour les scénarios courants.

Utiliser BigQuery pour traiter des données structurées et semi-structurées

Utilisez BigQuery pour stocker des données structurées ou semi-structurées non traitées. Si vous créez votre modèle à l'aide de BigQuery ML, utilisez les transformations intégrées à BigQuery pour prétraiter les données. Si vous utilisez AutoML, utilisez les transformations intégrées à AutoML pour le prétraitement des données. Si vous créez un modèle personnalisé, l'utilisation des transformations BigQuery peut s'avérer la plus rentable.

Utiliser Dataflow pour traiter des données

Pour de grands volumes de données, envisagez d'utiliser Dataflow, un outil qui exploite le modèle de programmation Apache Beam. Dataflow vous permet de convertir les données non structurées en formats de données binaires tels que TFRecord, ce qui peut améliorer les performances d'ingestion de données pendant le processus d'entraînement.

Utiliser Dataproc pour le traitement des données Spark sans serveur

Si votre organisation a déjà investi dans une codebase et des compétences pour Apache Spark, envisagez d'utiliser Dataproc. Utilisez des scripts Python à usage unique pour les ensembles de données plus petits qui peuvent tenir en mémoire.

Si vous devez effectuer des transformations qui ne peuvent pas être exprimées dans Cloud SQL ou qui sont destinées à être diffusées par flux, vous pouvez utiliser une combinaison de Dataflow et de la bibliothèque pandas.

Utiliser des ensembles de données gérés avec des métadonnées de ML

Une fois vos données prétraitées pour le ML, vous pouvez envisager d'utiliser un ensemble de données géré dans Vertex AI. Les ensembles de données gérés vous permettent de créer un lien clair entre vos données et vos modèles personnalisés, de fournir des statistiques descriptives et de répartir automatiquement ou manuellement les données dans des ensembles d'entraînement, de test et de validation.

Les ensembles de données gérés ne sont pas obligatoires. Vous pouvez choisir de ne pas les utiliser si vous souhaitez mieux contrôler la répartition des données dans votre code d'entraînement, ou si la traçabilité entre vos données et votre modèle n'est pas critique pour votre application.

Pour en savoir plus, consultez les pages Ensembles de données et Utiliser un ensemble de données géré dans une application d'entraînement personnalisée.

Entraînement opérationnel

L'entraînement opérationnel fait référence au processus qui permet de répéter l'entraînement du modèle, d'assurer le suivi des répétitions et de gérer les performances. Bien que les notebooks Vertex AI Workbench soient pratiques pour le développement itératif sur de petits ensembles de données, nous vous recommandons d'opérationnaliser votre code pour le rendre reproductible et le faire évoluer pour de grands ensembles de données. Dans cette section, nous allons vous présenter des outils et des bonnes pratiques pour opérationnaliser vos routines d'entraînement.

Exécuter votre code dans un service géré

Nous vous recommandons d'exécuter votre code dans le service Vertex AI training ou dans Vertex AI Pipelines.

Vous pouvez aussi exécuter votre code directement dans un conteneur Deep Learning VM ou sur Compute Engine. Toutefois, nous ne recommandons pas cette approche car les services gérés Vertex AI bénéficient du scaling automatique et d'autres fonctionnalités d'utilisation intensive plus rentables.

Opérationnaliser l'exécution des tâches à l'aide de pipelines d'entraînement

Créez des pipelines d'entraînement pour opérationnaliser l'exécution des tâches d'entraînement sur Vertex AI. Un pipeline d'entraînement, différent d'un pipeline de ML général, encapsule les tâches d'entraînement. Pour en savoir plus sur les pipelines d'entraînement, consultez les pages Créer des pipelines d'entraînement et Ressource REST : projects.locations.trainingPipelines.

Utiliser les points de contrôle d'entraînement pour enregistrer l'état actuel de votre test

Le workflow de ML décrit dans le présent document suppose que l'entraînement n'est pas interactif. En cas d'échec de votre modèle et en l'absence de points de contrôle, la tâche ou le pipeline d'entraînement s'interrompt et les données sont perdues car le modèle n'est pas en mémoire. Afin d'éviter ce scénario, il est recommandé de toujours utiliser des points de contrôle d'entraînement pour éviter la perte d'état.

Nous vous recommandons d'enregistrer les points de contrôle d'entraînement dans Cloud Storage. Créez un dossier différent pour chaque test ou entraînement.

Pour en savoir plus sur les points de contrôle, consultez les sections Points de contrôle d'entraînement pour TensorFlow Core, Enregistrer et charger un point de contrôle général dans PyTorch et Modèles de conception de machine learning.

Préparer les artefacts de modèle pour la diffusion dans Cloud Storage.

Pour les modèles entraînés personnalisés ou les conteneurs personnalisés, stockez les artefacts de votre modèle dans un bucket Cloud Storage. La région du bucket doit correspondre au point de terminaison régional que vous utilisez en production. Pour en savoir plus, consultez la section Régions des buckets.

Stockez votre bucket Cloud Storage dans le même projet Google Cloud. Si votre bucket Cloud Storage se trouve dans un autre projet Google Cloud, vous devez accorder l'accès à Vertex AI pour lire les artefacts de votre modèle.

Si vous utilisez un conteneur prédéfini Vertex AI, assurez-vous que les noms de fichiers de vos artefacts de modèle correspondent exactement à ces exemples:

  • Modèle SavedModel TensorFlow : saved_model.pb

  • Scikit-learn : model.joblib ou model.pkl

  • XGBoost : model.bst

  • PyTorch: model.pth

Pour savoir comment enregistrer votre modèle sous la forme d'un ou de plusieurs artefacts de modèle, consultez la page Exporter des artefacts de modèle pour la prédiction.

Calculer régulièrement les nouvelles valeurs de caractéristiques

Un modèle utilise souvent un sous-ensemble de caractéristiques provenant de Vertex AI Feature Store. Les caractéristiques de Vertex AI Feature Store seront déjà prêtes pour une diffusion en ligne. Pour toutes les nouvelles fonctionnalités créées par un data scientist à partir de données issues du lac de données, nous vous recommandons de programmer les tâches d'extraction et de traitement de données correspondantes (ou Dataflow dans l'idéal) pour calculer régulièrement les nouvelles valeurs des caractéristiques à un intervalle correspondant à la nécessite d'actualiser les caractéristiques, puis ingérer ces tâches dans Vertex Feature Store pour la diffusion en ligne ou par lot.

Déploiement et inférence d'un modèle

Le déploiement et la diffusion de modèles font référence à la mise en production d'un modèle. La sortie du job d'entraînement est constituée d'un ou de plusieurs artefacts de modèle stockés sur Cloud Storage. Vous pouvez les importer dans Vertex AI Model Registry afin que le fichier puisse être utilisé pour la diffusion de prédictions. Il existe deux types de prédictions : la prédiction par lot permet d'évaluer des lots de données à un rythme régulier, tandis que la prédiction en ligne permet d'évaluer les données en quasi-temps réel pour des applications en ligne. Les deux approches vous permettent d'obtenir des prédictions à partir de modèles entraînés en transmettant des données d'entrée à un modèle de ML hébergé dans le cloud et en obtenant des inférences pour chaque instance de données. Pour en savoir plus, consultez la section Obtenir des prédictions par lot et Obtenir des prédictions en ligne à partir de modèles personnalisés.

Pour réduire la latence des requêtes peer-to-peer entre le client et le serveur de modèles, utilisez des points de terminaison privés Vertex AI. Ceci est particulièrement utile si votre application qui effectue les requêtes de prédiction et le binaire de diffusion se trouve sur le même réseau local. Vous pouvez éviter le surcoût du routage Internet et établir une connexion peer-to-peer à l'aide du cloud privé virtuel.

Spécifier le nombre et les types de machines dont vous avez besoin

Pour le déploiement de votre modèle de prédiction, choisissez du matériel adapté à votre modèle en termes de types de processeur (CPU) pour les machines virtuelles (VM) ou de types d'unité de traitement graphique (GPU). Pour plus d'informations, consultez la page Spécifier des types de machines ou des niveaux d'évolutivité.

Planifier les entrées du modèle

Outre le déploiement du modèle, vous devez déterminer le mode de transmission des entrées au modèle. Si vous utilisez la prédiction par lot, vous pouvez récupérer des données du lac de données ou de l'API de diffusion par lots de Vertex AI Feature Store. Si vous utilisez la prédiction en ligne, vous pouvez envoyer des instances d'entrée au service qui répond en renvoyant vos prédictions. Pour en savoir plus, consultez la section Détails du corps de la réponse.

Si vous déployez votre modèle pour la prédiction en ligne, vous aurez besoin d'un moyen évolutif et à faible latence de diffuser les entrées ou les caractéristiques à transmettre au point de terminaison du modèle. Pour ce faire, vous pouvez utiliser l'un des nombreux services de base de données sur Google Cloud ou l'API Online Serving du Vertex AI Feature Store. Les clients qui appellent le point de terminaison de prédiction en ligne peuvent appeler d'abord la solution de diffusion de caractéristiques pour récupérer les entrées de caractéristique, puis appeler le point de terminaison de prédiction en utilisant ces entrées.

L'ingestion en flux continu vous permet de mettre à jour les valeurs des caractéristiques en temps réel. Cette méthode est utile lorsque la disponibilité des dernières données pour la diffusion en ligne est une priorité. Par exemple, vous pouvez ingérer des données d'événements en streaming et, en quelques secondes, l'ingestion en flux continu Feature Store Vertex AI les rend disponibles pour des scénarios de diffusion en ligne.

Vous pouvez également personnaliser la gestion des entrées (requêtes) et des sorties (réponses) ainsi que leur format depuis et vers votre serveur de modèles à l'aide de routines de prédiction personnalisées.

Activer le scaling automatique

Si vous utilisez le service de prédiction en ligne, nous vous recommandons dans la plupart des cas d'activer l'autoscaling en définissant un nombre minimal et un nombre maximal de nœuds. Pour en savoir plus, consultez la page Obtenir des prédictions pour un modèle entraîné personnalisé. Pour bénéficier d'un contrat de niveau de service à haute disponibilité, paramétrez le scaling automatique avec un minimum de deux nœuds.

Pour en savoir plus sur les options de scaling, consultez la page Scaling des prédictions de machine learning.

Orchestration des workflows de machine learning

Vertex AI fournit une orchestration de workflow de ML qui permet d'automatiser le workflow de ML avec Vertex AI Pipelines, un service entièrement géré qui vous permet de réentraîner vos modèles aussi souvent que nécessaire. Bien que le réentraînement permette à vos modèles de s'adapter aux changements et de maintenir leurs performances au fil du temps, pensez à prendre en compte l'évolution de vos données lors du choix d'une fréquence de réentraînement optimale pour votre modèle.

Les workflows d'orchestration de ML fonctionnent mieux pour les clients qui, après avoir conçu, créé et passé leur modèle en production, souhaitent déterminer ce qui fonctionne et ce qui ne fonctionne pas dans leur modèle de ML. Le code que vous utilisez pour les tests sera probablement utile pour le reste du workflow de ML, avec quelques modifications. Pour utiliser des workflows de ML automatisés, vous devez maîtriser Python, maîtriser une infrastructure de base comme les conteneurs, et maîtriser le ML et la science des données.

Utiliser Vertex AI Pipelines pour orchestrer le workflow du ML

Bien que vous puissiez démarrer manuellement chaque étape de traitement des données, d'entraînement, d'évaluation, de test et de déploiement, nous vous recommandons d'orchestrer le flux à l'aide de Vertex AI Pipelines. Pour plus d'informations, consultez la section MLOps de niveau 1 : automatisation du pipeline de ML.

Vertex AI Pipelines est compatible avec l'exécution de DAG générés par KubeFlow, TensorFlow Extended (TFX) et Airflow.

Utiliser Kubeflow Pipelines pour construire des pipelines flexibles

Le SDK Kubeflow Pipelines est recommandé pour la plupart des utilisateurs qui souhaitent créer des pipelines gérés. Kubeflow Pipelines est flexible et vous permet d'utiliser du code simple pour créer des pipelines. De plus, il intègre les composants de pipeline Google Cloud et vous permet ainsi d'inclure des fonctionnalités de Vertex AI telles qu'AutoML. Pour en savoir plus sur Kubeflow Pipelines, consultez les pages Kubeflow Pipelines et Vertex AI Pipelines.

Organisation des artefacts

Les artefacts sont le résultat de chaque étape individuelle du workflow de ML. Il est recommandé de les organiser de manière standardisée.

Organiser vos artefacts de modèles de ML

Stockez vos artefacts aux emplacements suivants :

Emplacement du stockage Artefacts
Dépôt de contrôle source
  • Notebooks Vertex AI Workbench
  • Code source du pipeline
  • Fonctions de prétraitement
  • Code source du modèle
  • Packages d'entraînement de modèle
  • Fonctions de diffusion
Tests et métadonnées de ML
  • Tests
  • Paramètres
    • Hyperparamètres
    • Métaparamètres
  • Métriques
  • Artefacts d'ensemble de données
  • Artefacts de modèle
  • Métadonnées de pipeline
Vertex AI Model Registry
  • Modèles entraînés
Artifact Registry
  • Conteneurs de pipeline
  • Environnements d'entraînement personnalisés
  • Environnements de prédiction personnalisés
Vertex AI Prediction
  • Modèles déployés

Utiliser un dépôt de gestion de code source pour les définitions de pipeline et le code d'entraînement

Vous pouvez utiliser le contrôle de source pour contrôler les versions de vos pipelines de ML et des composants personnalisés que vous créez pour ces pipelines. Utilisez Artifact Registry pour stocker, gérer et sécuriser vos images de conteneurs Docker sans les rendre publiques.

Surveillance des modèles

Une fois votre modèle déployé en production, vous devez surveiller ses performances pour vous assurer qu'il fonctionne comme prévu. Vertex AI propose deux méthodes pour surveiller vos modèles de ML :

  • Détection des décalages : cette approche s'intéresse au degré de distorsion entre les données d'entraînement du modèle et les données de production.

  • Détection des dérives : ce type de surveillance vous permet de rechercher des écarts dans vos données de production. La dérive se produit lorsque les propriétés statistiques des entrées et de la cible que le modèle tente de prédire évoluent au fil du temps de manière imprévue. Cela peut causer des problèmes, car les prédictions risquent de devenir moins précises au fil du temps.

La surveillance des modèles fonctionne pour les données structurées (caractéristiques numériques et catégorielles par exemple) mais pas pour les données non structurées (comme les images). Pour en savoir plus, consultez la section Surveiller les modèles pour détecter les décalages ou dérives de caractéristiques.

Utiliser la détection des décalages et des dérives

Si possible, utilisez la détection des décalages car le fait de savoir que vos données de production ne correspondent plus aux données d'entraînement vous permet d'être averti lorsque votre modèle ne fonctionne pas comme prévu en production. Pour la détection des décalages, configurez la tâche de surveillance de modèle en fournissant un pointeur vers les données d'entraînement que vous avez utilisées pour entraîner le modèle.

Si vous n'avez pas accès aux données d'entraînement, activez la détection des dérives afin d'être averti lorsque les entrées changent au fil du temps.

Utilisez la détection de dérive pour surveiller si vos données en production dévient au fil du temps. Pour détecter les dérives, activez les fonctionnalités que vous souhaitez surveiller et les seuils correspondants pour déclencher une alerte.

Ajustez les seuils d'alerte.

Ajustez les seuils utilisés pour les alertes en cas de décalage ou de dérive dans vos données. Les seuils d'alerte sont déterminés par le cas d'utilisation, l'expertise de l'utilisateur et les métriques initiales de surveillance du modèle. Pour découvrir comment utiliser la surveillance pour créer des tableaux de bord ou configurer des alertes basées sur les métriques, consultez la page Métriques Cloud Monitoring.

Utiliser les attributions de caractéristiques pour détecter les dérives ou les décalages

Vous pouvez utiliser les attributions de caractéristiques dans Vertex Explainable AI afin de détecter les décalages ou les dérives dans vos données, qui sont un indicateur précoce d'une dégradation des performances du modèle. Par exemple, si votre modèle s'appuie initialement sur cinq caractéristiques pour effectuer des prédictions avec vos données d'entraînement et de test mais qu'il s'appuie sur des caractéristiques complètement différentes une fois en production, les attributions de caractéristiques peuvent vous aider à détecter la dégradation des performances du modèle.

Cela est particulièrement utile pour les types de caractéristiques complexes (représentations vectorielles continues et séries temporelles par exemple) qui sont difficiles à comparer avec les méthodes traditionnelles de décalage et de dérive. Avec Vertex Explainable AI, les attributions de caractéristiques peuvent indiquer une dégradation des performances du modèle.

Étape suivante