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.
Le Suivi est le processus d’enregistrement d’informations pertinentes sur les expériences. Dans cet article, vous apprenez à utiliser MLflow pour suivre vos expériences et vos exécutions dans les espaces de travail Azure Machine Learning.
Certaines méthodes disponibles dans l’API MLflow peuvent ne pas être disponibles lorsque vous utilisez Azure Machine Learning. Pour plus d’informations sur les opérations prises en charge et celles qui ne le sont pas, consultez la matrice de compatibilité pour l’interrogation des exécutions et des expérimentations. Vous pouvez également en savoir plus sur les fonctionnalités MLflow prises en charge dans Azure Machine Learning à partir de l’article MLflow et d’Azure Machine Learning.
Remarque
- Pour suivre les expériences en cours d’exécution sur Azure Databricks, consultez Suivre les expériences De Machine Learning Azure Databricks avec MLflow et Azure Machine Learning.
- Pour suivre les expériences qui s’exécutent sur Azure Synapse Analytics, consultez Suivre les expériences de ML Azure Synapse Analytics avec MLflow et Azure Machine Learning.
Prérequis
Disposer d’un abonnement Azure et de la version gratuite ou payante d’Azure Machine Learning.
Pour exécuter des commandes Azure CLI et Python, installez Azure CLI v2 et le Kit de développement logiciel (SDK) Azure Machine Learning v2 pour Python. L’extension
mlpour Azure CLI installe automatiquement la première fois que vous exécutez une commande CLI Azure Machine Learning.
Installez le package sdk
mlflowMLflow et le plug-in Azure Machine Learningazureml-mlflowpour MLflow :pip install mlflow azureml-mlflowConseil
Vous pouvez utiliser le package
mlflow-skinnyqui est un package MLflow léger sans dépendances de stockage SQL, de serveur, d’interface utilisateur ou de science des données. Nous recommandons ce package pour les utilisateurs qui ont principalement besoin des fonctionnalités de suivi et de journalisation MLflow, mais pas la suite complète de fonctionnalités, y compris les déploiements.Créez un espace de travail Azure Machine Learning. Pour créer un espace de travail, consultez Créer les ressources dont vous avez besoin pour commencer. Passez en revue les autorisations d’accès dont vous avez besoin pour effectuer des opérations MLflow dans votre espace de travail.
Pour effectuer un suivi à distance ou suivre des expériences qui s’exécutent en dehors d’Azure Machine Learning, configurez MLflow pour qu’il pointe vers l’URI de suivi de votre espace de travail Azure Machine Learning. Pour plus d’informations sur la connexion de MLflow à votre espace de travail, consultez Configurer MLflow pour Azure Machine Learning.
Configurer l’expérience
MLflow organise les informations dans les expériences et les exécutions. Les exécutions sont appelées travaux dans Azure Machine Learning. Par défaut, les exécutions sont enregistrées dans une expérience créée automatiquement nommée Défaut, mais il est possible de configurer quelle expérience suivre.
Pour une formation interactive, comme dans un notebook Jupyter, utilisez la commande MLflow mlflow.set_experiment(). Par exemple, l’extrait de code suivant configure une expérience :
experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)
Configurer l’exécution
Azure Machine Learning suit les travaux d’apprentissage dans ce que MLflow appelle des exécutions. Utilisez des exécutions pour enregistrer tout le traitement effectué par votre travail.
Lorsque vous travaillez de manière interactive, MLflow commence à suivre votre routine d’apprentissage dès que vous journalisez des informations qui nécessitent une exécution active. Par exemple, si la fonctionnalité de synchronisation automatique de MLflow est activée, le suivi MLflow démarre lorsque vous journalisez une métrique ou un paramètre, ou démarrez un cycle d’entraînement.
Toutefois, il est généralement utile de démarrer l’exécution explicitement, en particulier si vous souhaitez capturer la durée totale de votre expérience dans le champ Durée. Pour démarrer l’exécution de manière explicite, utilisez mlflow.start_run().
Que vous démarrez l’exécution manuellement ou non, vous devrez finalement arrêter l’exécution, afin que MLflow sache que votre exécution d’expérience est réalisée et puisse marquer l’état de l’exécution comme Terminé. Pour arrêter un processus, utilisez mlflow.end_run().
Le code suivant démarre une exécution manuellement et la termine à la fin du notebook :
mlflow.start_run()
# Your code
mlflow.end_run()
Il est préférable de démarrer manuellement les exécutions afin de ne pas oublier de les terminer. Vous pouvez utiliser le paradigme du gestionnaire de contexte pour vous aider à vous rappeler de mettre fin à l’exécution.
with mlflow.start_run() as run:
# Your code
Lorsque vous démarrez une nouvelle exécution à l’aide mlflow.start_run()de , il peut être utile de spécifier le run_name paramètre, qui se traduit ultérieurement par le nom de l’exécution dans l’interface utilisateur Azure Machine Learning. Cette pratique vous aide à identifier l’exécution plus rapidement.
with mlflow.start_run(run_name="hello-world-example") as run:
# Your code
Activer l’autologging MLflow
Vous pouvez journaliser les métriques, les paramètres et les fichiers avec MLflow manuellement, et vous pouvez également vous appuyer sur la fonctionnalité de journalisation automatique de MLflow. Chaque infrastructure Machine Learning prise en charge par MLflow détermine ce qu’il faut suivre automatiquement.
Pour activer la journalisation automatique, insérez le code suivant avant votre code d’entraînement :
mlflow.autolog()
Afficher les métriques et les artefacts dans votre espace de travail
Les métriques et les artefacts de l'enregistrement à l'aide de MLflow sont suivis dans votre espace de travail. Vous pouvez les afficher et les accéder dans Azure Machine Learning Studio ou les accéder par programmation à l’aide du Kit de développement logiciel (SDK) MLflow.
Pour afficher des métriques et des artefacts dans le studio :
Dans la page Travaux de votre espace de travail, sélectionnez le nom de l’expérience.
Dans la page détails de l’expérience, sélectionnez l’onglet Métriques .
Sélectionnez les métriques journalisées pour afficher les graphiques sur le côté droit de la page. Vous pouvez personnaliser les graphes en appliquant un lissage, en changeant la couleur ou en traçant plusieurs métriques sur un même graphe. Vous pouvez également redimensionner et réorganiser la disposition.
Après avoir créé la vue souhaitée, enregistrez-la pour une utilisation ultérieure et partagez-la avec vos collègues à l’aide d’un lien direct.
Pour accéder ou interroger des métriques, des paramètres et des artefacts par programmation à l’aide du Kit de développement logiciel (SDK) MLflow, utilisez mlflow.get_run().
import mlflow
run = mlflow.get_run("<RUN_ID>")
metrics = run.data.metrics
params = run.data.params
tags = run.data.tags
print(metrics, params, tags)
Conseil
L’exemple précédent retourne uniquement la dernière valeur d’une métrique donnée. Pour récupérer toutes les valeurs d’une métrique donnée, utilisez la méthode mlflow.get_metric_history. Pour plus d’informations sur la récupération des valeurs de métriques, consultez Obtenir des paramètres et des métriques à partir d’une exécution.
Pour télécharger les artefacts que vous avez enregistrés, comme des fichiers et des modèles, utilisez mlflow.artifacts.download_artifacts().
mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")
Pour plus d’informations sur la façon de récupérer ou de comparer des informations à partir d’expériences et d’exécutions dans Azure Machine Learning à l’aide de MLflow, consultez Interroger et comparer des expériences et des exécutions avec MLflow.