Guide du débutant en AutoML

Introduction

Ce guide du débutant présente AutoML. Pour comprendre les principales différences entre AutoML et l'entraînement personnalisé, consultez la section Choisir une méthode d'entraînement.

Imaginez :

  • vous soyez dans le service marketing d'un marchand en ligne ;
  • vous travaillez sur un projet architectural identifiant des types de bâtiments ;
  • Votre entreprise dispose d'un formulaire de contact sur son site Web.

Traiter manuellement des images et des tableaux est un travail long et fastidieux. Apprendre à un ordinateur à identifier et à signaler automatiquement les contenus.

Image

Vous travaillez avec une commission de conservation du patrimoine souhaitant identifier les quartiers de votre ville qui présentent un style architectural homogène. Vous devez passer au crible des centaines de milliers d'instantanés de maisons. Toutefois, tenter de classifier toutes ces images manuellement est bien trop fastidieux et risque de générer des erreurs. Un stagiaire a commencé à étiqueter plusieurs centaines de ces images il y a quelques mois, mais personne n'a examiné les données. Quel soulagement si vous pouviez apprendre à votre ordinateur à les classifier pour vous !
Introduction

Tabulaire

Vous travaillez dans le service marketing d'un marchand en ligne. Avec votre équipe, vous créez un programme de diffusion d'e-mails personnalisés basé sur des personas de clients. Vous avez créé les personas et les e-mails marketing sont prêts pour diffusion. Vous devez maintenant créer un système qui classe les clients par persona selon les préférences de vente et le comportement d'achat, même pour les nouveaux clients. Pour optimiser l'engagement client, vous souhaitez également prédire leurs habitudes d'achat afin de déterminer le meilleur moment pour envoyer les e-mails.
Présentation du tabulaire

Grâce aux ventes en ligne, vous disposez de données sur vos clients et les achats qu'ils ont effectués. Mais qu'en est-il des nouveaux clients ? Les approches classiques peuvent calculer ces données pour les clients existants ayant de longs historiques d'achats, mais ne sont pas adaptées aux clients dont l'historique est récent. Et si vous pouviez créer un système permettant de prédire ces valeurs et de proposer plus rapidement des programmes marketing personnalisés à tous vos clients ?

Les systèmes de machine learning et Vertex AI constituent des outils adaptés pour répondre à ces questions.

Ce guide décrit le fonctionnement de Vertex AI pour les ensembles de données et les modèles AutoML, et illustre les types de problèmes que Vertex AI résout.

Un mot sur l'équité

Google s'engage à faire avancer la mise en place des pratiques d'IA responsables. À cette fin, nos produits de ML, y compris AutoML, sont conçus selon des principes de base tels que l'équité et le machine learning centré sur l'humain. Pour en savoir plus des bonnes pratiques pour limiter les biais lors de la création de votre propre système de ML, consultez le Guide sur l'inclusion dans le ML – AutoML.

En quoi Vertex AI constitue-t-il un outil adapté pour résoudre ce problème ?

La programmation classique nécessite qu'un programmeur spécifie des instructions pas à pas à suivre par un ordinateur. Il y a tellement de différences de couleur, d'angle, de résolution et d'éclairage qu'il faudrait coder un trop grand nombre de règles pour indiquer à une machine comment prendre la bonne décision. Vous ne sauriez même pas par où commencer. Ou bien, les commentaires des clients utilisent un vocabulaire varié et de nombreuses syntaxes différentes, et présentent une trop grande diversité pour être capturés à l'aide d'un simple ensemble de règles. Si vous essayez de créer des filtres manuels, vous constaterez rapidement que vous ne pouvez pas classer la plupart des commentaires de vos clients. Il vous faut donc un système capable de généraliser un modèle à un grand nombre de commentaires. Nous avons ici affaire à un cas de figure où l'adoption d'une séquence de règles spécifiques vous mènera forcément à une impasse, car elle est condamnée à se développer de manière exponentielle. Vous devez plutôt opter pour un système capable d'apprendre à partir d'exemples.

Heureusement, le machine learning permet de résoudre ces problèmes.

Comment fonctionne Vertex AI ?

Vertex AI implique des tâches d'apprentissage supervisé pour atteindre le résultat souhaité. Les spécificités de l'algorithme et les méthodes d'entraînement varient selon le type de données et le cas d'utilisation. Il existe de nombreuses sous-catégories de machine learning, qui résolvent toutes des problèmes différents et fonctionnent avec des contraintes variées.

Image

Vous entraînez, testez et validez le modèle de machine learning avec des exemples d'images qui sont annotés avec des étiquettes pour la classification, ou annotés avec des étiquettes et des cadres de délimitation pour la détection d'objets. L'apprentissage supervisé vous permet d'entraîner un modèle personnalisé à reconnaître le contenu qui vous intéresse dans des images.

Tabulaire

Vous entraînez un modèle de machine learning à l'aide d'exemples de données. Vertex AI utilise des données tabulaires (structurées) pour entraîner un modèle de machine learning à effectuer des inférences sur de nouvelles données. Une colonne de votre ensemble de données, dénommée cible, indique ce que le modèle va apprendre à prédire. Parmi les autres colonnes de données, certaines contiennent des entrées (dénommées caractéristiques) à partir desquelles le modèle va identifier des tendances pour son apprentissage. Vous pouvez utiliser les mêmes caractéristiques d'entrée pour créer plusieurs types de modèles en modifiant simplement la colonne cible et les options d'entraînement. Dans l'exemple de marketing par e-mail, cela signifie que vous pouvez créer des modèles avec les mêmes caractéristiques d'entrée, mais avec des inférences cibles différentes. Un modèle peut prédire le persona d'un client (cible catégorielle), un autre modèle peut prédire ses dépenses mensuelles (cible numérique), et un autre modèle peut prévoir la demande quotidienne de vos produits pour les trois prochains mois (séries de cibles numériques).
Fonctionnement de la table automl

