Partager via


Modèle Machine Learning dans Microsoft Fabric

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 :

  1. Sélectionnez un espace de travail de science des données existant ou créez un espace de travail.
  2. Créez un élément via l’espace de travail ou à l’aide du bouton Créer :
    1. Espace de travail
      1. Sélectionnez votre espace de travail.
      2. Sélectionnez Nouvel élément.
      3. Sélectionnez Ml Model sous Analyser et entraîner des données. Capture d’écran du menu Nouvel élément avec l’option Ml Model mise en surbrillance sous Analyser et entraîner des données.
    2. Bouton Créer :
      1. Sélectionnez Créer, qui se trouve dans ... dans le menu vertical. Capture d’écran du bouton Créer situé dans la navigation dans le menu vertical.
      2. Sélectionnez Ml Model sous Science des données. Capture d’écran du menu Créer affichant l’option Modèle ML sous la section Science des données.
  3. 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.

Capture d’écran de la page détails de la version du modèle Machine Learning montrant les métriques, les paramètres et les informations de 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.

Capture d’écran de la page détails de la version du modèle affichant des balises personnalisées telles que le nom du projet et les informations d’équipe.

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.

Capture d’écran de la vue de comparaison de modèles montrant plusieurs versions de modèle Machine Learning avec des métriques et des paramètres.

Pour comparer les exécutions, vous pouvez :

  1. Sélectionnez un modèle Machine Learning existant qui contient plusieurs versions.
  2. 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.
  3. 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.
  4. 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 :