Skip to content

Intégration de MLflow pour Ultralytics YOLO

L'écosystème MLflow

Introduction

La journalisation 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, propose 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 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 :

pip install mlflow

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 :

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Si tu préfères utiliser l'interface de ligne de commande, les commandes suivantes te permettront de modifier tes paramètres :

# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Comment l'utiliser

Commandes

  1. Définir un nom de projet: Tu peux définir le nom du projet par le biais d'une variable d'environnement :

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

Ou utilise le project=<project> lors de la formation d'un modèle YOLO , c'est-à-dire yolo train project=my_project.

  1. 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 :

    export MLFLOW_RUN=<your_run_name>
    

Ou utilise le name=<name> lors de la formation d'un modèle YOLO , c'est-à-dire yolo train project=my_project name=my_name.

  1. Démarre le serveur MLflow local: Pour démarrer le suivi, utilise :

    mlflow server --backend-store-uri runs/mlflow'
    

Cela démarrera un serveur local à l'adresse http://127.0.0.1:5000 par défaut et sauvegardera tous les journaux mlflow dans le répertoire 'runs/mlflow'. Pour spécifier un URI différent, définis l'option MLFLOW_TRACKING_URI variable d'environnement.

  1. Arrêter les instances du serveur MLflow: Pour arrêter toutes les instances de MLflow en cours d'exécution, exécute :

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

Enregistrement

L'enregistrement est pris en charge par le on_pretrain_routine_end, on_fit_epoch_endet 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

  1. Enregistrement des mesures personnalisées: Tu peux ajouter des métriques personnalisées à consigner en modifiant la section trainer.metrics dictionnaire avant on_fit_epoch_end est appelé.

  2. Voir l'expérience: Pour afficher tes journaux, navigue vers ton serveur MLflow (généralement http://127.0.0.1:5000) et sélectionne ton expérience et exécute-la. YOLO Expérience MLflow

  3. 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. YOLO MLflow Run

DĂ©sactiver MLflow

Pour désactiver la journalisation du flux ML :

yolo settings mlflow=False

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.



Créé le 2023-11-12, Mis à jour le 2024-05-18
Auteurs : glenn-jocher (4), Burhan-Q (1)

Commentaires