Workflow de machine learning

AI Platform sous-tend de nombreux éléments du workflow de machine learning (ML). Ce document fournit une description d'introduction du processus de ML global et explique où chaque service AI Platform s'intègre dans le processus.

Pour une présentation des services, consultez la présentation technique d'AI Platform.

Description rapide du machine learning

Le machine learning (ML) est un sous-domaine de l'intelligence artificielle (IA). L'objectif du ML est de faire en sorte que les ordinateurs tirent parti des données que vous leur communiquez. Au lieu d'écrire le code décrivant l'action que doit effectuer l'ordinateur, votre code fournit un algorithme qui s'adapte en fonction d'exemples de comportement souhaité. Le programme qui en résulte, constitué de l'algorithme et des paramètres appris associés, est appelé modèle entraîné.

Workflow de ML

Le diagramme ci-dessous offre une vue d'ensemble des étapes du workflow de ML. Les cases bleues représentent celles pour lesquelles AI Platform fournit des services gérés et des API :

Workflow de ML
Workflow de ML

Pour développer et gérer un modèle adapté à une mise en production, vous devez passer par les étapes suivantes :

  • Collecter et préparer vos données

  • Développer votre modèle

  • Entraîner un modèle de ML sur vos données :

    • Entraîner le modèle
    • Évaluer la précision du modèle
    • Régler les hyperparamètres
  • Déployer le modèle entraîné

  • Envoyer des requêtes de prédiction au modèle :

    • Prédiction en ligne
    • Prédiction par lots
  • Surveiller les prédictions en continu

  • Gérer les modèles et leurs versions

Ces étapes sont itératives. À tout moment au cours du processus, vous pouvez être amené à réévaluer le workflow et à revenir à une étape précédente.

Le reste de cette page décrit les étapes en détail.

Avant de commencer, évaluer le problème

Avant d'envisager de résoudre un problème à l'aide du ML, prenez le temps de réfléchir à ce problème. Posez-vous les questions suivantes :

Avez-vous un problème bien défini à résoudre ?

De nombreuses approches différentes peuvent être adoptées lorsque l'on souhaite utiliser du ML pour détecter des motifs au sein de données. Il est important de définir les informations que vous essayez d'obtenir grâce au modèle, ainsi que les raisons pour lesquelles vous en avez besoin.

Le ML est-il la meilleure solution à ce problème ?

Le ML supervisé (style de ML décrit ici) convient bien à certains types de problèmes.

La résolution d'un problème à l'aide du ML ne s'envisage idéalement que si vous avez accès à un ensemble de données assez important pour entraîner le modèle. Il n'existe aucune règle absolue définissant un volume suffisant de données. Chaque caractéristique (attribut de données) incluse dans le modèle augmente le nombre d'instances (enregistrements de données) nécessaires pour l'entraîner correctement. Consultez les bonnes pratiques de ML pour obtenir des conseils sur l'extraction de caractéristiques.

Vous devez également tenir compte de la nécessité de fractionner votre ensemble de données en trois sous-ensembles : un pour l'entraînement, un pour l'évaluation (ou la validation) et un pour les tests.

Étudiez les autres solutions susceptibles de fournir un moyen plus facile et plus concret de résoudre le problème.

Comment mesurer les performances du modèle ?

L'une des plus grandes difficultés que présente la création d'un modèle de ML est de savoir à quel moment la phase de développement du modèle est terminée. Il est tentant de continuer à affiner perpétuellement le modèle pour en retirer des améliorations de moins en moins perceptibles au niveau de la justesse. Vous devez déterminer les critères de réussite avant de commencer le processus. Définissez le niveau de justesse suffisant pour vos besoins. Étudiez les conséquences du niveau d'erreur correspondant.

Collecter et préparer les données

Vous devez avoir accès à un ensemble de données d'entraînement volumineux, comprenant l'attribut (appelé caractéristique en ML) que vous souhaitez pouvoir déduire (prédire) à partir des autres caractéristiques.