Workflow de Vertex AI

Vertex AI utilise un workflow de machine learning standard :

  1. Collecte de données : vous déterminez les données dont vous avez besoin pour entraîner et tester votre modèle en fonction du résultat que vous souhaitez obtenir.
  2. Préparation des données : vous vérifiez que vos données sont correctement formatées et étiquetées.
  3. Entraînement : vous définissez les paramètres et construisez votre modèle.
  4. Évaluation : vous examinez les métriques du modèle.
  5. Déploiement et prédiction : vous rendez votre modèle disponible à l'utilisation.

Préparation des données

Avant de commencer à collecter des données, réfléchissez au problème que vous essayez de résoudre. Cela vous permettra de déterminer vos besoins en termes de données.

Évaluer le cas d'utilisation

Commencez par réfléchir à votre problème : quel résultat souhaitez-vous obtenir ?

Image

Lorsque vous constituez un ensemble de données, commencez toujours par définir votre cas d'utilisation. Dans un premier temps, posez-vous les questions suivantes :

  • Quel résultat souhaitez-vous obtenir ?
  • Quels types de catégories ou d'objets devez-vous identifier pour obtenir ce résultat ?
  • En tant qu'humain, est-il possible de reconnaître ces catégories ? La capacité de Vertex AI à gérer et à attribuer à tout moment un panel de catégories est certes supérieure à celle de l'être humain. Toutefois, si ce dernier ne parvient pas à reconnaître une catégorie spécifique, son traitement posera également problème à Vertex AI.
  • Quels types d'exemples refléteraient le mieux le type et la plage de données que votre système détectera et tentera de classer ?

Tabulaire

