Bonnes pratiques pour implémenter le machine learning sur Google Cloud

Last reviewed 2024-09-09 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. Il fournit des recommandations sur la façon de développer un modèle avec entraînement personnalisé tout au long du workflow de ML, y compris des actions clés et des liens pour en savoir plus.

Ce document décrit les étapes suivantes du workflow de ML :

  1. Développement du ML : concevez, testez et développez un prototype de modèle pour résoudre un problème métier.
  2. Préparation des données : éliminez le bruit des données brutes et effectuez l'ingénierie des caractéristiques pour vous assurer que le modèle reçoit des entrées de haute qualité et à fort signal.
  3. Entraînement du ML : exécutez des scripts d'entraînement sur un ensemble de données pour optimiser les paramètres du modèle et ajuster les hyperparamètres jusqu'à ce qu'une métrique de performances réponde à vos exigences.
  4. Déploiement et mise en service de modèles : déployez le modèle dans un environnement de production pour permettre aux utilisateurs d'y accéder via une API ou un conteneur.
  5. Orchestration des workflows de ML : automatisez le pipeline de bout en bout qui planifie le workflow de ML, de l'ingestion des données au déploiement.
  6. Organisation des artefacts : enregistrez et versionnez chaque ensemble de données, fichier de modèle et configuration dans un registre centralisé.
  7. Surveillance des modèles : utilisez des tableaux de bord pour suivre les performances en direct et la dérive des performances du modèle.

Ce document n'est pas une liste exhaustive de recommandations. Son objectif est d'aider les data scientists et les architectes de ML à comprendre l'éventail des activités impliquées dans l'utilisation du ML sur Google Cloud et à planifier en conséquence. Bien que des alternatives de développement de ML telles qu'AutoML soient mentionnées dans Utiliser les outils et produits recommandés, ce document se concentre principalement sur les modèles à entraînement personnalisé.

Avant de suivre les bonnes pratiques de ce document, nous vous recommandons de lire Présentation de Gemini Enterprise Agent Platform.

Ce document suppose que vous avez déjà :

  • Vous utilisez principalement des services Google Cloud . Les approches hybrides et sur site ne sont pas abordées dans ce document.
  • Vous prévoyez de collecter des données d'entraînement et de les stocker dans Google Cloud.
  • Vous possédez des connaissances intermédiaires en ML, en outils de big data et en prétraitement des données, et vous êtes familiarisé avec les principes de base de Cloud Storage, BigQuery et Google Cloud.

