Qu’est-ce que Model Builder et comment fonctionne-t-il ?

Model Builder ML.NET est une extension graphique intuitive de Visual Studio, qui permet de générer, d’entraîner et de déployer des modèles Machine Learning personnalisés.

Model Builder utilise le Machine Learning automatisé (AutoML) pour explorer différents algorithmes et paramètres de machine learning afin de vous aider à trouver le modèle qui convient le mieux à votre scénario.

Vous n’avez pas besoin d’une expertise en machine learning pour utiliser Model Builder. Vous avez seulement besoin de quelques données et d’un problème à résoudre. Model Builder génère le code pour ajouter le modèle à votre application .NET.

Model Builder Scenarios

Notes

Model Builder est actuellement en préversion.

Création d’un Project Model Builder

Lorsque vous démarrez le Générateur de modèles pour la première fois, il vous demande de nommer le projet. Cela crée un mbconfig fichier de configuration à l’intérieur du projet.

Le fichier effectue le mbconfig suivi de tout ce que vous faites dans Model Builder pour vous permettre de rouvrir la session.

Après l’entraînement, trois fichiers sont générés sous le fichier *.mbconfig :

  • Model.consumption.cs : Ce fichier contient les schémas et ModelOutput les ModelInput schémas ainsi que la Predict fonction générée pour consommer le modèle.
  • Model.training.cs : Ce fichier contient le pipeline d’entraînement (transformations de données, algorithme, hyperparamètres d’algorithme) choisi par Model Builder pour entraîner le modèle. Vous pouvez utiliser ce pipeline pour réinscrire votre modèle.
  • Model.zip : Il s’agit d’un fichier zip sérialisé qui représente votre modèle ML.NET formé.

Lorsque vous créez votre mbconfig fichier, vous êtes invité à entrer un nom. Ce nom est appliqué aux fichiers de consommation, d’entraînement et de modèle. Dans ce cas, le nom utilisé est Model.

Scénario

Vous pouvez soumettre de nombreux scénarios différents à Model Builder pour générer un modèle Machine Learning pour votre application.

Un scénario est une description du type de prédiction que vous voulez faire avec vos données. Par exemple :

  • prédire le volume futur des ventes d’un produit en fonction de l’historique des données des ventes
  • classer des sentiments en positif ou en négatif en fonction d’avis émis par les utilisateurs
  • détecter si une transaction bancaire est frauduleuse
  • rediriger les problèmes indiqués dans les commentaires des clients vers l’équipe appropriée dans votre entreprise

Chaque scénario est mappé à une tâche de Machine Learning différente, notamment :

  • Classification binaire
  • Classification multiclasse
  • régression ;
  • Clustering
  • Détection des anomalies
  • Classement
  • Recommandation
  • Prévisions

Par exemple, le scénario de classification des sentiments comme positifs ou négatifs relèverait de la tâche de classification binaire.

Pour plus d’informations sur les différentes tâches ML prises en charge par ML.NET, consultez les tâches Machine Learning dans ML.NET.

Quel est le bon scénario Machine Learning pour moi ?

Dans Model Builder, vous devez sélectionner un scénario. Le type de scénario dépend du type de prédiction que vous essayez d’effectuer.

Classification des données

La classification est utilisée pour classer les données en catégories.

Diagram showing examples of binary classification including fraud detection, risk mitigation, and application screening

Examples of multiclass classification including document and product classification, support ticket routing, and customer issue prioritization

Prédiction de valeur

La prédiction de valeur, qui se situe sous la tâche de régression, est utilisée pour prédire les nombres.

Diagram showing regression examples such as price prediction, sales forecasting, and predictive maintenance

Classification d’images

La classification d’images est utilisée pour identifier les images de différentes catégories. Par exemple, différents types de terrain ou d’animaux ou de défauts de fabrication.

Vous pouvez utiliser le scénario de classification d’images si vous avez un ensemble d’images et que vous souhaitez classer les images dans différentes catégories.

Détection d’objets

La détection d’objets est utilisée pour localiser et classer des entités dans des images. Par exemple, localiser et identifier des voitures et des personnes dans une image.

Vous pouvez utiliser la détection d’objets lorsque les images contiennent plusieurs objets de différents types.

Recommandation

Le scénario de recommandation prédit une liste d’éléments suggérés pour un utilisateur particulier, en fonction de la façon dont leurs goûts et leurs goûts sont similaires à ceux d’autres utilisateurs.

Vous pouvez utiliser le scénario de recommandation lorsque vous avez un ensemble d’utilisateurs et un ensemble de « produits », tels que des articles à acheter, des films, des livres ou des émissions de télévision, ainsi qu’un ensemble de « évaluations » de ces produits.

Environnement

