Consommer des modèles Machine Learning
Après avoir entraîné un modèle Machine Learning, il est temps de le consommer afin de pouvoir effectuer des prédictions.
Les modèles ML.NET sont sérialisés et enregistrés dans un fichier. Vous pouvez charger le fichier du modèle dans n’importe quelle application .NET et l’utiliser pour effectuer des prédictions à l’aide d’API ML.NET.
Model Builder vous permet de consommer facilement votre modèle dans des applications existantes en utilisant des extraits de code ainsi que dans de nouvelles en utilisant des modèles.
Extrait de code
Si vous disposez d’une application existante sur laquelle vous souhaitez que votre modèle effectue des prédictions, un extrait de code simplifie le processus. Pour utiliser un extrait de code dans votre application :
- Ajoutez une référence à la bibliothèque de classes contentant votre modèle à partir du projet dans lequel vous allez utiliser le modèle.
- Ajoutez l’extrait de code à votre application.
L’extrait de code crée une instance de votre entrée de modèle. Il appelle la méthode Predict
dans le fichier .consumption.cs pour effectuer des prédictions à l’aide des données d’entrée que vous avez fournies.
Modèles de projet
À l’instar du code d’entraînement et de consommation généré automatiquement au cours du processus d’entraînement, Model Builder fournit les modèles suivants afin de générer automatiquement de nouvelles applications .NET dans lesquelles consommer votre modèle.
Application de console
Le modèle d’application console est une application .NET C# qui utilise votre modèle pour effectuer des prédictions. Il contient les fichiers suivants :
- Program.cs : point d’entrée de votre application. Semblable à l’extrait de code, ce fichier crée une instance de l’entrée de votre modèle, utilise la méthode
Predict
dans le fichier .consommation.cs, et affiche le résultat dans la console. - <MODEL-NAME>.mbconfig : le fichier .mbconfig pour votre modèle et le code d’entraînement et de consommation généré. Ces fichiers sont copiés à partir du projet de bibliothèque de classes auquel vous avez initialement ajouté le projet de Machine Learning.
API Web
Le modèle d’API web est un projet ASP.NET Core créé à l’aide du modèle d’application API minimale ASP.NET pour simplifier l’hébergement de votre modèle en tant que service web. Les API web vous offrent la flexibilité nécessaire pour faire des prédictions avec votre modèle sur des requêtes web HTTP provenant de différents clients, tels que des applications de bureau, web et mobiles.
L’API web contient les fichiers suivants :
Program.cs : point d’entrée de votre application. Dans ce fichier, votre application configure le service
PredictionEnginePool
à l’aide de l’injection de dépendances, définit un point de terminaison/predict
unique, et démarre votre application pour écouter les requêtes HTTP entrantes.Dans le cadre de la définition du point de terminaison
predict
, un gestionnaire est également défini. Le gestionnaire utilise le servicePredictionEnginePool
pour faire des prédictions sur les requêtes JSON entrantes qui contiennent les données d'entrée de votre modèle. Le gestionnaire retourne ensuite les résultats de ces prédictions au client.<MODEL-NAME>.mbconfig : le fichier .mbconfig pour votre modèle et le code d’entraînement et de consommation généré. Ces fichiers sont copiés à partir du projet de bibliothèque de classes auquel vous avez initialement ajouté le projet de Machine Learning.
Important
Le projet d’API web n’utilise pas la méthode Predict
dans le fichier .consumption.cs. Au lieu de cela, il inscrit PredictionEnginePool
en tant que service à l’aide de l’injection de dépendances. PredictionEngine
n’est pas thread-safe. Vous devez également créer une instance de celui-ci partout où il est nécessaire dans votre application. À mesure que votre application croît, ce processus peut devenir non gérable.
Pour améliorer les performances et la sécurité des threads, utilisez une combinaison d’injection de dépendances et du service PredictionEnginePool
, qui crée un ObjectPool
d’objets PredictionEngine
à utiliser dans votre application.
Pour en savoir plus sur l’injection de dépendances, consultez Injection de dépendances dans ASP.NET Core.
Dans l’unité suivante, vous utiliserez le modèle que vous avez entraîné pour prédire les défaillances de machine dans une application console .NET.