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 votre modèle personnalisé en prenant en compte chaque étape du workflow de ML, 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, y compris les produits associés:
- Développement du ML
- Préparation des données
- Entraînement de machine learning
- Déploiement et exécution d'un modèle
- Orchestration des workflows de ML
- Organisation des artefacts
- Surveillance 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 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 principalement 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.
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 souhaitez collecter des données d'entraînement et les stocker dans Google Cloud.
- Vous disposez d'une connaissance intermédiaire du ML, 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 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 :
É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 de 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, Prévision avec Vertex AI 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. |
|
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é. |
|
configuration d'un environnement de ML
Nous vous recommandons de suivre les bonnes pratiques suivantes lorsque vous configurez votre environnement de ML:
- Utiliser les notebooks Vertex AI Workbench pour l'expérimentation et le développement
- Créez une instance Vertex AI Workbench pour chaque membre de l'équipe.
- Stockez vos ressources et artefacts de ML en fonction de votre stratégie d'entreprise.
- Utilisez le SDK Vertex AI pour Python.
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 instances 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 Vertex AI Workbench vous permettent d'accéder à tous les services de données et d'IA de Google Cloud de manière simple et reproductible.
Les instances Vertex AI Workbench vous fournissent également un ensemble sécurisé de logiciels et de modes 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 Vertex AI Workbench. Pour en savoir plus, consultez les pages Présentation de Vertex AI et Présentation des instances Vertex AI 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 Vertex AI Workbench pour chaque membre de l'équipe
Créez une instance Vertex AI 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 Vertex AI 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 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
Utilisez le SDK Vertex AI pour Python, une façon pythonique d'utiliser Vertex AI 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, y compris 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 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 Vertex AI Feature Store avec des données structurées.
Utiliser Vertex AI TensorBoard et Vertex AI Experiments pour analyser les tests
Entraîner un modèle dans une instance Vertex AI 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 Vertex AI Workbench pour comprendre vos modèles.
Utiliser les attributions de caractéristiques pour mieux comprendre les prédictions des modèles.
Le développement de 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 à utiliser avec Vertex AI, consultez la section Entraîner et utiliser vos propres modèles.
Stocker des données structurées et semi-structurées dans BigQuery
Si vous travaillez avec 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 scilearn-kit) | 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 page 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 via la page Vertex AI 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 à l'aide d'une classification, d'une extraction d'entités et d'une analyse des sentiments personnalisées. Le Marketplace de la console Google Cloud propose également des solutions d'étiquetage de données, telles que Labelbox et Snorkel Flow.
Utilisez Vertex AI Feature Store pour les données structurées.
Vous pouvez utiliser Vertex AI Feature Store pour créer, gérer, partager et diffuser des fonctionnalités de ML à partir d'un emplacement central. Il est optimisé pour répondre aux charges de travail nécessitant une faible latence et vous permet de stocker des données de caractéristique dans une table ou une vue BigQuery. Pour utiliser Vertex AI Feature Store, vous devez créer une instance de magasin 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 Vertex AI Experiments 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 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 Vertex AI Experiments 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 Vertex AI Workbench pour de petits ensembles de données
L'entraînement d'un modèle dans une instance Vertex AI 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 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 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 Vertex AI 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 les pages Présentation des réglages d'hyperparamètres et Créer un job de réglage d'hyperparamètres.
Utiliser une instance Vertex AI Workbench pour comprendre vos modèles
Utilisez une instance Vertex AI Workbench pour évaluer et comprendre vos modèles. Outre les bibliothèques courantes intégrées telles que scikit-learn, les instances de Vertex AI 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 Dataproc pour le traitement des données Spark sans serveur
Utilisez 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 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 de machine learning
Nous vous recommandons de suivre les bonnes pratiques suivantes pour l'entraînement du 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, d'assurer le suivi des répétitions et de gérer les performances. Bien que les instances 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 d'orchestrer avec Vertex AI Pipelines. Vous pouvez également exécuter votre code directement dans des images de VM Deep Learning, des conteneurs de deep learning ou Compute Engine. Toutefois, nous vous déconseillons cette approche si vous utilisez des fonctionnalités de Vertex AI 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 Vertex AI, 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 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 la perte ou la 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 à 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
oumodel.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 jobs de traitement des données et d'ingénierie des fonctionnalités correspondants (ou Dataflow dans l'idéal) pour calculer régulièrement les nouvelles valeurs des caractéristiques à un intervalle correspondant à la nécessité 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 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.
Surveillez 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 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 les sections 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. 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 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 livraison 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. 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 de 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 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 Vertex AI 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.
Orchestration des workflows de ML
Nous vous recommandons de suivre les bonnes pratiques suivantes pour l'orchestration des workflows de ML:
Utilisez Vertex AI Pipelines pour orchestrer le workflow de ML.
Utiliser Kubeflow Pipelines pour construire des pipelines flexibles.
Utilisez Ray sur Vertex AI pour les workflows de ML distribués.
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 data science.
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
Nous recommandons le SDK Kubeflow Pipelines 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 pour créer des pipelines. Il intègre également 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.
Utiliser Ray sur Vertex AI 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 défis liés à la présence de plusieurs frameworks distribués dans votre écosystème de ML, par exemple lorsque vous devez gérer plusieurs modes de parallélisme de tâches, de planification et de gestion des ressources. Vous pouvez utiliser Ray sur Vertex AI pour développer des applications sur Vertex AI.
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 |
|
Registre de modèles |
|
Artifact Registry |
|
Vertex AI Prediction |
|
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. 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 (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
La surveillance des modèles BigQuery ML est un ensemble d'outils et de fonctionnalités qui vous aide à 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 du monde réel. Nous vous recommandons de surveiller les problèmes suivants:
- Décalage des données: ce problème se produit lorsque les distributions des valeurs des caractéristiques diffèrent entre les données d'entraînement et les données de diffusion. Les statistiques d'entraînement, qui sont enregistrées lors de l'entraînement du modèle, permettent de détecter les é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 du modèle 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.
- Décalage ou dérive des données avancés: lorsque vous souhaitez obtenir des statistiques précises sur les décalages ou les dérives, surveillez les décalages ou les dérives des données avancés.
Étape suivante
- Documentation Vertex AI
- Guide des professionnels des opérations de machine learning (MLOps): un cadre pour la livraison continue et l'automatisation du ML
- Pour obtenir un aperçu des principes et des recommandations spécifiques aux charges de travail d'IA et de ML dans Google Cloud, consultez la perspective IA et ML dans le framework d'architecture.
- Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.