À quel type de données la colonne cible correspond-elle ? À quelle quantité de données avez-vous accès ? En fonction des réponses, Vertex AI crée le modèle nécessaire pour trouver une solution à votre cas d'utilisation :

  • Un modèle de classification binaire prédit un résultat binaire (l'une des deux classes). Utilisez cette option pour les questions de type "oui" ou "non", par exemple pour prédire si un client achètera ou non un abonnement. Toutes choses égales par ailleurs, un problème de classification binaire nécessite moins de données que les autres types de modèle.
  • Un modèle de classification à classes multiples prédit une classe à partir de trois classes distinctes ou plus. Utilisez cette option pour classer différents éléments. Dans l'exemple de vente au détail, vous souhaitez créer un modèle de classification à classes multiples pour segmenter les clients en différents personnages.
  • Un modèle de prévision prédit une séquence de valeurs. Par exemple, en tant que revendeur, vous souhaitez peut-être prévoir la demande quotidienne de vos produits pour les trois prochains mois afin de pouvoir anticiper convenablement les stocks de produits nécessaires.
  • Un modèle de régression prédit une valeur continue. Dans l'exemple de vente au détail, vous souhaitez créer un modèle de régression afin de prédire le montant qu'un client dépensera le mois prochain.

Collecter les données

Une fois que vous avez établi votre cas d'utilisation, collectez les données qui vous permettront de créer le modèle souhaité.

Image

Collecter suffisamment de données Après que vous avez défini les données dont vous avez besoin, vous devez trouver un moyen de les collecter. Vous pouvez commencer par prendre en compte toutes les données que votre organisation recueille. Vous allez peut-être constater que vous collectez déjà les données pertinentes dont vous avez besoin pour entraîner un modèle. Si vous ne disposez pas de ces données, vous pouvez les obtenir manuellement ou confier cette étape à un fournisseur tiers.

Inclure suffisamment d'exemples étiquetés pour chaque catégorie

Inclure suffisamment de données Pour la classification, vous devez inclure au strict minimum 100 exemples d'images par catégorie ou étiquette sur Vertex AI Training. Plus vous fournissez d'exemples de bonne qualité par étiquette, plus les chances qu'elle soit correctement reconnue augmentent. De manière générale, plus vous incluez de données étiquetées dans le processus d'entraînement, meilleur sera votre modèle. Essayez de fournir au moins 1000 exemples par étiquette.

Répartir équitablement les exemples entre les catégories

Il est important d'inclure un nombre à peu près similaire d'exemples d'entraînement pour chaque catégorie. Même si vous disposez d'une abondance de données pour une étiquette, il est préférable d'avoir une distribution égale pour chaque étiquette. Voici un exemple illustrant ce principe : imaginez que 80 % des images que vous utilisez pour créer votre modèle concernent des maisons individuelles de style contemporain. En présence d'une répartition des étiquettes aussi déséquilibrée, il est très probable que votre modèle apprenne qu'il est judicieux de toujours indiquer cette catégorie de construction pour chaque photo, plutôt que de s'aventurer à essayer de prédire une étiquette beaucoup moins courante. Ce cas de figure est comparable à un questionnaire à choix multiples où presque toutes les bonnes réponses sont "C" et où la personne répondant au questionnaire va très vite déduire qu'elle peut répondre "C" à chaque fois, sans même regarder la question.
Répartir uniformément

Nous savons qu'il n'est pas toujours possible de trouver un nombre à peu près équivalent d'exemples pour chaque étiquette. Pour certaines catégories, il peut être plus difficile de collecter des exemples impartiaux de bonne qualité. Dans ce cas, vous pouvez suivre le principe général suivant : l'étiquette comprenant le moins d'exemples doit compter au moins 10 % du total d'exemples de l'étiquette en comportant le plus. Par exemple, si l'étiquette la plus représentée comporte 10 000 exemples, la moins importante devrait en présenter au moins 1 000.

Tenir compte des variations dans votre espace de problème

Pour des raisons similaires, assurez-vous que vos données tiennent compte de la variété et de la diversité de votre espace de problème. Plus la sélection proposée au processus d'entraînement du modèle est vaste, plus celui-ci sera facile à généraliser pour de nouveaux exemples. Par exemple, si vous essayez de classer les photos de produits électroniques grand public en catégories, plus vous exposerez le modèle à une large variété de produits lors de l'entraînement, plus il saura distinguer la dernière tablette, ou le dernier téléphone ou ordinateur portable, même s'il n'a jamais vu ce produit spécifique auparavant.
Capturer les nuances

Trouver des données correspondant aux résultats souhaités du modèle

Trouver des données correspondant aux résultats souhaités
Recherchez des images qui ressemblent visuellement à celles que vous prévoyez d'utiliser pour vos inférences. Si vous essayez de classer des images de maisons qui ont toutes été photographiées en hiver sous la neige, et que vous utilisez un modèle qui n'a été entraîné que sur des photos prises par temps ensoleillé, vous obtiendrez probablement des performances médiocres. Le fait d'avoir indiqué les tags et classes voulus n'y changera rien, car l'éclairage et les paysages sont trop différents pour donner un résultat optimal. Dans l'idéal, vos exemples d'entraînement sont constitués de données réelles tirées du même ensemble de données que celui sur lequel vous prévoyez d'utiliser le modèle pour la classification.

Tabulaire

ensemble de test Une fois que vous avez établi votre cas d'utilisation, vous devez collecter des données pour entraîner votre modèle. La collecte et la préparation des données sont des étapes essentielles dans la création d'un modèle de machine learning. Les données dont vous disposez permettent de déterminer le type de problèmes que vous pouvez résoudre. De combien de données disposez-vous ? Sont-elles pertinentes pour les questions auxquelles vous tentez de répondre ? Lors de la collecte de données, gardez à l'esprit les considérations suivantes.

Sélectionner les caractéristiques pertinentes

Les caractéristiques sont des attributs d'entrée utilisés pour l'entraînement d'un modèle. Elles lui permettent d'identifier des tendances pour faire des inférences. Leur pertinence par rapport à votre problème est donc importante. Par exemple, pour créer un modèle permettant de prédire si une transaction par carte de crédit est frauduleuse ou non, vous devez créer un ensemble de données contenant les détails de la transaction : acheteur, vendeur, montant, date et heure, et articles achetés. D'autres informations peuvent être utiles, telles que les données historiques de l'acheteur et du vendeur, et la fréquence à laquelle l'article acheté a été impliqué dans une fraude. Existe-t-il d'autres caractéristiques pouvant s'avérer pertinentes ?

Considérons le cas d'utilisation de marketing par e-mail du marchand présenté en introduction. Voici quelques colonnes de caractéristiques dont vous pourriez avoir besoin :

  • Liste des articles achetés (y compris marques, catégories, prix, remises)
  • Quantité d'articles achetés (jour précédent, semaine, mois, année)
  • Somme d'argent dépensée (jour précédent, semaine, mois, année)
  • Pour chaque article, nombre total de produits vendus chaque jour
  • Pour chaque article, le total en stock chaque jour
  • Si vous diffusez ou non une promotion certains jours
  • Profil démographique connu de l'acheteur

Inclure suffisamment de données

Inclure suffisamment de données En général, plus vous avez d’exemples d'entraînement, meilleur sera le résultat. La quantité d'exemples de données nécessaires varie également en fonction de la complexité du problème que vous tentez de résoudre. Vous n'aurez pas besoin d'autant de données pour obtenir un modèle de classification binaire précis comparé à un modèle à classes multiples, car il est moins compliqué de prédire à partir de deux classes qu'à partir de plusieurs.

Si la formule parfaite n'existe pas, le nombre minimal conseillé d'exemples de données est le suivant :

  • Problème de classification : nombre de caractéristiques x 50 lignes
  • Problème de prévision :
    • 5 000 lignes x nombre d'éléments de caractéristiques
    • 10 valeurs uniques dans la colonne "Identifiant de série temporelle" x nombre de caractéristiques
  • Problème de régression : nombre de caractéristiques x 200

Capturer les nuances

Votre ensemble de données doit capturer la diversité de votre espace-problème. Plus un modèle traite des exemples diversifiés au cours de son entraînement, plus il peut facilement se généraliser à des exemples nouveaux ou moins courants. Imaginez que votre modèle de vente au détail n'ait été entraîné que sur les données d'achat de l'hiver. Serait-il capable de prédire correctement les préférences de vêtements ou les comportements d'achat de l'été ?


Préparer vos données

Image

Collecter suffisamment de données Une fois que vous avez déterminé quel procédé vous convient le mieux (une répartition manuelle ou par défaut), vous pouvez ajouter des données dans Vertex AI à l'aide de l'une des méthodes suivantes :

  • Vous pouvez importer des données depuis votre ordinateur ou Cloud Storage dans un format disponible (CSV ou JSON Lines), avec les étiquettes (et les cadres de délimitation, le cas échéant) intégrées. Pour en savoir plus sur le format de fichier d'importation, consultez la section Préparer les données d'entraînement. Si vous souhaitez effectuer une répartition manuelle de votre ensemble de données, vous pouvez spécifier les répartitions dans votre fichier d'importation CSV ou JSON Lines.
  • Si vos données n'ont pas été annotées, vous pouvez importer des images sans étiquette et utiliser la console Google Cloud pour appliquer des annotations. Vous pouvez gérer ces annotations dans plusieurs ensembles d'annotations pour le même ensemble d'images. Par exemple, pour un seul ensemble d'images, vous pouvez disposer d'un ensemble d'annotations avec des informations de cadres de délimitation et d'étiquettes pour effectuer une détection d'objets, et disposer d'un autre ensemble d'annotations avec seulement des annotations d'étiquettes pour la classification.

Tabulaire

Préparer les données Une fois que vous avez identifié les données disponibles, vous devez vérifier qu'elles sont prêtes pour l'entraînement. Si vos données sont biaisées ou comportent des valeurs manquantes ou erronées, cela affectera la qualité du modèle. Considérez ce qui suit avant de commencer à entraîner votre modèle. En savoir plus

Prévenir les fuites de données et le décalage entraînement/diffusion

Une fuite de données se produit lorsque vous utilisez des caractéristiques d'entrée lors de l'entraînement qui "divulguent" des informations sur la cible que vous essayez de prédire, lesquelles ne sont pas disponibles lorsque le modèle est réellement diffusé. Cela peut être détecté lorsqu'une caractéristique fortement corrélée à la colonne cible est incluse parmi les caractéristiques d'entrée. Par exemple, si vous créez un modèle pour prédire si un client souscrira un abonnement le mois prochain et que l'une des caractéristiques d'entrée est un futur paiement d'abonnement de ce client. Les performances du modèle peuvent être très élevées lors des tests, mais de faible niveau lors du déploiement en production, car les informations de paiement d'abonnement futur ne sont pas disponibles au moment de la diffusion.

Le décalage entraînement/diffusion survient lorsque les caractéristiques d'entrée utilisées pendant l'entraînement diffèrent de celles fournies au modèle au moment de la diffusion, ce qui entraîne une baisse de qualité du modèle en production. Par exemple, créer un modèle de prédiction des températures par heure, mais l'entraîner avec des données ne contenant que des températures par semaine. Autre exemple : fournir les notes d'un élève dans les données d'entraînement pour prédire le décrochage scolaire, mais ne pas les inclure au moment de la diffusion.

Il est important de comprendre vos données d’entraînement pour prévenir les fuites de données et éviter tout décalage entraînement/diffusion :

  • Avant d'utiliser des données, veillez à bien comprendre leur signification pour déterminer s'il convient de les utiliser comme caractéristiques.
  • Vérifiez la corrélation dans l'onglet "Entraînement". Les corrélations élevées doivent être signalées pour examen.
  • Décalage entraînement/diffusion : veillez à ne fournir au modèle que des caractéristiques d'entrée disponibles dans un format identique au moment de la diffusion.

Nettoyer les données manquantes, incomplètes et incohérentes

Il est fréquent que des valeurs manquantes et inexactes figurent dans les exemples de données. Prenez le temps d'examiner et, si possible, d'améliorer la qualité de vos données avant de les utiliser pour l'entraînement. Plus il y a de valeurs manquantes, moins les données seront utiles pour l'entraînement d'un modèle de machine learning.

  • Vérifiez les valeurs manquantes dans vos données et corrigez-les si possible. Sinon, vous pouvez laisser la valeur vide si la colonne est définie comme pouvant être vide. Vertex AI peut gérer les valeurs manquantes, mais vous avez plus de chances d'obtenir des résultats optimaux si toutes les valeurs sont disponibles.
  • Pour les prévisions, vérifiez que l'intervalle entre les lignes d'entraînement est cohérent. Vertex AI peut imputer les valeurs manquantes, mais vous avez plus de chances d'obtenir des résultats optimaux si toutes les lignes sont disponibles.
  • Nettoyez vos données en corrigeant ou en supprimant les erreurs ou le bruit. Assurez leur cohérence : vérifiez l'orthographe, les abréviations et le formatage.

Analyser les données après l'importation

Vertex AI fournit une vue d'ensemble de votre ensemble de données après son importation. Examinez l'ensemble de données importé pour vérifier que chaque colonne comporte bien le type de variable correct. Vertex AI détecte automatiquement le type de variable en fonction des valeurs des colonnes, mais il est préférable de les examiner une par une. Vous devez également vérifier le paramètre de valeur vide de chaque colonne, qui détermine si la colonne peut contenir des valeurs manquantes ou NULL.

Entraîner le modèle

Image

Comprendre comment Vertex AI utilise les ensembles de données lors de la création de modèles personnalisés

Votre ensemble de données contient des ensembles d'entraînement, de validation et de test. Si vous ne spécifiez pas cette répartition (consultez la section Préparer vos données), Vertex AI utilise par défaut 80 % de vos images pour l'entraînement, 10 % à des fins de validation et 10 % à des fins de test.
Ensembles de test de validation d'entraînement

Ensemble d'entraînement

ensemble d'entraînement La grande majorité de vos données doit figurer dans l'ensemble d'entraînement. Il s'agit des données auxquelles votre modèle accède pendant l'entraînement : elles sont utilisées pour apprendre les paramètres du modèle, à savoir la pondération des connexions entre les nœuds du réseau de neurones.

Ensemble de validation

ensemble de validation L'ensemble de validation, parfois aussi appelé ensemble "dev", est également utilisé lors du processus d'entraînement. Une fois que le framework d'apprentissage du modèle a incorporé les données d'entraînement à chaque itération du processus, il utilise les performances du modèle sur l'ensemble de validation pour ajuster ses hyperparamètres, qui sont des variables spécifiant sa structure. Si vous essayez d'utiliser l'ensemble d'entraînement pour régler les hyperparamètres, il est fort probable que le modèle finisse par trop se focaliser sur les données d'entraînement. Vous aurez alors du mal à généraliser le modèle à des exemples légèrement différents. L'utilisation d'un ensemble de données relativement nouveau pour affiner la structure du modèle permet une meilleure généralisation du modèle à d'autres données.

Ensemble de test

ensemble de test L'ensemble de test n'est pas du tout impliqué dans le processus d'entraînement. Une fois l'entraînement du modèle terminé, l'utilisation de l'ensemble de test représente un défi complètement nouveau pour le modèle. Ses performances sur l'ensemble de test sont supposées vous fournir une idée plutôt fidèle de son comportement sur des données réelles.

Répartition manuelle

Répartition manuelle Vous pouvez également scinder votre ensemble de données vous-même. Il est judicieux de répartir manuellement vos données lorsque vous souhaitez exercer davantage de contrôle sur le processus, ou si vous souhaitez absolument inclure des exemples spécifiques dans une certaine partie du cycle de vie de l'entraînement d'un modèle.

 

 

Tabulaire

Une fois votre ensemble de données importé, l'étape suivante consiste à entraîner un modèle. Vertex AI génère un modèle de machine learning fiable avec les valeurs d’entraînement par défaut, mais vous pouvez ajuster certains paramètres en fonction de votre cas d'utilisation.

Sélectionnez autant de colonnes de caractéristiques que possible pour l'entraînement, mais examinez chacune d'entre elles afin d'être certain de leur pertinence pour l'entraînement. Tenez compte des éléments suivants dans votre sélection :

  • Ne sélectionnez pas de colonnes de caractéristiques qui produiront du bruit, comme les colonnes d'identifiants attribuées de manière aléatoire contenant une valeur unique pour chaque ligne.
  • Assurez-vous de bien comprendre chaque colonne de caractéristique et les valeurs correspondantes.
  • Si vous créez plusieurs modèles à partir d'un ensemble de données, supprimez les colonnes cibles qui ne font pas partie du problème d'inférence en cours.
  • Rappelez-vous les principes d'équité : entraînez-vous le modèle avec une caractéristique qui pourrait conduire à une prise de décision biaisée ou injuste pour des groupes marginalisés ?

Comment Vertex AI utilise l'ensemble de données

Votre ensemble de données sera divisé en trois : ensemble d'entraînement, ensemble de validation et ensemble de test. La répartition par défaut que Vertex AI applique dépend du type de modèle que vous entraînez. Vous pouvez également spécifier les répartitions (répartitions manuelles) si nécessaire. Pour en savoir plus, consultez la section À propos des répartitions de données pour les modèles AutoML. Ensembles de test de validation d'entraînement

Ensemble d'entraînement

ensemble d'entraînement La grande majorité de vos données doit figurer dans l'ensemble d'entraînement. Il s'agit des données auxquelles votre modèle accède pendant l'entraînement : elles sont utilisées pour apprendre les paramètres du modèle, à savoir la pondération des connexions entre les nœuds du réseau de neurones.

Ensemble de validation

ensemble de validation L'ensemble de validation, parfois aussi appelé ensemble "dev", est également utilisé lors du processus d'entraînement. Une fois que le framework d'apprentissage du modèle a incorporé les données d'entraînement à chaque itération du processus, il utilise les performances du modèle sur l'ensemble de validation pour ajuster ses hyperparamètres, qui sont des variables spécifiant sa structure. Si vous essayez d'utiliser l'ensemble d'entraînement pour régler les hyperparamètres, il est fort probable que le modèle finisse par trop se focaliser sur les données d'entraînement. Vous aurez alors du mal à généraliser le modèle à des exemples légèrement différents. L'utilisation d'un ensemble de données relativement nouveau pour affiner la structure du modèle permet une meilleure généralisation du modèle à d'autres données.

Ensemble de test

ensemble de test L'ensemble de test n'est pas du tout impliqué dans le processus d'entraînement. Une fois l'entraînement du modèle terminé, Vertex AI exploite l'ensemble de test qui représente un défi complètement nouveau pour le modèle. Ses performances sur l'ensemble de test sont supposées vous fournir une idée plutôt fidèle de son comportement sur des données réelles.

 


Évaluer, tester et déployer votre modèle

Évaluer le modèle

Image

Une fois le modèle entraîné, vous recevez un résumé de ses performances. Cliquez sur Évaluation ou Voir l'évaluation complète pour afficher l'analyse détaillée.

Collecter suffisamment de données Le débogage d'un modèle consiste davantage à déboguer les données que le modèle proprement dit. Si, à un moment quelconque, votre modèle commence à se comporter de manière inattendue lorsque vous évaluez ses performances avant et après le passage en production, vous devez revenir en arrière et vérifier les données pour voir où elles pourraient être améliorées.

Quels types d'analyses puis-je effectuer dans Vertex AI ?

Dans la section d'évaluation de Vertex AI, vous pouvez évaluer les performances de votre modèle personnalisé en vous appuyant sur la sortie générée par le modèle sur les exemples de test et sur les principales statistiques d'apprentissage du machine learning. Dans cette section, nous aborderons la signification de chacun des concepts suivants :

  • Les résultats du modèle
  • Le seuil de score
  • Les vrais positifs, les vrais négatifs, les faux positifs et les faux négatifs
  • Précision et rappel
  • Les courbes de précision/rappel
  • Précision moyenne

Comment interpréter la sortie du modèle ?

Vertex AI extrait des exemples de vos données de test pour exposer votre modèle à de tout nouveaux défis. Pour chaque exemple, le modèle génère une série de nombres qui indiquent le degré de confiance selon lequel il associe chaque étiquette à cet échantillon. Si le nombre est élevé, le modèle conclut avec une confiance élevée que l'étiquette doit être attribuée à ce document.
Sortie du modèle

Qu'est-ce que le seuil de score ?

Nous pouvons convertir ces probabilités en valeurs binaires "on" ou "off" (0/1) en définissant un seuil de score. Le seuil de score représente le degré de confiance que le modèle doit avoir pour attribuer une catégorie à un élément de test. Dans la console Google Cloud , le curseur du seuil de score est un outil visuel permettant de tester l'effet de différents seuils pour toutes les catégories de votre ensemble de données, ainsi que pour des catégories individuelles. Si le seuil de score est bas, votre modèle classera davantage d'images, au risque cependant de commettre quelques erreurs de classification. Si le seuil de score est élevé, le modèle classifie moins d'images, mais le risque de commettre des erreurs de classification est moindre. Pour tester ces résultats, vous pouvez modifier les seuils par catégorie dans la console Google Cloud . Toutefois, lorsque vous utilisez votre modèle en production, vous devez appliquer les seuils que vous avez trouvés optimaux de votre côté.

Score seuil

En quoi consistent les vrais positifs, vrais négatifs, faux positifs et faux négatifs ?

Après application du seuil de score, les inférences effectuées par votre modèle sont classées dans l'une des quatre catégories suivantes :
les seuils que vous avez constatés comme étant les plus performants.

Vrais négatifs, positifs

Ces catégories peuvent être utilisées pour calculer la précision et le rappel, des métriques permettant d'évaluer plus facilement l'efficacité d'un modèle.

Que sont la précision et le rappel ?

La précision et le rappel permettent d'évaluer la qualité de la collecte d'informations, ainsi que la quantité d'informations omises par un modèle. La précision indique le nombre d'exemples de test auxquels une étiquette a été correctement attribuée parmi tous les exemples classifiés. Le rappel indique le nombre d'exemples de test auxquels une étiquette donnée a été attribuée, parmi tous les exemples qui auraient dû être classifiés sous cette étiquette.

Précision, rappel

Dois-je privilégier l'optimisation de la précision ou celle du rappel ?

Selon votre cas d'utilisation, il se peut que vous souhaitiez privilégier la précision ou le rappel. Tenez compte des deux cas d'utilisation suivants lorsque vous décidez de l'approche qui vous convient le mieux.

Cas d'utilisation : confidentialité dans les images

Imaginons que vous vouliez créer un système capable de détecter automatiquement les informations sensibles et de les flouter.

Faux positif inoffensif
Dans ce cas, les faux positifs correspondraient à des éléments qui ont été floutés alors que ce n'était pas nécessaire, ce qui peut être ennuyeux, mais non dommageable.

Faux négatif dangereux

À l'inverse, les faux négatifs représenteraient des éléments qui auraient dû être floutés, mais qui ne l'ont pas été, tels que des données de carte de crédit, ce qui risque d'entraîner une usurpation d'identité.

Dans cette situation, il convient d'optimiser le paramètre de rappel. Cette métrique mesure le nombre de documents non détectés sur l'ensemble des inférences effectuées. Un modèle disposant d'un taux de rappel élevé est susceptible d'attribuer une étiquette à des exemples dont la pertinence est faible, ce qui est utile dans les cas où une catégorie contient peu de données d'entraînement.

Imaginons que vous souhaitiez créer un système qui recherche la meilleure photo pour un mot clé donné.

Faux positif

Un faux positif dans ce cas renverrait une image non pertinente. Étant donné que votre produit est censé ne fournir que les images les plus adaptées, ce serait un échec complet.

Faux négatif

Dans ce cas, un faux négatif ne renvoie pas une image pertinente pour une recherche par mot clé. Dans la mesure où il existe des milliers de photos susceptibles de correspondre à de nombreux termes de recherche, ce ne serait pas un problème.

Dans cette situation, il convient d'optimiser le paramètre de précision. Cette métrique mesure l'exactitude de l'ensemble des inférences effectuées. Un modèle disposant d'un taux de précision élevé est susceptible de n'indiquer que les exemples les plus pertinents, ce qui est utile dans les cas où une classe est récurrente dans les données d'entraînement.

Comment utiliser la matrice de confusion ?

matrice de confusion

Comment interpréter les courbes de précision/rappel ?

Courbes de précision et de rappel
L'outil de seuil de score permet de découvrir comment le seuil choisi affecte la précision et le rappel. En faisant glisser le curseur le long de la barre du seuil de score, vous pouvez voir où se situe ce seuil sur la courbe de compromis précision/rappel, ainsi que son effet sur ces paramètres (Pour les modèles multiclasses, les paramètres de précision et de rappel de ces graphiques indiquent que l'unique étiquette utilisée pour calculer ces métriques correspond à celle la mieux notée parmi l'ensemble d'étiquettes renvoyées). Cela permet de trouver un bon équilibre entre les faux positifs et les faux négatifs.