Vous pouvez entraîner votre modèle Machine Learning localement sur votre machine ou dans le cloud sur Azure, selon le scénario.

Lorsque vous effectuez l’apprentissage localement, vous travaillez dans les contraintes de vos ressources d’ordinateur (processeur, mémoire et disque). Lorsque vous effectuez l’apprentissage dans le cloud, vous pouvez effectuer un scale-up de vos ressources pour répondre aux demandes de votre scénario, en particulier pour les jeux de données volumineux.

La formation locale du processeur est prise en charge pour tous les scénarios à l’exception de la détection d’objets.

La formation GPU locale est prise en charge pour la classification d’images.

La formation Azure est prise en charge pour la classification d’images et la détection d’objets.

Données

Une fois que vous avez choisi votre scénario, Model Builder vous demande de fournir un jeu de données. Les données sont utilisées pour entraîner, évaluer et choisir le meilleur modèle pour votre scénario.

Diagram showing Model Builder steps

Model Builder prend en charge les jeux de données au format .tsv, .csv, .txt et SQL format de base de données. Si vous avez un fichier .txt, les colonnes doivent être séparées par ,, ; ou \t.

Si le jeu de données est constitué d’images, les types de fichiers pris en charge sont .jpg et .png.

Pour plus d’informations, consultez Charger des données d’apprentissage dans Model Builder.

Choisir le résultat à prédire (étiquette)

Un jeu de données est une table de lignes d’exemples et de colonnes d’attributs pour l’entraînement. Chaque ligne a :

  • une étiquette (l’attribut que vous voulez prédire)
  • des caractéristiques (des attributs qui sont utilisés comme entrées pour prédire l’étiquette).

Pour le scénario de prédiction de prix d’une maison, les caractéristiques peuvent être :

  • la superficie de la maison
  • le nombre de chambres et de salles de bain
  • le code postal

L’étiquette est l’historique des prix des maisons pour cette ligne de valeurs correspondant à la superficie, aux chambres et aux salles de bain, et au code postal.

Table showing rows and columns of house price data with features consisting of size rooms zip code and price label

Exemples de jeux de données

Si vous n’avez pas encore vos propres données, essayez un de ces jeux de données :

Scénario Exemple Données Étiquette Fonctionnalités
classification ; Prédire les anomalies de ventes Données de ventes de produits Ventes de produits Month (Mois)
Prédire le sentiment des commentaires du site web Données de commentaires de site web Étiquette (0 quand le sentiment est négatif, 1 quand il est positif) Commentaire, Année
Prédire les transactions frauduleuses de carte de crédit Données de carte de crédit Classe (1 en cas de fraude, sinon 0) Quantité, V1-V28 (caractéristiques anonymisées)
Prédire le type de problème dans un référentiel GitHub Données de problèmes GitHub Domaine Titre, Description
Prédiction de valeur Prédire le prix des courses de taxi Données de courses de taxi Fare Heure, distance du trajet
Classification d’images Prédire la catégorie d’une fleur images fleuries Le type de fleur: daisy, pissenlit, roses, tournesols, tulipes Données d’image elles-mêmes
Recommandation Prédire des films que quelqu’un aimera évaluations de films Utilisateurs, Films Évaluations

Former

Une fois que vous avez sélectionné votre scénario, votre environnement, vos données et votre étiquette, Model Builder entraîne le modèle.

Qu’est-ce que l’entraînement ?

L’entraînement est un processus automatique par lequel Model Builder apprend à votre modèle comment répondre aux questions de votre scénario. Une fois entraîné, votre modèle peut faire des prédictions avec des données en entrée qu’il n’avait pas vues avant. Par exemple, si vous prédisez des prix de maisons et qu’une nouvelle maison apparaît sur le marché, vous pouvez prévoir son prix de vente.

Comme Model Builder utilise le Machine Learning automatisé (AutoML), il ne nécessite aucune entrée ou optimisation de votre part pendant l’entraînement.

Combien de temps doit durer l’entraînement ?

Model Builder utilise AutoML pour explorer plusieurs modèles pour vous trouver le modèle le plus performant.

Les périodes d’entraînement plus longues permettent à AutoML d’explorer davantage de modèles avec un plus large éventail de paramètres.

Le tableau ci-dessous récapitule le temps moyen nécessaire pour obtenir de bonnes performances pour une suite d’exemples de jeux de données sur un ordinateur local.

Taille du jeu de données Durée moyenne d’entraînement
0-10 Mo 10 s
10-100 Mo 10 min
100-500 Mo 30 min
500 - 1 Go 60 min
+ de 1 Go + de 3 heures

Ces chiffres sont uniquement à titre indicatif. La longueur exacte de l’entraînement dépend des éléments suivants :

  • nombre de fonctionnalités (colonnes) utilisées comme entrée du modèle
  • type de colonnes
  • tâche ML
  • le processeur, le disque et les performances de mémoire de la machine utilisée pour l’entraînement

