MLflow et Azure Machine Learning
S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
Cet article décrit les fonctionnalités de MLflow, une infrastructure open source conçue pour gérer le cycle de vie complet de Machine Learning. MLflow utilise un ensemble d’outils cohérent pour effectuer l’apprentissage et mettre en service des modèles sur diverses plateformes. Vous pouvez utiliser MLflow, que vos expériences s’exécutent localement ou sur une cible de calcul distante, une machine virtuelle ou une instance de capacité de calcul Azure Machine Learning.
Les espaces de travail Azure Machine Learning sont compatibles avec MLflow, ce qui signifie que vous pouvez utiliser un espace de travail Azure Machine Learning de la même façon que vous utilisez un serveur MLflow. Cette compatibilité présente les avantages suivants :
- Azure Machine Learning n’héberge pas les instances de serveur MLflow, mais peut utiliser les API MLflow directement.
- Vous pouvez utiliser un espace de travail Azure Machine Learning comme serveur de suivi pour du code MLflow, qu’il s’exécute ou non sur Azure Machine Learning. Vous devez uniquement configurer MLflow pour qu’il pointe vers l’espace de travail où le suivi doit se produire.
- Vous pouvez exécuter n’importe quelle routine d’apprentissage qui utilise MLflow dans Azure Machine Learning sans apporter de modifications.
Conseil
Contrairement au Kit de développement logiciel (SDK) Azure Machine Learning v1, il n’existe aucune fonctionnalité de journalisation dans le Kit de développement logiciel (SDK) Azure Machine Learning v2. Vous pouvez utiliser la journalisation MLflow pour veiller à ce que vos routines d’apprentissage soient portables, indépendantes du cloud et n’aient aucune dépendance sur Azure Machine Learning.
Qu’est-ce que le suivi
Lorsque vous effectuez des travaux, Azure Machine Learning effectue automatiquement le suivi de certaines informations sur les expériences, telles que le code, l’environnement et les données d’entrée et de sortie. Toutefois, les modèles, les paramètres et les métriques sont spécifiques au scénario. Les générateurs de modèles doivent donc configurer leur suivi.
Les métadonnées de suivi enregistrées varient selon l’expérience et peuvent inclure ce qui suit :
- Code
- Détails de l’environnement tels que la version du système d’exploitation et les packages Python
- Données d’entrée
- Configurations des paramètres
- Modèles
- Mesures d’évaluation
- Visualisations d’évaluation telles que les matrices de confusion et les tracés d’importance
- Résultats de l’évaluation, y compris certaines prévisions d’évaluation
Avantages du suivi des expériences
Que vous entraîniez des modèles avec des travaux dans Azure Machine Learning ou de manière interactive dans des notebooks, le suivi des expériences vous aide ainsi :
- D’organiser toutes vos expériences d’apprentissage automatique dans un seul endroit. Vous pouvez ensuite rechercher et filtrer des expériences et explorer au niveau du détail sur les expériences précédentes.
- Comparez facilement des expériences, analysez les résultats et déboguez l’apprentissage du modèle.
- De reproduire ou de réexécuter des expériences pour valider les résultats.
- D’améliorer la collaboration, car vous pouvez voir ce que font vos collègues, partager les résultats des expériences et accéder de manière programmatique aux données d’expérience.
Suivi avec MLflow
Les espaces de travail Azure Machine Learning sont compatibles avec MLflow. Cette compatibilité signifie que vous pouvez utiliser MLflow pour suivre les exécutions, les métriques, les paramètres et les artefacts dans les espaces de travail sans avoir à modifier vos routines d’entraînement ou à injecter une syntaxe spécifique au cloud. Pour savoir comment utiliser MLflow pour suivre vos expériences et vos exécutions dans les espaces de travail Azure Machine Learning, consultez Suivre les expériences et modèles avec MLflow.
Azure Machine Learning utilise le suivi MLflow pour journaliser des métriques et stocker des artefacts de vos expériences. Quand vous êtes connecté à Azure Machine Learning, tout le suivi MLflow se matérialise dans l’espace de travail sur lequel vous travaillez.
Pour savoir comment activer la journalisation afin de surveiller les métriques d’exécution en temps réel avec MLflow, consultez Journaliser des métriques, des paramètres et des fichiers avec MLflow. Vous pouvez également Interroger et comparer des expériences et des exécutions avec MLflow.
MLflow dans Azure Machine Learning vous offre le moyen de centraliser le suivi. Vous pouvez connecter MLflow à des espaces de travail Azure Machine Learning, même lors de travaux locaux ou dans un autre cloud. L’espace de travail Azure Machine Learning fournit un emplacement centralisé, sécurisé et évolutif pour stocker les métriques d’apprentissage et les modèles.
MLflow et Azure Machine Learning peuvent :
- Suivre les expériences et les modèles Machine Learning s’exécutant localement ou dans le cloud.
- Suivre les expériences Machine Learning Azure Databricks.
- Suivre les expériences Machine Learning Azure Synapse Analytics.
Suivi avec MLflow dans R
La prise en charge MLflow dans R présente les limitations suivantes :
- Le suivi de MLflow se limite au suivi des métriques, des paramètres et des modèles d’expériences dans des travaux Azure Machine Learning.
- L’apprentissage interactif sur RStudio, Posit (anciennement RStudio Workbench) ou des notebooks Jupyter avec des noyaux R n’est pas pris en charge.
- L’inscription et la gestion des modèles ne sont pas prises en charge. Utilisez l’interface CLI Azure Machine Learning ou Azure Machine Learning studio pour l’inscription et la gestion de modèles.
Si vous souhaitez découvrir des exemples d’utilisation du client de suivi MLflow avec des modèles R dans Azure Machine Learning, consultez Entraîner des modèles R en utilisant l’interface CLI Azure Machine Learning (v2).
Suivi avec MLflow dans Java
La prise en charge de MLflow dans Java présente les limitations suivantes :
- Le suivi de MLflow se limite au suivi des métriques et des paramètres d’expériences dans des travaux Azure Machine Learning.
- Les artefacts et les modèles ne peuvent pas faire l’objet d’un suivi. Utilisez à la place la méthode
mlflow.save_model
avec le dossieroutputs
dans des travaux pour enregistrer des modèles ou des artefacts que vous souhaitez capturer.
Si vous souhaitez découvrir un exemple Java qui utilise le client de suivi MLflow avec le serveur de suivi Azure Machine Learning, consultez azuremlflow-java.
Exemples de notebooks pour le suivi MLflow
- L’Apprentissage et suivi d’un classifieur XGBoost avec MLflow montrent comment utiliser MLflow pour suivre des expériences, journaliser des modèles et combiner plusieurs variantes dans des pipelines.
- L’Apprentissage et suivi d’un classifieur XGBoost avec MLflow en tirant parti de l’authentification du principal de service montrent comment utiliser MLflow pour suivre des expériences à partir d’un calcul exécuté en dehors d’Azure Machine Learning. L’exemple montre comment s’authentifier auprès des services Azure Machine Learning en utilisant un principal de service.
- L’Optimisation des hyperparamètres en tirant parti d’Hyperopt et d’exécutions imbriquées dans MLflow montre comment utiliser des exécutions enfants pour effectuer une optimisation des hyperparamètres de modèles en utilisant la bibliothèque populaire HyperOpt. L’exemple montre comment transférer des métriques, des paramètres et des artefacts à partir d’exécutions enfants vers des exécutions parentes.
- La Journalisation de modèles avec MLflow montre comment utiliser le concept de modèles, au lieu d’artefacts, avec MLflow. L’exemple illustre également comment construire des modèles personnalisés.
- Gérer des exécutions et des expériences avec MLflow montre comment utiliser MLflow pour interroger des expériences, des exécutions, des métriques, des paramètres et des artefacts à partir d’Azure Machine Learning.
Inscription de modèles avec MLflow
Azure Machine Learning prend en charge MLflow pour la gestion des modèles. Cette prise en charge constitue un bon moyen de gérer l’intégralité du cycle de vie du modèle pour les utilisateurs qui sont familiarisés avec le client MLflow. Pour découvrir plus d’informations sur la façon de gérer des modèles en utilisant l’API MLflow dans Azure Machine Learning, consultez Gérer les registres de modèles dans Azure Machine Learning avec MLflow.
Exemple de notebook pour l’inscription d’un modèle MLflow
Gestion de modèles avec MLflow : montre comment gérer des modèles dans des registres.
Déploiement de modèles avec MLflow
Vous pouvez déployer des modèles MLflow sur Azure Machine Learning pour tirer parti d’une expérience améliorée. Azure Machine Learning prend en charge le déploiement de modèles MLflow sur des points de terminaison en temps réel et par lots sans avoir à spécifier un environnement ou un script de scoring.
Le Kit de développement logiciel (SDK) MLflow, l’interface CLI Azure Machine Learning, le Kit de développement logiciel (SDK) Azure Machine Learning pour Python et Azure Machine Learning studio prennent tous en charge le modèle de déploiement MLflow. Pour découvrir plus d’informations sur le déploiement de modèles MLflow sur Azure Machine Learning pour les inférences en temps réel et par lots, consultez Instructions pour déployer des modèles MLflow.
Exemples de notebooks pour le modèle de déploiement MLflow
- Déployer MLflow sur des points de terminaison en ligne : montre comment déployer des modèles MLflow sur des points de terminaison en ligne en tirant parti du Kit de développement logiciel (SDK) MLflow.
- Déploiement progressif des déploiements MLflow : montre comment déployer des modèles MLflow sur des points de terminaison en ligne en utilisant le Kit de développement logiciel (SDK) MLflow avec un déploiement progressif de modèles. L’exemple illustre également le déploiement de plusieurs versions d’un modèle sur le même point de terminaison.
- Déployer des modèles MLflow sur des services web hérités : montre comment déployer des modèles MLflow sur des services web hérités (Azure Container Instances ou Azure Kubernetes Service v1) en utilisant le Kit de développement logiciel (SDK) MLflow.
- Effectuer l’apprentissage de modèles dans Azure Databricks et les déployer sur Azure Machine Learning : montre comment effectuer l’apprentissage de modèles dans Azure Databricks et les déployer dans Azure Machine Learning. Cet exemple aborde également les expériences de suivi avec l’instance MLflow dans Azure Databricks.
Apprentissage avec MLflow Projects (préversion)
Avertissement
La prise en charge des fichiers MLproject
(projets MLflow) dans Azure Machine Learning sera entièrement supprimée en septembre 2026. MLflow est toujours entièrement pris en charge et reste la méthode recommandée pour suivre les charges de travail Machine Learning dans Azure Machine Learning.
À mesure que vous continuez à utiliser MLflow, nous vous recommandons de passer deMLproject
fichiers à Des travaux Azure Machine Learning, à l’aide d’Azure CLI ou du Kit de développement logiciel (SDK) Azure Machine Learning pour Python (v2). Pour plus d’informations sur les tâches Azure Machine Learning, consultez Suivre les expériences et modèles ML avec MLflow.
Important
Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.
Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Vous pouvez envoyer des travaux d’apprentissage à Azure Machine Learning en utilisant MLflow Projects. Vous pouvez envoyer des travaux en local à l’aide du suivi Azure Machine Learning ou migrer vos travaux vers le cloud via le calcul Azure Machine Learning.
Pour découvrir comment envoyer des travaux d’apprentissage qui utilisent MLflow Projects sur des espaces de travail Azure Machine Learning pour le suivi, consultez Entraîner des modèles Machine Learning avec MLflow Projects et Azure Machine Learning.
Exemples de notebooks pour MLflow Projects
- Effectuez l’apprentissage avec MLflow Projects sur une capacité de calcul locale.
- Effectuez l’apprentissage avec MLflow Projects sur une capacité de calcul Azure Machine Learning.
Fonctionnalités des outils client Azure Machine Learning par rapport à MLflow
Le tableau suivant montre les opérations de cycle de vie de Machine Learning possibles avec le Kit de développement logiciel (SDK) MLflow et les outils client Azure Machine Learning.
Fonctionnalité | Kit de développement logiciel (SDK) MLflow | CLI Azure Machine Learning/Kit de développement logiciel (SDK) v2 | Azure Machine Learning Studio |
---|---|---|---|
Suivre et consigner les métriques, les paramètres et les modèles | ✓ | ||
Récupérer les métriques, les paramètres et les modèles | ✓ | Seuls les artefacts et les modèles peuvent être téléchargés. | ✓ |
Soumettre des travaux d’entraînement | Possible en utilisant MLflow Projects (préversion). | ✓ | ✓ |
Envoyer des travaux d’entraînement avec des ressources de données Azure Machine Learning | ✓ | ✓ | |
Envoyer des travaux d’entraînement avec des pipelines de machine learning | ✓ | ✓ | |
Gérer les expériences et les exécutions | ✓ | ✓ | ✓ |
Gestion des modèles de MLflow | Il est possible que certaines opérations ne soient pas prises en charge.1 | ✓ | ✓ |
Gérer des modèles non MLflow | ✓ | ✓ | |
Déployer des modèles MLflow dans Azure Machine Learning (en ligne et par lots) | Le déploiement de modèles MLflow pour l’inférence par lots n’est actuellement pas pris en charge.2 | ✓ | ✓ |
Déployer des modèles non MLflow sur Azure Machine Learning | ✓ | ✓ |
1 Pour découvrir plus d’informations, consultez Gérer les registres de modèles dans Azure Machine Learning avec MLflow.
2 Comme alternative, consultez Déployer et exécuter des modèles MLflow dans des travaux Spark.