Une fois que vous avez choisi un seuil qui vous semble globalement acceptable pour votre modèle, cliquez sur les étiquettes individuelles afin de voir, pour chacune d'elles, où se situe ce seuil sur la courbe de précision/rappel. Dans certains cas, cela peut impliquer un grand nombre d'inférences incorrectes pour certaines étiquettes, ce qui peut vous conduire à définir un seuil personnalisé pour les classes correspondant à ces étiquettes. Supposons que vous examiniez l'ensemble de données des maisons et que vous remarquiez qu'un seuil de 0,5 dispose d'un taux de précision et de rappel convenable pour tous les types d'images, à l'exception du style "Tudor", probablement en raison du caractère très général de cette catégorie. Vous constatez en effet une multitude de faux positifs pour cette catégorie. Dans ce cas, vous pouvez décider d'utiliser un seuil de 0,8 uniquement pour la catégorie "Tudor", lorsque vous appelez le classificateur pour effectuer des inférences.

Qu'est-ce que la précision moyenne ?

La zone sous la courbe de précision/rappel constitue une métrique utile pour cerner la précision du modèle. Elle permet de mesurer les performances de votre modèle vis-à-vis de l'ensemble des seuils de score. Dans Vertex AI, cette métrique s'appelle la précision moyenne. Plus ce score est proche de 1, meilleures seront les performances de votre modèle sur l'ensemble de test. Pour un modèle effectuant des prédictions de manière aléatoire pour chaque étiquette, la précision moyenne obtenue avoisinerait le score de 0,5.

