Expériences d’apprentissage automatique dans Microsoft Fabric

Une expérience de Machine Learning est l'unité principale d'organisation et de contrôle pour tous les cycles d'apprentissage automatique connexes. Une exécution correspond à une seule exécution de code de modèle. Dans MLflow, le suivi est basé sur les expériences et les exécutions.

Les expériences de Machine Learning permettent aux scientifiques des données de journaliser des paramètres, des versions de code, des métriques et des fichiers de sortie lors de l’exécution de leur code de Machine Learning. Les expériences vous permettent aussi de visualiser, de rechercher et de comparer des exécutions, ainsi que de télécharger fichiers d’exécutions et des métadonnées pour les analyser dans d'autres outils.

Dans cet article, vous allez en savoir plus sur la façon dont les scientifiques des données peuvent interagir avec les expériences de Machine Learning et les utiliser pour organiser leur processus de développement et suivre plusieurs exécutions.

Prérequis

Créer une expérience

Vous pouvez créer une expérience de Machine Learning directement à partir de la page d’accueil Science des données de l’interface utilisateur Power BI ou en écrivant du code qui utilise l’API MLflow.

Créer une expérience à l’aide de l’interface utilisateur

Pour créer une expérience de Machine Learning à partir de l’interface utilisateur :

  1. Sélectionnez ou créez un espace de travail de science des données.

  2. Sélectionnez Expérience dans la section « Nouveau ».

  3. Fournissez un nom d’expérience, puis sélectionnez Créer. Cette action crée une expérience vide dans votre espace de travail.

    Screenshot showing where to select Experiment in the New menu.

Après avoir créé l’expérience, vous pouvez commencer à ajouter des exécutions pour suivre les métriques et les paramètres d’exécution.

Créer une expérience à l’aide de l’API MLflow

Vous pouvez également créer une expérience de Machine Learning directement à partir de votre expérience de création à l’aide des API mlflow.create_experiment() ou mlflow.set_experiment(). Dans le code suivant, remplacez <EXPERIMENT_NAME> par le nom de votre expérience.

import mlflow
 
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")

# This will set the given experiment as the active experiment. 
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")

Gérer les exécutions au sein d’une expérience

Une expérience de Machine Learning contient une collection d’exécutions pour un suivi et une comparaison simplifiés. Dans une expérience, un scientifique des données peut naviguer entre différentes exécutions et explorer les paramètres et métriques sous-jacents. Les scientifiques des données peuvent également comparer les exécutions au sein d’une expérience de Machine Learning pour identifier le sous-ensemble de paramètres qui produit les performances d’un modèle souhaitées.

Suivre les exécutions

Une exécution de Machine Learning correspond à une seule exécution de code de modèle.

Screenshot of machine learning run detail page.

Chaque exécution comporte les informations suivantes :

  • Source : nom du notebook qui a créé l’exécution.
  • Version inscrite : indique si l’exécution a été enregistrée en tant que modèle de Machine Learning.
  • Date de début : heure du début de l’exécution.
  • État : progression de l’exécution.
  • Hyperparamètres : hyperparamètres enregistrés en tant que paires clé-valeur. Les clés et les valeurs sont des chaînes.
  • Métriques : exécute les métriques enregistrées en tant que paires clé-valeur. La valeur est numérique.
  • Fichier de sortie : fichiers de sortie dans n’importe quel format. Par exemple, vous pouvez enregistrer des images, un environnement, des modèles et des fichiers de données.

Afficher les exécutions récentes

Vous pouvez également afficher les exécutions récentes d’une expérience directement à partir de l’affichage liste d’espaces de travail. Cette vue vous permet de suivre l’activité récente, de passer rapidement à l’application Spark associée et d’appliquer des filtres en fonction de l’état d’exécution.

Screenshot of machine learning recent runs and Spark application view.

Comparer et filtrer les exécutions

Pour comparer et évaluer la qualité de vos exécutions de Machine Learning, vous pouvez comparer les paramètres, les métriques et les métadonnées des différentes exécutions sélectionnées au sein d’une expérience.

Comparer visuellement les exécutions

Vous pouvez comparer et filtrer visuellement les exécutions au sein d’une expérience existante. La comparaison visuelle vous permet de naviguer facilement entre plusieurs exécutions et de les trier.

Screenshot showing a list of runs and the chart view.

Pour comparer les exécutions :

  1. Sélectionnez une expérience de Machine Learning existante qui contient plusieurs exécutions.
  2. Sélectionnez l’onglet Affichage, puis accédez à l’affichage Liste d’exécutions. Vous pouvez également sélectionner l’option Afficher la liste des exécutions directement dans l’affichage Détails de l’exécution.
  3. Personnalisez les colonnes de la table en développant le volet Personnaliser les colonnes. Ici, vous pouvez sélectionner les propriétés, les métriques et les hyperparamètres que vous souhaitez voir.
  4. Développez le volet Filtre pour affiner vos résultats en fonction de certains critères sélectionnés.
  5. Sélectionnez plusieurs exécutions pour comparer leurs résultats dans le volet de comparaison des métriques. À partir de ce volet, vous pouvez personnaliser les graphiques en modifiant le titre du graphique, le type de visualisation, l’axe X, l’axe Y, etc.

Comparer les exécutions à l’aide de l’API MLflow

Les scientifiques des données peuvent également utiliser MLflow pour interroger et effectuer une recherche dans les exécutions d’une expérience. Vous pouvez explorer d’autres API MLflow pour la recherche, le filtrage et la comparaison des exécutions en consultant la documentation MLflow.

Obtenir toutes les exécutions

Vous pouvez utiliser l’API de recherche mlflow.search_runs() MLflow pour obtenir toutes les exécutions d’une expérience en remplaçant <EXPERIMENT_NAME> par le nom de votre expérience ou <EXPERIMENT_ID> par votre ID d’expérience dans le code suivant :

import mlflow

# Get runs by experiment name: 
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])

# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])

Conseil

Vous pouvez effectuer une recherche dans plusieurs expériences en fournissant une liste d’ID d’expérience au paramètre experiment_ids. De même, fournir une liste de noms d’expériences au paramètre experiment_names permet à MLflow de rechercher dans plusieurs expériences. Cela peut être utile si vous souhaitez comparer les exécutions au sein de différentes expériences.

Exécutions d’ordre et de limite

Utilisez le paramètre max_results de search_runs pour limiter le nombre d’exécutions retournées. Le paramètre order_by vous permet de répertorier les colonnes à classer et peut contenir une valeur DESC ou ASC facultative. Par exemple, l’exemple suivant retourne la dernière exécution d’une expérience.

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

Comparer les exécutions au sein d’un notebook Fabric

Vous pouvez utiliser le widget de création MLFlow dans les notebooks Fabric pour suivre les exécutions MLflow générées au sein de chaque cellule de notebook. Le widget vous permet de suivre vos exécutions, les métriques, les paramètres et les propriétés associés directement au niveau de la cellule individuelle.

Pour obtenir une comparaison visuelle, vous pouvez également basculer sur la vue Exécuter la comparaison. Cette vue présente les données graphiquement, ce qui facilite l’identification rapide des modèles ou des écarts entre différentes exécutions.

Screenshot showing how to use the MLFlow authoring widget.

Enregistrer l’exécution en tant que modèle Machine Learning

Une fois qu’une exécution produit le résultat souhaité, vous pouvez enregistrer l’exécution en tant que modèle pour le suivi amélioré des modèles et pour le déploiement du modèle en sélectionnant Enregistrer en tant que modèle ML.

Screenshot showing where to select Create a new model.