MLflow est une plate-forme permettant de rationaliser le développement de l'apprentissage automatique, y compris le suivi des expériences, le conditionnement du code en exécutions reproductibles, ainsi que le partage et le déploiement de modèles. MLflow propose un ensemble d'API légères qui peuvent être utilisées avec n'importe quelle application ou bibliothèque de machine learning existante (TensorFlow, PyTorch, XGBoost, etc.), partout où vous exécutez actuellement du code ML (par exemple dans des notebooks, des applications autonomes ou dans le cloud). Les composants actuels de MLflow sont :
MLflow Tracking : une API pour enregistrer les paramètres, le code et les résultats des expériences d'apprentissage automatique et les comparer à l'aide d'une interface utilisateur interactive.
Projets MLflow : un format d'empaquetage de code pour des exécutions reproductibles à l'aide de Conda et Docker, afin que vous puissiez partager votre code ML avec d'autres.
Modèles MLflow : un format de packaging de modèles et des outils qui vous permettent de déployer facilement le même modèle (à partir de n'importe quelle bibliothèque ML) vers un score par lots et en temps réel sur des plateformes telles que Docker, Apache Spark, Azure ML et AWS SageMaker.
MLflow Model Registry : un magasin de modèles centralisé, un ensemble d'API et une interface utilisateur pour gérer de manière collaborative le cycle de vie complet des modèles MLflow.
Forfaits
PyPI | |
conda-forge | |
CRAN | |
Maven Central |
Statuts de travail
Installez MLflow depuis PyPI via pip install mlflow
MLflow nécessite que conda
soit sur le PATH
pour la fonctionnalité de projets.
Des instantanés nocturnes du maître MLflow sont également disponibles ici.
Installez un sous-ensemble de dépendances inférieur de MLflow à partir de PyPI via pip install mlflow-skinny
Des dépendances supplémentaires peuvent être ajoutées selon le scénario souhaité. Par exemple, pip install mlflow-skinny pandas numpy
permet la prise en charge de mlflow.pyfunc.log_model.
La documentation officielle de MLflow est disponible sur https://mlflow.org/docs/latest/index.html.
La feuille de route MLflow actuelle est disponible sur https://github.com/mlflow/mlflow/milestone/3. Nous recherchons des contributions à tous les éléments de notre feuille de route avec le label help wanted
. Veuillez consulter la section Contribuer pour plus d'informations.
Pour obtenir de l'aide ou des questions sur l'utilisation de MLflow (par exemple "comment puis-je faire X ?"), consultez la documentation ou Stack Overflow.
Pour signaler un bogue, signaler un problème de documentation ou soumettre une demande de fonctionnalité, veuillez ouvrir un problème GitHub.
Pour les annonces de sortie et d'autres discussions, veuillez vous inscrire à notre liste de diffusion ([email protected]) ou nous rejoindre sur Slack.
Les programmes des examples
utilisent l'API MLflow Tracking. Par exemple, exécutez :
exemples python/quickstart/mlflow_tracking.py
Ce programme utilisera l'API MLflow Tracking, qui enregistre les données de suivi dans ./mlruns
. Cela peut ensuite être visualisé avec l’interface utilisateur de suivi.
L'interface utilisateur de suivi MLflow affichera les exécutions enregistrées dans ./mlruns
sur http://localhost:5000. Commencez-le avec :
interface utilisateur mlflow
Remarque : L'exécution mlflow ui
à partir d'un clone de MLflow n'est pas recommandée : cela exécutera l'interface utilisateur de développement à partir de la source. Nous vous recommandons d'exécuter l'interface utilisateur à partir d'un autre répertoire de travail, en spécifiant un magasin principal via l'option --backend-store-uri
. Vous pouvez également consulter les instructions d’exécution de l’interface utilisateur de développement dans le guide du contributeur.
La commande mlflow run
vous permet d'exécuter un projet packagé avec un fichier MLproject à partir d'un chemin local ou d'un URI Git :
Exemples d'exécution mlflow/sklearn_elasticnet_wine -P alpha=0.4 mlflow exécute https://github.com/mlflow/mlflow-example.git -P alpha=0.4
Voir examples/sklearn_elasticnet_wine
pour un exemple de projet avec un fichier MLproject.
Pour illustrer la gestion des modèles, le package mlflow.sklearn
peut enregistrer les modèles scikit-learn en tant qu'artefacts MLflow, puis les charger à nouveau pour les servir. Il existe un exemple d'application de formation dans examples/sklearn_logistic_regression/train.py
que vous pouvez exécuter comme suit :
$ exemples python/sklearn_logistic_regression/train.py Note : 0,666 Modèle enregistré lors de l'exécution <run-id> $ les modèles mlflow servent --model-uri runs:/<run-id>/model $ curl -d '{"dataframe_split": {"columns":[0],"index":[0,1],"data":[[1],[-1]]}}' -H 'Contenu -Type : application/json' localhost :5000/invocations
Remarque : Si vous utilisez MLflow skinny ( pip install mlflow-skinny
) pour la diffusion de modèles, des dépendances requises supplémentaires (à savoir flask
) devront être installées pour que le serveur MLflow fonctionne.
L'image officielle MLflow Docker est disponible sur GitHub Container Registry à l'adresse https://ghcr.io/mlflow/mlflow.
export CR_PAT=VOTRE_TOKENecho $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin# Extrayez la dernière versiondocker pull ghcr.io/mlflow/mlflow# Pull 2.2.1docker pull ghcr.io/mlflow/mlflow:v2.2.1
Nous accueillons volontiers les contributions à MLflow. Nous recherchons également des contributions aux éléments de la feuille de route MLflow. Veuillez consulter notre guide de contribution pour en savoir plus sur la contribution à MLflow.
MLflow est actuellement maintenu par les membres principaux suivants avec des contributions significatives de centaines de membres de la communauté exceptionnellement talentueux.
Ben Wilson
Corey Zumar
Daniel Lok
Gabriel Fu
Harutaka Kawamura
Serena Ruan
Weichen Xu
Yuki Watanabe
Tomu Hirata