Intégration de MLflow avec Ultralytics YOLO#
Introduction#
La journalisation des expériences est un aspect essentiel des workflows de machine learning qui permet de suivre diverses métriques, paramètres et artefacts. Elle contribue à améliorer la reproductibilité des modèles, à déboguer les problèmes et à optimiser les performances des modèles. Ultralytics YOLO, connu pour ses capacités de détection d’objets en temps réel, propose désormais une intégration avec MLflow, une plateforme open source dédiée à la gestion complète du cycle de vie du machine learning.
Cette page de documentation est un guide complet pour configurer et utiliser les fonctionnalités de journalisation de MLflow dans ton projet Ultralytics YOLO.
Qu’est-ce que MLflow ?#
MLflow est une plateforme open source développée par Databricks pour gérer le cycle de vie complet du machine learning. Elle comprend des outils pour suivre les expériences, empaqueter le code dans des exécutions reproductibles, ainsi que partager et déployer des modèles. MLflow est conçu pour fonctionner avec n’importe quelle bibliothèque de machine learning et n’importe quel langage de programmation.
Fonctionnalités#
- Journalisation des métriques : journalise les métriques à la fin de chaque époque et de l’entraînement.
- Journalisation des paramètres : journalise tous les paramètres utilisés pendant l’entraînement.
- Journalisation des artefacts : journalise les artefacts du modèle, notamment les poids et les fichiers de configuration, à la fin de l’entraînement.
Configuration et prérequis#
Vérifie que MLflow est installé. Si ce n’est pas le cas, installe-le avec pip :
pip install mlflowVérifie que la journalisation MLflow est activée dans les paramètres Ultralytics. Elle est généralement contrôlée par la clé mlflow. Consulte la page des paramètres pour plus d’informations.
Dans l’environnement Python, appelle la méthode update sur l’objet settings pour modifier tes paramètres :
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Utilisation#
Commandes#
-
Définir un nom de projet : tu peux définir le nom du projet via une variable d’environnement :
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMETu peux aussi utiliser l’argument
project=<project>lors de l’entraînement d’un modèle YOLO, par exempleyolo train project=my_project. -
Définir un nom d’exécution : comme pour le nom du projet, tu peux définir le nom de l’exécution via une variable d’environnement :
export MLFLOW_RUN=YOUR_RUN_NAMETu peux aussi utiliser l’argument
name=<name>lors de l’entraînement d’un modèle YOLO, par exempleyolo train project=my_project name=my_name. -
Démarrer un serveur MLflow local : pour commencer le suivi, utilise :
mlflow server --backend-store-uri runs/mlflowCela démarre par défaut un serveur local à l’adresse
http://127.0.0.1:5000et enregistre tous les journaux mlflow dans le répertoire « runs/mlflow ». Pour diriger tes exécutions d’entraînement vers un autre serveur de suivi, exporteMLFLOW_TRACKING_URIavant l’entraînement :export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Maintenir l’exécution MLflow active après l’entraînement : par défaut, Ultralytics termine automatiquement l’exécution MLflow lorsque l’entraînement est terminé. Pour laisser l’exécution ouverte (par exemple, afin de journaliser des métriques ou des artefacts supplémentaires depuis le même notebook), définis
MLFLOW_KEEP_RUN_ACTIVEsurTrueavant l’entraînement :export MLFLOW_KEEP_RUN_ACTIVE=TrueLes valeurs
1,true,yes,on,yettactivent ce comportement (sans distinction entre majuscules et minuscules). Toute autre valeur, y compris une variable non définie, conserve le comportement par défaut de fermeture de l’exécution. N’oublie pas de la fermer manuellement ensuite avecmlflow.end_run().
Journalisation#
La journalisation est prise en charge par les on_pretrain_routine_end, on_fit_epoch_end et on_train_end fonctions de rappel. Ces fonctions sont appelées automatiquement pendant les étapes correspondantes du processus d’entraînement et prennent en charge la journalisation des paramètres, des métriques et des artefacts.
Exemples#
-
Journaliser des métriques personnalisées : tu peux ajouter des métriques personnalisées à journaliser en modifiant le dictionnaire
trainer.metricsavant l’appel deon_fit_epoch_end. -
Afficher l’expérience : Pour consulter tes journaux, accède à ton serveur MLflow (généralement
http://127.0.0.1:5000) et sélectionne ton expérience et ton exécution.
-
Afficher l’exécution : Les exécutions sont des modèles individuels au sein d’une expérience. Clique sur une exécution et consulte les détails de l’exécution, notamment les artefacts téléversés et les poids du modèle.

Désactiver MLflow#
Pour désactiver la journalisation MLflow :
yolo settings mlflow=FalseConclusion#
L’intégration de la journalisation MLflow avec Ultralytics YOLO offre un moyen rationalisé de suivre tes expériences de machine learning. Elle te permet de surveiller efficacement les métriques de performance et de gérer les artefacts, ce qui favorise le développement et le déploiement de modèles robustes. Pour plus de détails, consulte la documentation officielle de MLflow.
FAQ#
Ultralytics YOLO avec MLflow prend en charge la journalisation de diverses métriques, de paramètres et d’artefacts tout au long du processus d’entraînement :
- Journalisation des métriques : suit les métriques à la fin de chaque époque et à la fin de l’entraînement.
- Journalisation des paramètres : journalise tous les paramètres utilisés pendant le processus d’entraînement.
- Journalisation des artefacts : enregistre les artefacts du modèle, tels que les poids et les fichiers de configuration, après l’entraînement.
Pour plus d’informations, consulte la documentation du suivi Ultralytics YOLO.
Oui, tu peux désactiver la journalisation MLflow pour Ultralytics YOLO en mettant à jour les paramètres. Voici comment procéder avec la CLI :
yolo settings mlflow=FalsePour personnaliser davantage les paramètres ou les réinitialiser, consulte le guide des paramètres.
Pour démarrer un serveur MLflow afin de suivre tes expériences avec Ultralytics YOLO, utilise la commande suivante :
mlflow server --backend-store-uri runs/mlflowCette commande démarre par défaut un serveur local à l’adresse
http://127.0.0.1:5000. Appuie surCtrl+Cdans ce terminal pour l’arrêter.Consulte la section consacrée aux commandes pour découvrir d’autres options.
Définis la variable d’environnement
MLFLOW_KEEP_RUN_ACTIVEsurTrueavant l’entraînement :export MLFLOW_KEEP_RUN_ACTIVE=TruePar défaut, sa valeur est
False, donc Ultralytics appellemlflow.end_run()à la fin de l’entraînement. AvecMLFLOW_KEEP_RUN_ACTIVE=True, l’exécution reste ouverte afin que tu puisses journaliser des métriques, des paramètres ou des artefacts supplémentaires depuis la même session Python — ferme-la toi-même avecmlflow.end_run()lorsque tu as terminé. Les valeurs1,true,yes,on,yettactivent ce comportement (sans distinction entre majuscules et minuscules).L’intégration de MLflow à Ultralytics YOLO offre plusieurs avantages pour gérer tes expériences de machine learning :
- Suivi amélioré des expériences : suis et compare facilement différentes exécutions ainsi que leurs résultats.
- Reproductibilité accrue des modèles : assure la reproductibilité de tes expériences en journalisant tous les paramètres et artefacts.
- Surveillance des performances : visualise l’évolution des métriques de performance au fil du temps pour prendre des décisions fondées sur les données et améliorer tes modèles.
- Workflow rationalisé : automatise le processus de journalisation pour te concentrer davantage sur le développement des modèles plutôt que sur le suivi manuel.
- Développement collaboratif : partage les résultats des expériences avec les membres de ton équipe afin de favoriser la collaboration et le partage des connaissances.
Pour découvrir en détail comment configurer et exploiter MLflow avec Ultralytics YOLO, consulte la documentation Intégration de MLflow avec Ultralytics YOLO.
Pour configurer la journalisation MLflow avec Ultralytics YOLO, tu dois d’abord vérifier que MLflow est installé. Tu peux l’installer avec pip :
Ensuite, active la journalisation MLflow dans les paramètres Ultralytics. Elle peut être contrôlée à l’aide de la clé
mlflow. Pour plus d’informations, consulte le guide des paramètres.Enfin, démarre un serveur MLflow local pour le suivi :