Intégration de MLflow pour Ultralytics YOLO
Introduction
L'enregistrement des expériences est un aspect crucial des flux de travail d'apprentissage automatique qui permet le suivi de diverses métriques, paramètres et artefacts. Il permet d'améliorer la reproductibilité des modèles, de déboguer les problèmes et d'améliorer les performances des modèles. Ultralytics YOLOMLflow, connu pour ses capacités de détection d'objets en temps réel, offre désormais une intégration avec MLflow, une plateforme open-source pour la gestion complète du cycle de vie de l'apprentissage automatique.
Cette page de documentation est un guide complet pour configurer et utiliser les capacités de journalisation de MLflow pour votre 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, l'intégration du code dans des exécutions reproductibles, ainsi que le partage et le déploiement de 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: Enregistre les mesures à 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: Enregistre les artefacts du modèle, y compris les poids et les fichiers de configuration, à la fin de la formation.
Configuration et conditions préalables
S'assurer que MLflow est installé. Si ce n'est pas le cas, installez-le en utilisant pip :
Assurez-vous que la journalisation 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 l'article paramètres pour plus d'informations.
Mise à jour des paramètres de Ultralytics MLflow
Dans l'environnement Python , appelez la commande update
sur la méthode settings
pour modifier vos paramètres :
Comment l'utiliser
Commandes
-
Définir un nom de projet: Vous pouvez définir le nom du projet via une variable d'environnement :
Ou utilisez la fonction
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, vous pouvez définir le nom de l'exécution à l'aide d'une variable d'environnement :
Ou utilisez la fonction
name=<name>
lors de la formation d'un modèle YOLO , c'est-à -direyolo train project=my_project name=my_name
. -
Démarrer le serveur MLflow local: Pour démarrer le suivi, utiliser :
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éfinissez l'option
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écuter :
Enregistrement
La journalisation est prise 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 différentes étapes du processus de formation et gèrent l'enregistrement des paramètres, des métriques et des artefacts.
Exemples
-
Enregistrement de mesures personnalisées: Vous pouvez ajouter des mesures personnalisées à consigner en modifiant le paramètre
trainer.metrics
dictionnaire avanton_fit_epoch_end
est appelé. -
Voir l'expérience: Pour consulter vos journaux, accédez à votre serveur MLflow (généralement http://127.0.0.1:5000), sélectionnez votre expérience et exécutez-la.
-
Voir la course: Les runs sont des modèles individuels au sein d'une expérience. Cliquez 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Ă©sactivation de 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 suivre vos expériences d'apprentissage automatique. Elle vous permet de surveiller les métriques de performance et de gérer les artefacts de manière efficace, aidant ainsi au développement et au déploiement de modèles robustes. Pour plus de détails, veuillez consulter la documentation officielle de MLflow.
FAQ
Comment configurer l'enregistrement MLflow avec Ultralytics YOLO ?
Pour configurer la journalisation MLflow avec Ultralytics YOLO , vous devez d'abord vous assurer que MLflow est installé. Vous pouvez l'installer en utilisant pip :
Ensuite, activez la journalisation MLflow dans les paramètres Ultralytics . Ceci peut être contrôlé à l'aide de l'option mlflow
de la clé. Pour plus d'informations, voir la rubrique guide des réglages.
Mise à jour des paramètres de Ultralytics MLflow
Enfin, lancer un serveur MLflow local pour le suivi :
Quels sont les métriques et paramètres que je peux enregistrer en utilisant MLflow avec Ultralytics YOLO ?
Ultralytics YOLO avec MLflow prend en charge l'enregistrement de diverses mesures, paramètres et artefacts tout au long du processus de formation :
- Enregistrement des mesures: Suivi des mesures à la fin de chaque période et à l'issue de la formation.
- Enregistrement des paramètres: Enregistre tous les paramètres utilisés dans le processus de formation.
- Enregistrement 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, consultez la documentation sur le suiviUltralytics YOLO .
Puis-je désactiver l'enregistrement MLflow une fois qu'il est activé ?
Oui, vous pouvez désactiver l'enregistrement MLflow pour Ultralytics YOLO en mettant à jour les paramètres. Voici comment vous pouvez le faire en utilisant le site CLI:
Pour une personnalisation plus poussée et une réinitialisation des paramètres, reportez-vous 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 vos expériences dans Ultralytics YOLO , utilisez la commande suivante :
Cette commande démarre par défaut un serveur local à l'adresse http://127.0.0.1:5000. Si vous devez arrêter les instances de serveur MLflow en cours d'exécution, utilisez la commande suivante bash :
Reportez-vous Ă la section des commandes pour plus d'options de commande.
Quels sont les avantages de l'intégration de MLflow avec Ultralytics YOLO pour le suivi des expériences ?
L'intégration de MLflow avec Ultralytics YOLO offre plusieurs avantages pour la gestion de vos expériences d'apprentissage automatique :
- Suivi amélioré des expériences: Suivez et comparez facilement les différentes expériences et leurs résultats.
- Amélioration de la reproductibilité des modèles: Assurez-vous que vos expériences sont reproductibles en enregistrant tous les paramètres et les artefacts.
- Suivi des performances: Visualisez les mesures de performance au fil du temps afin de prendre des décisions fondées sur des données en vue d'améliorer le modèle.
Pour un examen approfondi de la configuration et de l'exploitation de MLflow avec Ultralytics YOLO , consultez la documentation MLflow Integration for Ultralytics YOLO .