Tabulaire

Évaluer le modèle Après avoir entraîné le modèle, vous recevez un résumé de ses performances. Les métriques d'évaluation du modèle sont basées sur ses performances par rapport à une tranche de l'ensemble de données (ensemble de données de test). Il existe plusieurs métriques et concepts clés à prendre en compte pour déterminer si votre modèle est prêt à traiter des données réelles.

Métriques de classification

Seuil de score

Examinons un modèle de machine learning qui prédit si un client achètera un blouson l’année prochaine. Quel doit être le degré de certitude du modèle avant de prédire qu'un client donné achètera un blouson ? Dans les modèles de classification, un score de confiance est attribué à chaque inférence, soit une évaluation numérique de la certitude du modèle quant à l'exactitude de la classe prédite. Le seuil de score est la valeur numérique qui détermine le moment où un score donné est converti en une décision positive ou négative, c'est-à-dire la valeur à laquelle le modèle indique "oui, ce score de confiance est suffisamment élevé pour conclure que ce client achètera un blouson au cours de la prochaine année".
Évaluer les seuils

Si votre seuil de score est bas, votre modèle risque de générer des erreurs de classification. C'est pourquoi ce seuil devrait être déterminé en fonction d'un cas d'utilisation donné.

Résultats de l'inférence

Après l'application du seuil de score, les inférences effectuées par votre modèle entrent dans l'une des quatre catégories ci-dessous. Pour comprendre ces catégories, imaginons à nouveau un modèle de classification binaire pour un blouson. Dans cet exemple, la classe positive (ce que le modèle tente de prédire) est que le client achètera un blouson l'année prochaine.

  • Vrai positif : le modèle prédit correctement la classe positive. Le modèle a correctement prédit qu'un client allait acheter un blouson.
  • Faux positif : le modèle prédit incorrectement la classe positive. Le modèle a prédit qu'un client allait acheter un blouson, ce qu'il n'a pas fait.
  • Vrai négatif : le modèle prédit correctement la classe négative. Le modèle a correctement prédit qu'un client n'allait pas acheter de blouson.
  • Faux négatif : le modèle prédit incorrectement une classe négative. Le modèle a prédit qu'un client n'allait pas acheter de blouson, or c'est ce qu'il a fait.