Supposons, par exemple, que votre modèle doive prédire le prix de vente d'une maison. Commencez avec un grand ensemble de données décrivant les caractéristiques des maisons d'un secteur donné, en particulier le prix de vente de chaque maison.

Analyse de données

Après avoir collecté les données, vous devez les analyser et les comprendre, puis les préparer pour être utilisées en entrée du processus d'entraînement. Ainsi, vous pouvez être amené à réaliser certaines des opérations suivantes :

  • Assembler des données provenant de plusieurs sources et les optimiser en un unique ensemble de données.
  • Visualiser les données pour rechercher des tendances.
  • Utiliser des langages et des outils centrés sur les données pour y détecter des motifs.
  • Identifier les caractéristiques au sein de vos données. Les caractéristiques représentent le sous-ensemble d'attributs de données que vous utilisez dans le modèle.
  • Nettoyer les données pour détecter les valeurs anormales causées par des erreurs de saisie ou de mesure.

Prétraitement des données

L'étape de prétraitement consiste à convertir les données valides et nettoyées au format qui convient le mieux aux besoins du modèle. Voici quelques exemples de prétraitement des données :

  • Normalisation des données numériques suivant une échelle commune.
  • Application de règles de mise en forme aux données. Par exemple, suppression du balisage HTML dans une caractéristique au format texte.
  • Réduction de la redondance des données par simplification. Par exemple, conversion d'une caractéristique au format texte en représentation de type sac de mots.
  • Représentation numérique du texte. Par exemple, attribution de valeurs numériques à chaque valeur possible d'une caractéristique catégorique.
  • Attribution de valeurs de clés à des instances de données.

Assistance Google Cloud pour l'exploration et la préparation des données

TensorFlow comporte plusieurs bibliothèques de prétraitement qui peuvent être utilisées avec AI Platform. par exemple tf.transform.

Vous pouvez déployer et diffuser des pipelines scikit-learn sur AI Platform pour appliquer des transformations intégrées à l'entraînement et aux prévisions en ligne. L'application des transformations personnalisées est en version bêta.

Vous pouvez déployer une routine de prédiction personnalisée (version bêta) pour vous assurer qu'AI Platform pré-traite les entrées au moment de la prédiction de la même manière que vous avez pré-traité les données pendant l'entraînement.

En outre, pensez aux services Google Cloud suivants :

  • Les notebooks Vertex AI Workbench gérés par l'utilisateur sont des instances Deep Learning VM Images pré-empaquetées avec des notebooks JupyterLab et optimisées pour les tâches de science des données de deep learning, de la préparation et de l'exploration des données au développement rapide de prototypes.

  • BigQuery est un service d'entreposage de données entièrement géré qui permet d'effectuer des analyses ad hoc sur les données en temps réel à l'aide du langage SQL standard.

  • Cloud Dataproc est un service cloud entièrement géré permettant d'exploiter des clusters Apache Spark et Apache Hadoop.

  • Cloud Dataflow est un service entièrement géré permettant de transformer et d'enrichir les données en mode flux (temps réel) ou lot (historique) avec une fiabilité et une expressivité égales.

  • Dataprep est un service intelligent sans serveur qui permet d'explorer visuellement, de nettoyer et de préparer des données structurées et non structurées.

Coder le modèle

Développez votre modèle à l'aide de techniques de ML établies ou en définissant de nouvelles opérations et approches.

Commencez par vous familiariser avec la procédure à l'aide du guide de démarrage de TensorFlow. Vous pouvez également suivre la documentation scikit-learn ou XGBoost pour créer le modèle. Examinez ensuite quelques exemples de code conçus pour fonctionner avec AI Platform.

Entraîner, évaluer et régler le modèle

AI Engine donne accès aux services nécessaires pour entraîner et évaluer des modèles dans le cloud. De plus, AI Platform offre une fonctionnalité de réglage des hyperparamètres pour optimiser le processus d'entraînement.

