Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un modèle Machine Learning est un fichier formé pour reconnaître certains types de modèles. Vous effectuez l’apprentissage d’un modèle sur un jeu de données et vous lui fournissez un algorithme qui utilise pour raisonner et apprendre à partir de ce jeu de données. Après avoir entraîné le modèle, vous pouvez l’utiliser pour raisonner sur les données qu’elle n’a jamais vues auparavant et effectuer des prédictions sur ces données.
Dans MLflow, un modèle Machine Learning peut inclure plusieurs versions de modèle. Ici, chaque version peut représenter une itération de modèle.
Dans cet article, vous allez apprendre à :
- Créer des modèles Machine Learning dans Microsoft Fabric
- Gérer et suivre les versions du modèle
- Comparer les performances des modèles entre les versions
- Appliquer des modèles pour l'évaluation et l’inférence
Créer un modèle Machine Learning
Dans MLflow, les modèles Machine Learning incluent un format d’empaquetage standard. Ce format permet d’utiliser ces modèles dans différents outils en aval, notamment l’inférence par lots sur Apache Spark. Le format définit une convention pour enregistrer un modèle dans des « saveurs » différentes que les différents outils en aval peuvent comprendre.
Vous pouvez créer directement un modèle Machine Learning à partir de l’interface utilisateur fabric. L’API MLflow peut également créer directement le modèle.
Pour créer un modèle Machine Learning à partir de l’interface utilisateur :
- Sélectionnez un espace de travail de science des données existant ou créez un espace de travail.
- Créez un élément via l’espace de travail ou à l’aide du bouton Créer :
- Après la création du modèle, vous pouvez commencer à ajouter des versions de modèle pour suivre les métriques et paramètres d’exécution. Inscrire ou enregistrer des exécutions d’expérience dans un modèle existant.
Vous pouvez également créer un modèle Machine Learning directement à partir de votre expérience de création avec l’API mlflow.register_model() . Si un modèle Machine Learning inscrit portant le nom donné n’existe pas, l’API la crée automatiquement.
import mlflow
model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")
print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))
Gérer les versions au sein d’un modèle Machine Learning
Un modèle Machine Learning contient une collection de versions de modèle pour simplifier le suivi et la comparaison. Dans un modèle, un scientifique des données peut parcourir différentes versions de modèle pour explorer les paramètres et les métriques sous-jacents. Les scientifiques des données peuvent également effectuer des comparaisons entre les versions de modèle pour déterminer si des modèles plus récents peuvent produire de meilleurs résultats.
Suivre les modèles d'apprentissage automatique
Une version de modèle Machine Learning représente un modèle individuel inscrit pour le suivi.
Chaque version de modèle inclut les informations suivantes :
- Date et heure de création du modèle.
- Nom de l’exécution : identificateur des exécutions de l’expérience utilisées pour créer cette version de modèle spécifique.
- Hyperparamètres : les hyperparamètres sont enregistrés sous forme de paires clé-valeur. Les clés et les valeurs sont des chaînes.
- Métriques : exécutez les métriques enregistrées en tant que paires clé-valeur. La valeur est numérique.
- Schéma/signature du modèle : description des entrées et sorties du modèle.
- Fichiers enregistrés : fichiers journalisés dans n’importe quel format. Par exemple, vous pouvez enregistrer des images, un environnement, des modèles et des fichiers de données.
- Balises : Métadonnées sous forme de paires clé-valeur à exécuter.
Appliquer des balises aux modèles Machine Learning
Le balisage MLflow pour les versions de modèle permet aux utilisateurs d’attacher des métadonnées personnalisées à des versions spécifiques d’un modèle inscrit dans le Registre de modèles MLflow. Ces balises, stockées en tant que paires clé-valeur, permettent d’organiser, de suivre et de différencier les versions de modèle, ce qui facilite la gestion des cycles de vie des modèles. Les balises peuvent être utilisées pour désigner l’objectif du modèle, l’environnement de déploiement ou toute autre information pertinente, ce qui facilite la gestion et la prise de décision plus efficaces au sein des équipes.
Ce code montre comment entraîner un modèle RandomForestRegressor à l’aide de Scikit-learn, journaliser le modèle et les paramètres avec MLflow, puis inscrire le modèle dans le registre de modèles MLflow avec des balises personnalisées. Ces balises fournissent des métadonnées utiles, telles que le nom du projet, le service, l’équipe et le trimestre du projet, ce qui facilite la gestion et le suivi de la version du modèle.
import mlflow.sklearn
from mlflow.models import infer_signature
from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor
# Generate synthetic regression data
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)
# Model parameters
params = {"n_estimators": 3, "random_state": 42}
# Model tags for MLflow
model_tags = {
"project_name": "grocery-forecasting",
"store_dept": "produce",
"team": "stores-ml",
"project_quarter": "Q3-2023"
}
# Log MLflow entities
with mlflow.start_run() as run:
# Train the model
model = RandomForestRegressor(**params).fit(X, y)
# Infer the model signature
signature = infer_signature(X, model.predict(X))
# Log parameters and the model
mlflow.log_params(params)
mlflow.sklearn.log_model(model, artifact_path="sklearn-model", signature=signature)
# Register the model with tags
model_uri = f"runs:/{run.info.run_id}/sklearn-model"
model_version = mlflow.register_model(model_uri, "RandomForestRegressionModel", tags=model_tags)
# Output model registration details
print(f"Model Name: {model_version.name}")
print(f"Model Version: {model_version.version}")
Après avoir appliqué les balises, vous pouvez les afficher directement sur la page des détails de la version du modèle. En outre, les balises peuvent être ajoutées, mises à jour ou supprimées de cette page à tout moment.
Comparer et filtrer des modèles Machine Learning
Pour comparer et évaluer la qualité des versions de modèle Machine Learning, vous pouvez comparer les paramètres, les métriques et les métadonnées entre les versions sélectionnées.
Comparer visuellement des modèles Machine Learning
Vous pouvez comparer visuellement les exécutions dans un modèle existant. La comparaison visuelle permet une navigation facile entre les différentes versions et de trier à travers plusieurs versions.
Pour comparer les exécutions, vous pouvez :
- Sélectionnez un modèle Machine Learning existant qui contient plusieurs versions.
- Sélectionnez l’onglet Affichage , puis accédez à l’affichage liste de modèles . Vous pouvez également sélectionner l’option permettant d’afficher la liste des modèles directement à partir de la vue détails.
- Vous pouvez personnaliser les colonnes dans la table. Développez le volet Personnaliser les colonnes . À partir de là, vous pouvez sélectionner les propriétés, les métriques, les balises et les hyperparamètres que vous souhaitez voir.
- Enfin, vous pouvez sélectionner plusieurs versions pour comparer leurs résultats dans le volet de comparaison des métriques. Dans ce volet, vous pouvez personnaliser les graphiques avec des modifications apportées au titre du graphique, au type de visualisation, à l’axe X, à l’axe Y, etc.
Comparer des modèles Machine Learning à l’aide de l’API MLflow
Les scientifiques des données peuvent également utiliser MLflow pour rechercher plusieurs modèles enregistrés dans l’espace de travail. Consultez la documentation MLflow pour explorer d’autres API MLflow pour l’interaction de modèle.
from pprint import pprint
client = MlflowClient()
for rm in client.list_registered_models():
pprint(dict(rm), indent=4)
Appliquer des modèles Machine Learning
Une fois que vous avez entraîné un modèle sur un jeu de données, vous pouvez appliquer ce modèle aux données qu’il n’a jamais vues pour générer des prédictions. Nous appelons cette technique de modèle le scoring ou l’inférence.
Étapes suivantes :
- En savoir plus sur le scoring par lots dans Fabric
- Déployer des modèles pour le scoring en temps réel
- En savoir plus sur les API d’expérience MLflow