Résultats de prédiction

Précision et rappel

Les métriques de précision et de rappel permettent d'évaluer la capacité de votre modèle à capturer des informations et à en laisser certaines de côté. En savoir plus sur la précision et le rappel.

  • La précision est la fraction des inférences positives qui étaient correctes. Quelle était la fraction d'achats réels de toutes les inférences d'achat d'un client ?
  • Le rappel est la fraction des lignes comportant cette étiquette que le modèle a correctement prédites. Quelle était la fraction de tous les achats clients qui auraient pu être identifiés ?

Selon votre cas d'utilisation, vous devrez peut-être optimiser la précision ou le rappel.

Autres métriques de classification
  • AUC PR : aire sous la courbe de précision/rappel (PR). Cette valeur est comprise entre zéro et un. Plus elle est élevée, plus le modèle est de bonne qualité.
  • AUC ROC : aire sous la courbe ROC (Receiver Operating Characteristic). Cette valeur est comprise entre zéro et un. Plus elle est élevée, plus le modèle est de bonne qualité.
  • Justesse : fraction des inférences de classification produites par le modèle qui étaient correctes.
  • Perte logistique : entropie croisée entre les inférences du modèle et les valeurs cibles. Cette valeur varie de zéro à l'infini. Plus elle est faible, plus le modèle est de bonne qualité.
  • Score F1 : moyenne harmonique de la précision et du rappel. F1 est une métrique utile si vous souhaitez équilibrer précision et rappel, et que les classes sont réparties de façon inégale.