Pour entraîner votre modèle, vous l'alimentez en données pour lesquelles vous connaissez déjà la valeur de l'attribut de données cible (caractéristique). Vous exécutez le modèle en lui faisant prédire ces valeurs cibles pour les données d'entraînement, de sorte qu'il ajuste ses paramètres pour mieux s'adapter aux données et ainsi prédire la valeur cible plus précisément.

De même, lors de l'évaluation du modèle entraîné, vous l'alimentez en données incluant les valeurs cibles. Vous comparez les résultats des prédictions fournies par le modèle et les valeurs réelles des données d'évaluation, puis vous utilisez des techniques statistiques adaptées à votre modèle pour mesurer sa réussite.

Il est également possible d'ajuster le modèle en modifiant les opérations ou les paramètres utilisés pour contrôler le processus d'entraînement, tels que le nombre d'étapes d'entraînement à exécuter. Cette technique est connue sous le nom de réglage des hyperparamètres.

Tester le modèle

Au cours de l'entraînement, vous appliquez le modèle à des données connues afin d'ajuster ses paramètres pour en améliorer les résultats. Lorsque les résultats sont suffisamment bons pour les besoins de l'application, vous pouvez déployer, puis tester le modèle sur le système utilisé par votre application.

Pour tester le modèle, exécutez-y des données dans un contexte aussi proche que possible de l'application finale et de l'infrastructure de production.

Utilisez un ensemble de données différent de ceux utilisés pour l'entraînement et l'évaluation. Il convient idéalement d'employer un ensemble de données distinct à chaque test, afin que le modèle soit testé avec des données qu'il n'a jamais traitées auparavant.

Vous pouvez également créer différents ensembles de données de test en fonction de la nature du modèle. Par exemple, vous pouvez utiliser des ensembles de données différents pour des zones ou des moments particuliers, ou vous pouvez diviser les instances pour simuler des données démographiques différentes.

Au cours du processus de test, vous réalisez des ajustements sur les paramètres et hyperparamètres du modèle en fonction des résultats des tests. Cela peut vous amener à découvrir des problèmes dans le modèle ou dans son interaction avec le reste de l'application.

Héberger le modèle dans le cloud

AI Platform fournit les outils permettant d'importer votre modèle ML entraîné dans le cloud, afin que vous puissiez envoyer des demandes de prédiction au modèle.

Pour déployer un modèle entraîné sur AI Platform, vous devez l'enregistrer à l'aide des outils fournis par votre framework de machine learning. Cette opération implique de sérialiser les informations représentant le modèle entraîné dans un fichier que vous pouvez déployer à des fins de prédiction dans le cloud.

Vous importez ensuite le modèle enregistré dans un bucket Cloud Storage et créez une ressource de modèle dans AI Platform en spécifiant le chemin d'accès Cloud Storage du modèle enregistré.

Lorsque vous déployez le modèle, vous pouvez également fournir un code personnalisé (version bêta) pour personnaliser le traitement des requêtes de prédiction.

Envoyer des requêtes de prédiction au modèle

AI Engine donne accès aux services nécessaires pour demander des prédictions à votre modèle dans le cloud.

Il existe deux moyens d'obtenir des prédictions à partir de modèles entraînés : la prédiction en ligne (parfois appelée prédiction HTTP) et la prédiction par lots. Dans les deux cas, vous transmettez les données d'entrée à un modèle de machine learning hébergé sur le cloud et vous obtenez des inférences pour chaque instance de données.

Surveiller le service de prédiction

Surveillez les prédictions en continu. AI Platform fournit des API pour examiner les tâches en cours. En outre, divers outils Google Cloud, tels que Cloud Logging et Cloud Monitoring, permettent de suivre le fonctionnement du modèle déployé.

Gérer les modèles et les versions de modèle

AI Platform fournit plusieurs interfaces pour la gestion du modèle et des versions, y compris une API REST, l'outil de ligne de commande gcloud ai-platform, et la console Google Cloud..

Étapes suivantes