MLflow et Azure Machine Learning

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

MLflow est une infrastructure open source conçue pour gérer le cycle de vie complet de Machine Learning. Sa capacité à effectuer l’apprentissage et à servir des modèles sur différentes plateformes vous permet d’utiliser un ensemble cohérent d’outils, quel que soit l’emplacement d’exécution de vos expériences : localement sur votre ordinateur, sur une cible de calcul distante, sur une machine virtuelle ou sur une instance de calcul Azure Machine Learning.

Les espaces de travail Azure Machine Learning sont compatibles avec MLflow, de sorte que vous pouvez utiliser des espaces 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 aucune instance de serveur MLflow en coulisses. L’espace de travail peut plutôt maîtriser le langage d’API MLflow.
  • Vous pouvez utiliser des espaces de travail Azure Machine Learning comme serveur de suivi pour le code MLflow, qu’il s’exécute sur Azure Machine Learning ou pas. Vous devez uniquement configurer MLflow pour pointer vers l’espace de travail où le suivi doit se produire.
  • Vous pouvez exécuter n’importe quelle routine d’entraînement qui utilise MLflow dans Azure Machine Learning sans aucune modification.

Conseil

Contrairement au SDK v1 Azure Machine Learning, il n’existe aucune fonctionnalité de journalisation dans le SDK v2. Nous vous conseillons d’utiliser MLflow pour la journalisation afin que vos routines d’entraînement soit indépendantes du cloud et portables, supprimant toute dépendance que votre code peut avoir sur Azure Machine Learning.

Suivi 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 effectué en utilisant MLflow est matérialisé dans l’espace de travail sur lequel vous travaillez. Pour découvrir la façon de configurer vos expériences afin d’utiliser MLflow pour le suivi des expériences et des routines d’entraînement, consultez Journaliser les métriques, les paramètres et les fichiers avec MLflow. Vous pouvez également utiliser MLflow pour Interroger et comparer des expériences et des exécutions.

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 fournit un emplacement centralisé, sécurisé et évolutif pour stocker les métriques de formation et les modèles.

L’utilisation de MLflow dans Azure Machine Learning inclut les capacités suivantes :

Exemples de notebooks

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.
  • La gestion et l’inscription de modèles ne sont pas prises en charge en utilisant le Kit de développement logiciel (SDK) MLflow R. Utilisez à la place 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 l’utilisation du client de suivi MLflow avec Azure Machine Learning, consultez les exemples dans 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 être suivis à l’aide du SDK MLflow Java. Utilisez à la place le dossier Outputs dans les travaux, ainsi que la méthode mlflow.save_model pour enregistrer des modèles (ou des artefacts) que vous souhaitez capturer.

Si vous souhaitez découvrir l’utilisation du client de suivi MLflow avec Azure Machine Learning, consultez l’exemple Java qui utilise le client de suivi MLflow avec Azure Machine Learning.

Registres 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 prendre en charge l’intégralité du cycle de vie du modèle pour les utilisateurs familiarisés avec le client MLflow.

Pour en savoir plus sur la façon de gérer des modèles à l’aide de l’API MLflow dans Azure Machine Learning, consultez Gérer les registres de modèles dans Azure Machine Learning avec MLflow.

Exemple de bloc-notes

Déploiement de modèles avec MLflow

Vous pouvez déployer des modèles MLflow sur Azure Machine Learning et tirer parti de l’expérience améliorée lorsque vous utilisez des modèles MLflow. 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 déploiement est pris en charge en tirant parti du Kit de développement logiciel (SDK) MLflow, de l’interface CLI Azure Machine Learning, du SDK Azure Machine Learning pour Python ou d’Azure Machine Learning studio.

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

Entraînement avec des projets MLflow (préversion)

Important

Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. La préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail en 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 de formation à Azure Machine Learning à l’aide de projets MLflow (préversion). 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 soumettre des travaux d’entraînement avec MLflow Projects qui utilisent des espaces de travail Azure Machine Learning pour le suivi, consultez Entraîner des modèles Machine Learning avec des projets MLflow et Azure Machine Learning.

Exemples de notebooks

Fonctionnalités du SDK MLflow, d’Azure Machine Learning v2 et d’Azure Machine Learning studio

Le tableau suivant montre les opérations possibles en utilisant chacun des outils client disponibles dans le cycle de vie du Machine Learning.

Fonctionnalité Kit de développement logiciel (SDK) MLflow CLI/SDK Azure Machine Learning 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 1
Soumettre des travaux d’entraînement 2
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 3
Gérer des modèles non MLflow
Déployer des modèles MLflow dans Azure Machine Learning (en ligne et par lots) 4
Déployer des modèles non MLflow sur Azure Machine Learning

Notes