Métriques de prévision et de régression

Une fois votre modèle créé, Vertex AI fournit une variété de métriques standards que vous pouvez examiner. Il n'existe pas de réponse parfaite quant à la façon d'évaluer un modèle. Considérez les métriques d'évaluation dans le contexte de votre type de problème et de ce que vous souhaitez obtenir avec votre modèle. La liste suivante présente certaines métriques que Vertex AI peut fournir.

Erreur absolue moyenne (EAM)

L'EAM correspond à l'écart absolu moyen entre les valeurs cibles et les valeurs prédites. Cette métrique mesure la magnitude moyenne des erreurs dans un ensemble d'inférences, soit la différence entre une valeur cible et une valeur prédite. En outre, comme elle utilise des valeurs absolues, l'EAM ne prend pas en compte l'orientation de la relation et n'indique ni sous-performance, ni surperformance. Lors de l'évaluation de l'EAM, une valeur inférieure indique un modèle de qualité supérieure (0 représentant un prédicteur parfait).

Racine carrée de l'erreur quadratique moyenne (RMSE)

La RMSE correspond à la racine carrée de l'écart moyen au carré entre la valeur cible et la valeur prédite. La RMSE est plus sensible aux anomalies que l'EAM. Par conséquent, si vous craignez des erreurs importantes, cette métrique est sans doute plus utile pour procéder à une évaluation. Comme pour l'EAM, une valeur inférieure indique un modèle de qualité supérieure (0 représentant un prédicteur parfait).

