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 pour 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 vers une documentation complémentaire.
Le document décrit les étapes suivantes du workflow de ML :
- Développement de ML : concevoir, tester et développer un prototype de modèle pour résoudre un problème métier.
- Préparation des données : nettoyez 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 à signal élevé.
- Entraînement de 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.
- Déploiement et mise en service du modèle : déployez le modèle dans un environnement de production pour permettre aux utilisateurs d'y accéder via une API ou un conteneur.
- Orchestration de workflow de ML : automatisez le pipeline de bout en bout qui planifie le workflow de ML, de l'ingestion des données au déploiement.
- Organisation des artefacts : journalisez et gérez les versions de chaque ensemble de données, fichier de modèle et configuration dans un registre centralisé.
- Surveillance du modèle : utilisez des tableaux de bord pour suivre les performances en temps réel du modèle et la dérive des performances.
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'étendue 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 la section Utiliser les outils et produits recommandés, ce document se concentre principalement sur les modèles entraînés personnalisés.
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 les 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 disposez de connaissances de niveau intermédiaire sur le ML, les outils de big data et le prétraitement des données, et vous maîtrisez les principes fondamentaux de Cloud Storage, BigQuery et Google Cloud.
Si vous débutez avec le ML, consultez le cours d'initiation au ML de Google.
Utiliser les outils et produits recommandés
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 :
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. |
|
| 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 mise en service d'un modèle, tels que 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, tels que le réglage des hyperparamètres et la surveillance, pour faciliter le développement d'un modèle. Consultez Choisir une méthode d'entraînement personnalisé. |
|
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
- Créez une instance Agent Platform Workbench pour chaque membre de l'équipe.
- Stocker vos ressources et artefacts de ML en fonction de votre stratégie d'entreprise.
- Utiliser le SDK Agent Platform pour Python
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 Agent Platform Workbench 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, et 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 Agent Platform Workbench 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 :
Préparer les données d'entraînement.
Stocker des données structurées et semi-structurées dans BigQuery
Stocker les données image, vidéo, audio et non structurées dans Cloud Storage.
Utiliser Agent Platform Feature Store avec des données structurées.
Utiliser Vertex AI TensorBoard et Experiments sur Gemini Enterprise Agent Platform pour analyser les tests
Entraîner un modèle dans une instance Agent Platform Workbench pour les petits ensembles de données
Optimiser la précision des prédictions de votre modèle grâce aux réglages d'hyperparamètres.
Utilisez une instance Agent Platform Workbench pour comprendre vos modèles.
Utiliser les attributions de caractéristiques pour mieux comprendre les prédictions des modèles.
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 de nombreux modèles différents afin de déterminer celui 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. Les data scientists évaluent les modèles obtenus en examinant les métriques de performance globales, telles que la justesse, la précision et le rappel sur les 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… | Utilisez 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 Cloud Storage et des répertoires. Pour en savoir plus, consultez la présentation du produit Cloud Storage.
Utiliser les 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 requête 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. Il existe également des solutions d'étiquetage de données sur la place de marché de la console Google Cloud , telles que Labelbox et Snorkel Flow.
Utiliser Agent Platform Feature Store avec des 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 diffuser des charges de travail nécessitant une faible latence et vous permet de stocker des 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, 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 géré adapté aux entreprises. Il s'agit d'une solution économique et sécurisée conçue pour améliorer la collaboration entre data scientists et chercheurs en ML. Cela facilite le suivi, la comparaison et le partage des 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 Experiments sur Agent Platform 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 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 le réglage d'hyperparamètres, consultez Présentation du réglage 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 Workbench Agent Platform 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 à l'outil 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ésentation de Vertex Explainable AI
- Améliorer les explications
- Exemples de code Vertex Explainable AI
Préparation des données
Nous vous recommandons de suivre les bonnes pratiques suivantes pour la préparation des données :
Utiliser BigQuery pour traiter les données tabulaires
Utiliser Dataflow pour traiter les données
Utiliser Managed Service pour Apache Spark pour le traitement des données Spark sans serveur
Utiliser des ensembles de données gérés avec Vertex ML Metadata
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.
Pour les grands ensembles de données, envisagez d'utiliser le partitionnement dans BigQuery. Cette pratique peut améliorer les performances des requêtes et la rentabilité.
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 de ML :
Exécuter votre code dans un service géré.
Opérationnaliser l'exécution des tâches avec les pipelines d'entraînement.
Utiliser des points de contrôle pour enregistrer l'état actuel de votre test.
Préparer les artefacts de modèle pour la diffusion dans Cloud Storage.
Calculer régulièrement les nouvelles valeurs de caractéristiques.
Dans l'entraînement de 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 aussi exécuter votre code directement dans des Deep Learning VM Images, des 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é de burst.
Opérationnaliser l'exécution des tâches à l'aide de pipelines d'entraînement
Pour opérationnaliser l'exécution des jobs 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 jobs 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 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 la section Régions des buckets.
Cloud Storage est compatible avec la gestion des versions d'objets. Pour limiter les risques de perte ou de 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
Souvent, un modèle utilise 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 toutes les nouvelles caractéristiques créées par un data scientist en sourçant des données à partir 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 d'actualisation des caractéristiques, et de les ingérer dans Agent Platform Feature Store pour une livraison en ligne ou par lot.
Déploiement et exécution d'un modèle
Nous vous recommandons de suivre les bonnes pratiques suivantes pour le déploiement et la mise en service d'un modèle :
Spécifier le nombre et les types de machines dont vous avez besoin.
Planifier les entrées du modèle.
Activer le scaling automatique.
Surveiller les modèles à l'aide de BigQuery ML.
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 diffusion 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 temps quasi 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 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 de processeurs graphiques (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 de Feature Store. Les clients qui appellent le point de terminaison de prédiction en ligne peuvent appeler d'abord la solution de livraison 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. 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 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 le scaling automatique 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 d'infrastructure et d'intégration :
Utilisez Managed Service pour Apache Airflow pour orchestrer les workflows de données hétérogènes et de MLOps d'entreprise de bout en bout.
Utilisez Agent Platform pour orchestrer des workflows de ML sans serveur et natifs des conteneurs.
Utilisez Kubeflow Pipelines pour construire des pipelines de ML flexibles dans Agent Platform.
Utilisez Ray sur Gemini Enterprise Agent Platform pour les workflows de ML distribués.
Google Cloud fournit une suite complète pour l'orchestration des workflows de ML. Pour les processus complexes de bout en bout qui couvrent des tâches d'ingénierie de données telles que l'extraction, le chargement et la transformation (ELT), l'entraînement de ML et les systèmes d'entreprise externes, nous vous recommandons d'utiliser Managed Airflow en tant qu'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. Bien que le réentraînement permette à vos modèles de s'adapter aux changements et de maintenir leurs performances au fil du temps, tenez compte de l'ampleur des changements de vos données lorsque vous choisissez la fréquence optimale de réentraînement des modèles.
Les workflows d'orchestration de ML sont particulièrement 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, moyennant quelques modifications. Pour utiliser des workflows de ML natifs de conteneurs dans Agent Platform Pipelines, vous devez maîtriser Python, maîtriser une infrastructure de base comme les conteneurs, et maîtriser le 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 d'entreprise de bout en bout
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 agit comme un plan de contrôle unifié, ce qui vous permet d'intégrer parfaitement les services Google Cloud (comme BigQuery et Dataflow) à Agent Platform et à des outils d'entreprise tiers.
Au lieu d'écrire des DAG Python Airflow complexes, vous pouvez utiliser les pipelines d'orchestration pour définir votre logique métier et vos dépendances dans un fichier YAML concis. Cette approche déclarative simplifie considérablement l'accès, ce qui permet aux data scientists de créer et de déployer facilement des pipelines en plusieurs étapes sans nécessiter d'expertise approfondie d'Apache Airflow. Pour en savoir plus sur le MLOps sur Orchestration Pipelines, consultez De quelques semaines à quelques 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 Agent Platform Pipelines 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 construire des pipelines conteneurisés. Il fournit également des composants de pipeline Google Cloud , qui vous permettent d'inclure des fonctionnalités d'Agent Platform 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 faire évoluer les workflows de machine learning via un framework de calcul distribué, évolutif et Open Source Python. Ce framework peut vous aider à résoudre les problèmes liés à la présence de divers frameworks distribués dans votre écosystème de ML, tels que 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 :
Organiser vos artefacts de modèles de ML.
Utilisez un dépôt de gestion de code source pour les définitions de pipeline et le code d'entraînement.
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 |
|
| Tests et métadonnées de ML |
|
| Model Registry |
|
| Artifact Registry |
|
| Inférence Gemini Enterprise Agent Platform |
|
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
Utilisez la détection des décalages et des dérives.
Ajuster les seuils d'alerte.
Utiliser les attributions de caractéristiques pour détecter les dérives ou les décalages
Utiliser BigQuery pour la 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. 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 dérives dans vos données produit. 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 décalage des données, qui sont des indicateurs précoces d'une dégradation des performances du modèle. Par exemple, si votre modèle s'appuyait à l'origine sur cinq caractéristiques pour effectuer des prédictions dans vos données d'entraînement et de test, mais qu'il a commencé à s'appuyer sur des caractéristiques entièrement différentes lors de sa mise 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 surveiller les modèles
La surveillance 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 justesse et la fiabilité des modèles dans les applications réelles. 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 de détecter les décalages 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 quand 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 : lorsque 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
- Documentation Agent Platform
- Guide opérationnel de MLOps : un framework pour la livraison continue et l'automatisation du ML
- Pour obtenir une présentation des principes et des recommandations d'architecture spécifiques aux charges de travail d'IA et de ML dans Google Cloud, consultez la perspective IA et ML dans le Well-Architected Framework.
- Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.