Intégration de MLflow pour Ultralytics YOLO
Introduction
Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.
Cette page de documentation est un guide complet pour configurer et utiliser les capacités de journalisation de MLflow pour 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 de l'apprentissage automatique de bout en bout. Elle comprend des outils pour le suivi des expériences, le conditionnement du code en exécutions reproductibles, ainsi que le partage et le déploiement des modèles. MLflow est conçu pour fonctionner avec n'importe quelle bibliothèque d'apprentissage automatique et n'importe quel langage de programmation.
Caractéristiques
- Enregistrement des métriques: Consigne les métriques à la fin de chaque époque et à la fin de la formation.
- Enregistrement des paramètres: Enregistre tous les paramètres utilisés dans la formation.
- Enregistrement des artefacts: Consigne les artefacts du modèle, y compris les poids et les fichiers de configuration, à la fin de la formation.
Configuration et conditions préalables
Assure-toi que MLflow est installé. Si ce n'est pas le cas, installe-le à l'aide de pip :
Assure-toi que la journalisation de MLflow est activée dans les paramètres de Ultralytics . En général, cela est contrôlé par les paramètres mflow
clé. Voir les paramètres pour plus d'informations.
Mettre à jour les paramètres de Ultralytics MLflow
Dans l'environnement Python , appelle la fonction update
sur la méthode settings
pour modifier tes paramètres :
Comment l'utiliser
Commandes
-
Définir un nom de projet: Tu peux définir le nom du projet par le biais d'une variable d'environnement :
Ou utilise le
project=<project>
lors de la formation d'un modèle YOLO , c'est-à -direyolo 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 à l'aide d'une variable d'environnement :
Ou utilise le
name=<name>
lors de la formation d'un modèle YOLO , c'est-à -direyolo train project=my_project name=my_name
. -
Démarre le serveur MLflow local: Pour démarrer le suivi, utilise :
Cela démarrera un serveur local à l'adresse http://127.0.0.1:5000 par défaut et enregistre tous les journaux mlflow dans le répertoire 'runs/mlflow'. Pour spécifier un URI différent, définis le paramètre
MLFLOW_TRACKING_URI
variable d'environnement. -
Arrêter les instances du serveur MLflow: Pour arrêter toutes les instances de MLflow en cours d'exécution, exécute :
Enregistrement
L'enregistrement est pris en charge par le on_pretrain_routine_end
, on_fit_epoch_end
et on_train_end
des fonctions de rappel. Ces fonctions sont automatiquement appelées au cours des étapes respectives du processus de formation, et elles gèrent l'enregistrement des paramètres, des métriques et des artefacts.
Exemples
-
Enregistrement des mesures personnalisées: Tu peux ajouter des métriques personnalisées à consigner en modifiant la section
trainer.metrics
dictionnaire avanton_fit_epoch_end
est appelé. -
Voir l'expérience: Pour voir tes journaux, navigue vers ton serveur MLflow (généralement http://127.0.0.1:5000), sélectionne ton expérience et exécute-la.
-
Voir la course: Les runs sont des modèles individuels à l'intérieur d'une expérience. Clique sur un Run pour voir les détails du Run, y compris les artefacts téléchargés et les poids des modèles.
DĂ©sactiver MLflow
Pour désactiver la journalisation du flux ML :
Conclusion
L'intégration de la journalisation MLflow avec Ultralytics YOLO offre un moyen rationalisé de garder une trace de tes expériences d'apprentissage automatique. Elle te permet de surveiller les mesures de performance et de gérer efficacement les artefacts, facilitant ainsi le développement et le déploiement de modèles robustes. Pour plus de détails, consulte la documentation officielle de MLflow.
FAQ
Comment configurer l'enregistrement MLflow avec Ultralytics YOLO ?
Pour configurer la journalisation MLflow avec Ultralytics YOLO , tu dois d'abord t'assurer que MLflow est installé. Tu peux l'installer à l'aide de pip :
Ensuite, active la journalisation de MLflow dans les paramètres de Ultralytics . Cela peut être contrôlé à l'aide de l'option mlflow
clé. Pour plus d'informations, voir le guide des réglages.
Mettre à jour les paramètres de Ultralytics MLflow
Enfin, démarre un serveur MLflow local pour le suivi :
Quels sont les mesures et les paramètres que je peux enregistrer en utilisant MLflow avec Ultralytics YOLO ?
Ultralytics YOLO avec MLflow prend en charge l'enregistrement de diverses métriques, paramètres et artefacts tout au long du processus de formation :
- Metrics Logging: Tracks metrics at the end of each epoch and upon training completion.
- Enregistrement des paramètres: Enregistre tous les paramètres utilisés dans le processus de formation.
- Enregistrement des artefacts: Sauvegarde les artefacts du modèle comme les poids et les fichiers de configuration après la formation.
Pour des informations plus détaillées, consulte la documentation sur le suiviUltralytics YOLO .
Puis-je désactiver l'enregistrement MLflow une fois qu'il est activé ?
Oui, tu peux désactiver l'enregistrement MLflow pour Ultralytics YOLO en mettant à jour les paramètres. Voici comment tu peux le faire en utilisant le site CLI:
Pour une personnalisation plus poussée et la réinitialisation des paramètres, reporte-toi au guide des paramètres.
Comment puis-je démarrer et arrêter un serveur MLflow pour Ultralytics YOLO tracking ?
Pour démarrer un serveur MLflow afin de suivre tes expériences sur Ultralytics YOLO , utilise la commande suivante :
Cette commande démarre par défaut un serveur local à l'adresse http://127.0.0.1:5000. Si tu dois arrêter les instances de serveur MLflow en cours d'exécution, utilise la commande suivante bash :
Reporte-toi Ă la section des commandes pour plus d'options de commande.
Quels sont les avantages de l'intégration de MLflow à Ultralytics YOLO pour le suivi des expériences ?
L'intégration de MLflow à Ultralytics YOLO offre plusieurs avantages pour la gestion de tes expériences d'apprentissage automatique :
- Suivi amélioré des expériences: Permet de suivre et de comparer facilement les différentes expériences et leurs résultats.
- Reproductibilité améliorée des modèles: Assure-toi que tes expériences sont reproductibles en enregistrant tous les paramètres et artefacts.
- Surveillance des performances: Visualise les mesures de performance au fil du temps afin de prendre des décisions basées sur les données pour améliorer le modèle.
Pour un examen approfondi de la configuration et de l'utilisation de MLflow avec Ultralytics YOLO , consulte la documentation MLflow Integration for Ultralytics YOLO .