Erreur logarithmique quadratique moyenne (RMSLE)

La RMSLE est équivalente à la RMSE sur une échelle logarithmique. La RMSLE est plus sensible aux erreurs relatives qu'aux erreurs absolues et se focalise davantage sur la sous-performance que sur la surperformance.

Quantile observé (prévisions uniquement)

Pour un quantile cible donné, le quantile observé indique la fraction réelle des valeurs observées en dessous des valeurs d'inférence des quantiles spécifiées. Le quantile observé montre à quel point le modèle est éloigné ou proche du quantile cible. Une différence plus faible entre les deux valeurs indique un modèle de meilleure qualité.

Perte pinball mise à l'échelle (prévision uniquement)

Mesure la qualité d'un modèle à un quantile cible donné. Plus le nombre est faible, plus le modèle est de bonne qualité. Vous pouvez comparer la métrique de perte pinball mise à l'échelle à différents quantiles pour déterminer la justesse relative de votre modèle entre ces différents quantiles.


Tester votre modèle

Image

Pour tester un modèle, Vertex AI utilise 10 % de vos données par défaut (ou le pourcentage de données défini si vous avez choisi de les répartir vous-même). La page "Évaluation" vous indique les performances du modèle sur les données de test. Toutefois, si vous souhaitez contrôler l'intégrité du modèle, plusieurs solutions s'offrent à vous. Le plus simple consiste à importer quelques images sur la page "Déployer et tester" et d'examiner les étiquettes que le modèle choisit pour vos exemples. Elles devraient correspondre à vos attentes. Testez quelques exemples pour chaque type d'image que vous pensez recevoir.

Si vous souhaitez utiliser votre modèle dans vos propres tests automatisés, la page "Déployer et tester" vous indique comment appeler le modèle par programmation.

Tabulaire

L'évaluation des métriques de votre modèle consiste principalement à déterminer s'il est prêt à être déployé, mais vous pouvez également le tester avec de nouvelles données. Importez d'autres données pour vérifier si les inférences du modèle correspondent à vos attentes. En fonction des métriques d'évaluation ou des tests avec de nouvelles données, vous devrez peut-être continuer à améliorer les performances du modèle.

Déployer le modèle

Image

Lorsque vous êtes satisfait des performances de votre modèle, il est temps de l'utiliser dans la réalité. Quel que soit votre cas d'utilisation, qu'il s'agisse de l'appliquer en production ou de traiter une requête d'inférence unique, Selon votre cas d'utilisation, vous pouvez exploiter votre modèle de différentes manières.

Inférence par lot

L'inférence par lot est utile pour effectuer plusieurs requêtes d'inférence à la fois. L'inférence par lot est asynchrone, ce qui signifie que le modèle attend d'avoir traité toutes les requêtes d'inférence avant de renvoyer un fichier JSON Lines contenant les valeurs d'inférence.

Inférence en ligne

Déployez votre modèle pour qu'il traite les requêtes d'inférence à l'aide d'une API REST. L'inférence en ligne est synchrone (en temps réel), ce qui signifie qu'elle renvoie rapidement un résultat d'inférence, mais n'accepte qu'une seule requête d'inférence par appel d'API. L'inférence en ligne est utile si votre modèle est intégré à une application et que certaines parties de votre système dépendent d'une résolution rapide des inférences.

Tabulaire

Lorsque vous êtes satisfait des performances de votre modèle, il est temps de l'utiliser dans la réalité. Quel que soit votre cas d'utilisation, qu'il s'agisse de l'appliquer en production ou de traiter une requête d'inférence unique, vous pouvez exploiter votre modèle de différentes manières.

Inférence par lot

L'inférence par lot est utile pour effectuer plusieurs requêtes d'inférence à la fois. L'inférence par lot est asynchrone, c'est-à-dire que le modèle attend d'avoir traité toutes les requêtes d'inférence avant de renvoyer un fichier CSV ou une table BigQuery contenant les valeurs d'inférence.

Inférence en ligne

Déployez votre modèle pour qu'il traite les requêtes d'inférence à l'aide d'une API REST. L'inférence en ligne est synchrone (en temps réel), ce qui signifie qu'elle renvoie rapidement une inférence, mais n'accepte qu'une seule requête d'inférence par appel d'API. L'inférence en ligne est utile si votre modèle est intégré à une application et que certaines parties de votre système dépendent d'une résolution rapide des inférences.

Effectuer un nettoyage

Pour éviter des frais inutiles, annulez le déploiement de votre modèle lorsqu'il n'est pas utilisé.

Lorsque vous avez terminé d'utiliser votre modèle, supprimez les ressources que vous avez créées pour éviter que des frais inutiles ne soient facturés sur votre compte.