Il est généralement recommandé d’utiliser plus de 100 lignes en tant que jeux de données dont la valeur est inférieure à celle qui peut ne pas produire de résultats.

Évaluer

L’évaluation est le processus de mesure de la qualité de votre modèle. Model Builder utilise le modèle entraîné pour effectuer des prédictions avec de nouvelles données de test, puis mesure la qualité des prédictions.

Model Builder divise les données d’entraînement en un jeu d’entraînement et un jeu de test. Les données d’entraînement (80 %) sont utilisées pour entraîner votre modèle et les données de test (20 %) sont conservées à part pour évaluer votre modèle.

Comment faire comprendre les performances de mon modèle ?

Un scénario est mappé à une tâche Machine Learning. Chaque tâche ML a son propre ensemble de métriques d’évaluation.

Prédiction de valeur

La métrique par défaut pour les problèmes de prédiction de valeur est RSquared, la valeur des plages RSquared comprises entre 0 et 1. 1 est la meilleure valeur possible ou en d’autres termes, plus la valeur de RSquared est proche de 1 plus votre modèle est performante.

D’autres métriques signalées comme la perte absolue, la perte carrée et la perte RMS sont des métriques supplémentaires, qui peuvent être utilisées pour comprendre comment votre modèle fonctionne et le comparer à d’autres modèles de prédiction de valeur.

Classification (2 catégories)

La métrique par défaut pour les problèmes de classification est la précision. La précision définit la proportion de prédictions correctes que votre modèle effectue sur le jeu de données de test. Le plus proche de 100 % ou de 1,0 est le meilleur.

D’autres métriques signalées comme l’AUC (Zone sous la courbe), qui mesurent le taux vrai positif par rapport au taux faux positif doivent être supérieurs à 0,50 pour que les modèles soient acceptables.

Des métriques supplémentaires telles que le score F1 peuvent être utilisées pour contrôler l’équilibre entre précision et rappel.

Classification (3+ catégories)

La métrique par défaut pour la classification multiclasse est Micro Accuracy. Plus la micro précision est proche de 100 % ou de 1,0 plus elle est meilleure.

Une autre métrique importante pour la classification multiclasse est la précision des macros, similaire à la précision de micro-précision plus proche de 1,0, mieux elle est. Un bon moyen de réfléchir à ces deux types de précision est :

  • Micro-précision : à quelle fréquence un ticket entrant est-il classé à l’équipe appropriée ?
  • Précision des macros : Pour une équipe moyenne, à quelle fréquence un ticket entrant est-il correct pour son équipe ?

Plus d’informations sur les métriques d’évaluation

Pour plus d’informations, consultez Métriques d’évaluation des modèles.

Améliorer

Si le score de performances de votre modèle n’est pas aussi bon que souhaité, vous pouvez :

  • Entraîner sur une période de temps plus longue. Avec plus de temps, le moteur d’apprentissage automatique automatisé expérimente plus d’algorithmes et de paramètres.

  • Ajouter des données. Parfois, la quantité de données n’est pas suffisante pour entraîner un modèle Machine Learning de haute qualité. Cela est particulièrement vrai avec les jeux de données qui ont un petit nombre d’exemples.

  • Équilibrer vos données. Pour les tâches de classification, vérifiez que le jeu d’entraînement est équilibré entre les différentes catégories. Par exemple, si vous avez quatre classes pour 100 exemples d’entraînement et que les deux premières classes (étiquette1 et étiquette2) sont utilisées pour 90 enregistrements, mais que les deux autres (étiquette3 et étiquette4) sont utilisées seulement sur les 10 enregistrements restants, l’absence de données équilibrées peut faire que votre modèle aura du mal à prédire correctement étiquette3 ou étiquette4.

Utiliser

Après la phase d’évaluation, Model Builder génère un fichier de modèle et du code que vous pouvez utiliser pour ajouter le modèle à votre application. Les modèles ML.NET sont enregistrés sous la forme d’un fichier zip. Le code pour charger et utiliser votre modèle est ajouté en tant que nouveau projet dans votre solution. Model Builder ajoute également un exemple d’application console que vous pouvez exécuter pour voir votre modèle en action.

En outre, Model Builder vous donne la possibilité de créer des projets qui consomment votre modèle. Actuellement, Model Builder crée les projets suivants :

  • Application console : Crée une application console .NET Core pour effectuer des prédictions à partir de votre modèle.
  • API web : Crée une API web ASP.NET Core qui vous permet de consommer votre modèle sur Internet.

Et ensuite ?

Installer l’extension Visual Studio Model Builder

Essayer le scénario de prédiction des prix ou un autre scénario de régression