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
- Un abonnement Power BI Premium. Si vous n’en avez pas, consultez Comment se procurer Power BI Premium.
- Un espace de travail Power BI avec une capacité Premium affectée.
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 :
Sélectionnez ou créez un espace de travail de science des données.
Sélectionnez Expérience dans la section « Nouveau ».
Fournissez un nom d’expérience, puis sélectionnez Créer. Cette action crée une expérience vide dans votre espace de travail.
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.
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.
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.
Pour comparer les exécutions :
- Sélectionnez une expérience de Machine Learning existante qui contient plusieurs exécutions.
- 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.
- 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.
- Développez le volet Filtre pour affiner vos résultats en fonction de certains critères sélectionnés.
- 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.
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.