Si vous débutez dans le domaine du ML, consultez le cours intensif sur le ML 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 de ML Outils et produits recommandés
Configurer l'environnement de ML
Développement du ML
Préparation des données
Entraînement du ML
Déploiement et diffusion de modèles
Orchestration des workflows de ML
Organisation des artefacts
Surveillance des modèles
Plates-formes Open Source gérées

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

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 de modèles disponibles dans BigQuery ML correspond au problème que vous essayez de résoudre.
AutoML (dans le contexte d'Agent Platform) AutoML fournit 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, comme le choix d'une architecture, le réglage des hyperparamètres et le provisionnement des machines, sont gérés pour vous.
Modèles entraînés personnalisés Agent Platform 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. Agent Platform propose des services supplémentaires, comme le réglage et la surveillance des hyperparamètres, pour faciliter le développement d'un modèle. Consultez Choisir une méthode d'entraînement personnalisé.
  • Votre problème ne correspond pas aux critères listés dans ce tableau pour BigQuery ML ou AutoML.
  • Vous effectuez déjà un entraînement sur site ou sur une autre plate-forme cloud, et vous avez besoin de cohérence entre les plates-formes.

configuration d'un environnement de ML

Nous vous recommandons de suivre les bonnes pratiques suivantes lorsque vous configurez votre environnement de ML :

Utiliser les instances Workbench Agent Platform pour l'expérimentation et le développement

Quels que soient vos outils, nous vous recommandons d'utiliser les instances Agent Platform 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 Workbench Agent Platform vous permettent d'accéder à tous les services de données et d'IA de Google Cloudde manière simple et reproductible.

Les instances Workbench Agent Platform 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ésGoogle Cloud , telles que le réseau et Identity and Access Management, ainsi que les logiciels (via un conteneur) associés à une instance Agent Platform Workbench. Pour en savoir plus, consultez Présentation d'Agent Platform et Présentation des instances Agent Platform Workbench.

Vous pouvez également utiliser Colab Enterprise, un environnement de notebook géré et collaboratif qui utilise les fonctionnalités de sécurité et de conformité de Google Cloud.

Créer une instance Agent Platform Workbench pour chaque membre de l'équipe

Créez une instance Agent Platform Workbench pour chaque membre de votre équipe de data science. 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, en traitant chaque instance comme un espace de travail virtuel. Notez que vous pouvez arrêter les instances Workbench Agent Platform 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 Agent Platform, 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 SDK Agent Platform pour Python vous permet d'utiliser Agent Platform avec Python pour 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 d'Agent Platform en tant qu'interface utilisateur via le navigateur.

Développement du ML

Nous vous recommandons de suivre les bonnes pratiques suivantes pour le développement du ML :

Le développement du ML consiste à préparer les données, à effectuer des tests et à évaluer le modèle. Pour résoudre un problème de ML, 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 Agent Platform, consultez Entraîner et utiliser vos propres modèles.

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… Utiliser cet outil Google Cloud
TensorFlow pour Keras Lecteur tf.data.dataset pour BigQuery
TFX Client BigQuery
Dataflow Connecteur d'E/S Google BigQuery
Tout autre framework (tel que PyTorch, XGBoost ou scikit-learn) Importer des modèles dans BigQuery

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 présentation du produit Cloud Storage.

Utiliser des services d'étiquetage de données avec la console Google Cloud

Vous pouvez créer et importer des données d'entraînement sur la page "Agent Platform" de la console Google Cloud . En utilisant les fonctionnalités de prompt et de réglage de Gemini, vous pouvez gérer les données textuelles avec une classification, une extraction d'entités et une analyse des sentiments personnalisées. Des solutions d'étiquetage de données sont également disponibles sur le Marketplace de la console Google Cloud , comme Labelbox et Snorkel Flow.

Utiliser Agent Platform Feature Store avec les données structurées

Vous pouvez utiliser Feature Store pour créer, gérer, partager et diffuser des caractéristiques de ML dans un emplacement centralisé. Il est optimisé pour les charges de travail qui nécessitent une faible latence et vous permet de stocker les données de caractéristiques dans une table ou une vue BigQuery. Pour utiliser Agent Platform Feature Store, vous devez créer une instance de boutique en ligne et définir vos vues de caractéristiques. BigQuery stocke toutes les données de caractéristiques, y compris les données de caractéristiques historiques, pour vous permettre de travailler hors connexion.

Utiliser Vertex AI TensorBoard et Experiments sur Gemini Enterprise Agent Platform pour analyser les tests

Lorsque vous développez des modèles, utilisez Vertex AI TensorBoard pour visualiser et comparer des tests spécifiques (tests basés sur des hyperparamètres, par exemple). Vertex AI TensorBoard est un service géré adapté aux entreprises. Il s'agit d'une solution économique et sécurisée qui permet aux data scientists et aux chercheurs en ML de collaborer en facilitant le suivi, la comparaison et le partage de leurs tests. Vertex AI TensorBoard permet de suivre les métriques de test telles que les pertes et la justesse au fil du temps, de visualiser le graphique du modèle, de projeter des embeddings dans un espace de dimensions inférieures et bien plus encore.

Utilisez les tests sur Agent Platform pour effectuer l'intégration à Vertex ML Metadata, et pour créer des journaux et 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 Agent Platform Workbench pour de petits ensembles de données

L'entraînement d'un modèle dans une instance Agent Platform Workbench 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 géré Gemini Enterprise Agent Platform 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 maximiser la justesse des prédictions de votre modèle, utilisez le réglage des hyperparamètres. Il s'agit d'un outil d'amélioration de modèles automatisé fourni par le service d'entraînement géré de la plate-forme d'agents Gemini Enterprise 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 du modèle. Le réglage des hyperparamètres élimine la nécessité d'ajuster manuellement les hyperparamètres lors de nombreux entraînements pour obtenir les valeurs optimales.

Pour en savoir plus sur les réglages d'hyperparamètres, consultez Présentation des réglages d'hyperparamètres et Créer un job de réglage d'hyperparamètres.

Utiliser une instance Agent Platform Workbench pour comprendre vos modèles

Utilisez une instance Agent Platform Workbench pour évaluer et comprendre vos modèles. Outre les bibliothèques courantes intégrées telles que scikit-learn, les instances Agent Platform Workbench incluent l'outil de simulation What-if (WIT) et l'outil d'interprétabilité du langage (LIT). Grâce à WIT, vous pouvez analyser vos modèles de manière interactive pour détecter les biais à l'aide de plusieurs techniques. Quant à LIT, il vous aide à 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 d'implémentation 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 en entrée pour effectuer une prédiction, Vertex Explainable AI vous permet de mieux comprendre le comportement de votre modèle et renforce la confiance que vous placez en lui.

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 :

Préparation des données

Nous vous recommandons de suivre les bonnes pratiques suivantes pour préparer vos 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 prétraiter les données. Si vous créez un modèle personnalisé, l'utilisation des transformations BigQuery peut s'avérer la plus rentable.

Pour les grands ensembles de données, envisagez d'utiliser le partitionnement dans BigQuery. Cette pratique peut améliorer les performances et la rentabilité des requêtes.

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. Vous pouvez utiliser Dataflow pour 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 Managed Service pour Apache Spark 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 Managed Service pour Apache Spark. 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 Agent Platform. 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 Ensembles de données et Utiliser un ensemble de données géré dans une application d'entraînement personnalisée.

Entraînement de machine learning

Nous vous recommandons de suivre les bonnes pratiques suivantes pour l'entraînement du ML :

Dans l'entraînement au ML, l'entraînement opérationnel fait référence au processus qui permet de répéter l'entraînement du modèle en assurant le suivi des répétitions et en gérant les performances. Bien que les instances Agent Platform 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 d'entraînement géré Gemini Enterprise Agent Platform ou de l'orchestrer avec Agent Platform Pipelines. Vous pouvez également exécuter votre code directement dans Deep Learning VM Images, conteneurs de deep learning ou Compute Engine. Toutefois, nous vous déconseillons cette approche si vous utilisez des fonctionnalités d'Agent Platform telles que le scaling automatique et la capacité d'utilisation intensive.

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

Pour opérationnaliser l'exécution des tâches d'entraînement sur Agent Platform, vous pouvez créer des pipelines d'entraînement. 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 expérience ou cycle d'entraînement.

Pour en savoir plus sur les points de contrôle, consultez 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 ML.

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 Régions des buckets.

Cloud Storage est compatible avec la gestion des versions d'objets. Pour éviter toute perte ou corruption accidentelle de données, activez la gestion des versions d'objets dans Cloud Storage.

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 à Gemini Enterprise Agent Platform pour lire les artefacts de votre modèle.

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

  • TensorFlow SavedModel : saved_model.pb
  • Scikit-learn : model.joblib
  • 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 d'Agent Platform Feature Store. Les caractéristiques d'Agent Platform Feature Store seront déjà prêtes pour une diffusion en ligne. Pour toute nouvelle caractéristique créée par un data scientist en s'appuyant sur les données du lac de données, nous vous recommandons de planifier les jobs de traitement des données et d'extraction de caractéristiques correspondants (ou idéalement Dataflow) pour calculer régulièrement les nouvelles valeurs de caractéristiques à la cadence requise, en fonction des besoins de fraîcheur des caractéristiques, et de les ingérer dans Agent Platform Feature Store pour le service en ligne ou la livraison par lot.

Déploiement et exécution d'un modèle

Voici les bonnes pratiques pour déployer et servir des modèles :

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 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 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 Agent Platform. Les points de terminaison privés sont particulièrement utiles si votre application qui effectue les requêtes de prédiction et le binaire de diffusion se trouvent 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 livraison par lots de 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 Informations sur le 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 de livraison en ligne du Feature Store. Les clients qui appellent le point de terminaison de prédiction en ligne peuvent d'abord appeler la solution de diffusion de caractéristiques pour récupérer les entrées de caractéristiques, puis appeler le point de terminaison de prédiction en utilisant ces entrées. Vous pouvez diffuser plusieurs modèles sur le même point de terminaison, par exemple pour remplacer progressivement le modèle. Vous pouvez également déployer des modèles sur plusieurs points de terminaison, par exemple en phase de test et en production, en partageant des ressources entre les déploiements.

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 livraison en ligne est importante. 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 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.

Activez 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 Scaling des prédictions de ML.

D'orchestrer les workflows de ML

Nous vous recommandons de suivre les bonnes pratiques suivantes pour l'orchestration des workflows de ML en fonction de vos besoins en termes d'infrastructure et d'intégration :

Google Cloud fournit une suite complète pour l'orchestration des workflows de ML. Pour les processus de bout en bout complexes qui couvrent des tâches d'ingénierie des données telles que l'extraction, le chargement et la transformation (ELT), l'entraînement du ML et les systèmes d'entreprise externes, nous recommandons Managed Airflow comme orchestrateur d'entreprise. Pour les workflows autonomes qui restent strictement dans l'écosystème Agent Platform, Agent Platform Pipelines fournit un service sans serveur entièrement géré qui vous permet de réentraîner vos modèles aussi souvent que nécessaire. Le réentraînement permet à vos modèles de s'adapter aux changements et de maintenir leurs performances au fil du temps. Toutefois, lorsque vous choisissez la cadence de réentraînement optimale pour vos modèles, tenez compte de l'ampleur des changements que vos données subiront.

Les workflows d'orchestration de ML sont plus adaptés aux clients qui ont déjà conçu et créé leur modèle, l'ont mis en production et souhaitent automatiser leur cycle de vie de ML. Le code que vous utilisez pour l'expérimentation sera probablement utile pour le reste du workflow de ML avec quelques modifications. Pour utiliser des workflows de ML natifs aux conteneurs dans Agent Platform Pipelines, vous devez maîtriser Python, comprendre l'infrastructure de base comme les conteneurs et avoir des connaissances en ML. Pour une orchestration plus large sans avoir à gérer des conteneurs personnalisés pour les tâches non liées au ML, Managed Airflow propose plus de 1 000 opérateurs prédéfinis et un framework de configuration accessible basé sur YAML pour les data scientists.

Utiliser Managed Airflow pour les workflows MLOps de bout en bout en entreprise

Bien que vous puissiez démarrer manuellement chaque étape de traitement des données, d'entraînement, d'évaluation et de déploiement, nous vous recommandons d'orchestrer l'ensemble du flux à l'aide de Managed Airflow lorsque votre architecture s'étend sur des systèmes hétérogènes. Managed Airflow est basé sur Apache Airflow. Managed Airflow sert de plan de contrôle unifié, ce qui vous permet d'intégrer de manière fluide les services Google Cloud (comme BigQuery et Dataflow) à Agent Platform et aux outils d'entreprise tiers.

Au lieu d'écrire des DAG Python Airflow complexes, vous pouvez utiliser les Orchestration Pipelines pour définir votre logique métier et vos dépendances dans un fichier YAML concis. Cette approche déclarative abaisse considérablement la barrière à l'entrée, ce qui permet aux data scientists de créer et de déployer facilement des pipelines en plusieurs étapes sans nécessiter une expertise approfondie d'Apache Airflow. Pour en savoir plus sur MLOps sur Orchestration Pipelines, consultez De semaines à minutes : la nouvelle ère agentique des pipelines de données.

Utiliser les pipelines Gemini Enterprise Agent Platform pour les workflows sans serveur intégrés à Agent Platform

Si vos workflows sont entièrement basés sur des conteneurs et s'ils s'exécutent strictement dans l'écosystème Agent Platform, nous vous recommandons d'utiliser les pipelines Agent Platform pour orchestrer le flux. Pour plus d'informations, consultez la section MLOps de niveau 1 : automatisation du pipeline de ML. Agent Platform Pipelines fournit une exécution sans serveur pour les DAG générés par Kubeflow et TensorFlow Extended (TFX).

Utiliser Kubeflow Pipelines pour construire des pipelines flexibles

Nous recommandons le SDK Kubeflow Pipelines à la plupart des utilisateurs qui souhaitent créer des pipelines gérés pour Agent Platform Pipelines. Kubeflow Pipelines est flexible et vous permet d'utiliser du code pour créer des pipelines conteneurisés. Il fournit également des composants de pipeline Google Cloud , qui vous permettent d'inclure des fonctionnalités de la plate-forme d'agents telles qu'AutoML dans votre pipeline. Pour en savoir plus sur Kubeflow Pipelines, consultez Kubeflow Pipelines et Agent Platform Pipelines.

Utiliser Ray sur Gemini Enterprise Agent Platform pour les workflows de ML distribués

Ray fournit un framework distribué général et unifié pour mettre à l'échelle les workflows de machine learning via un framework de calcul Python Open Source, évolutif et distribué. Ce framework peut vous aider à résoudre les problèmes liés à la présence de différents frameworks distribués dans votre écosystème de ML, comme la gestion de plusieurs modes de parallélisme des tâches, de planification et de gestion des ressources. Vous pouvez utiliser Ray sur Gemini Enterprise Agent Platform pour développer des applications sur Agent Platform.

Organisation des artefacts

Nous vous recommandons de suivre les bonnes pratiques suivantes pour organiser vos 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.

Organisez vos artefacts de modèles de ML.

Stockez vos artefacts aux emplacements suivants :

Emplacement du stockage Artefacts
Dépôt de contrôle source
  • Instances Workbench Gemini Enterprise Agent Platform
  • 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
Model Registry
  • Modèles entraînés
Artifact Registry
  • Conteneurs de pipeline
  • Environnements d'entraînement personnalisés
  • Environnements de prédiction personnalisés
Inférence Gemini Enterprise Agent Platform
  • 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 du modèle

Une fois votre modèle déployé en production, vous devez surveiller ses performances pour vous assurer qu'il fonctionne comme prévu. Gemini Enterprise Agent Platform 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 pour détecter la dérive ou le biais des données comme indicateur précoce d'une éventuelle dégradation des performances du modèle. Par exemple, si votre modèle s'appuyait à l'origine sur cinq caractéristiques pour faire des prédictions dans vos données d'entraînement et de test, mais qu'il a commencé à s'appuyer sur des caractéristiques complètement différentes lorsqu'il est passé en production, les attributions de caractéristiques vous aideraient à détecter cette dégradation des performances du modèle.

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

Utiliser BigQuery pour la surveillance des modèles

Le monitoring des modèles BigQuery ML est un ensemble d'outils et de fonctionnalités qui vous aident à suivre et à évaluer les performances de vos modèles de ML au fil du temps. La surveillance des modèles est essentielle pour maintenir la précision et la fiabilité des modèles dans les applications concrètes. Nous vous recommandons de surveiller les problèmes suivants :

  • Décalage des données : ce problème se produit lorsque les distributions des valeurs de caractéristiques diffèrent entre les données d'entraînement et de diffusion. Les statistiques d'entraînement, qui sont enregistrées lors de l'entraînement du modèle, permettent la détection des écarts sans avoir besoin des données d'origine.
  • Dérive des données : les données réelles changent souvent au fil du temps. La surveillance des modèles vous aide à identifier le moment où les données d'entrée que votre modèle voit en production (données de diffusion) commencent à différer considérablement des données sur lesquelles il a été entraîné (données d'entraînement). Cette dérive peut entraîner une dégradation des performances.
  • Écart ou dérive de données avancés : si vous souhaitez obtenir des statistiques précises sur les écarts ou les dérives, surveillez les écarts ou les dérives de données avancés.

Étapes suivantes