Passer au contenu

Intégration de MLflow pour Ultralytics YOLO

Écosystème MLflow

Introduction

L'enregistrement des expériences est un aspect essentiel des flux de travail d'apprentissage automatique qui permet de suivre diverses métriques, paramètres et artefacts. Il contribue à améliorer la reproductibilité des modèles, à déboguer les problèmes et à améliorer les performances des modèles. Ultralytics YOLO, 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 la configuration et l'utilisation des capacités d'enregistrement MLflow pour votre projet Ultralytics YOLO.

Qu'est-ce que MLflow ?

MLflow est une plateforme open source développée par Databricks pour la gestion du cycle de vie de l'apprentissage automatique de bout en bout. Elle comprend des outils pour le suivi des expériences, l'empaquetage du code dans des 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.

Fonctionnalités

  • Enregistrement des métriques : Enregistre les métriques à la fin de chaque époque et à la fin de l'entraînement.
  • Enregistrement des paramètres : Enregistre tous les paramètres utilisés dans l'entraînement.
  • Enregistrement des artefacts : Enregistre les artefacts du modèle, y compris les poids et les fichiers de configuration, à la fin de l'entraînement.

Configuration et prérequis

Assurez-vous que MLflow est installé. Si ce n'est pas le cas, installez-le à l'aide de pip :

pip install mlflow

Assurez-vous que l'enregistrement MLflow est activé dans les paramètres d'Ultralytics. Généralement, ceci est contrôlé par la clé mlflow clé. Consultez la page settings pour plus d'informations.

Mettre à jour les paramètres MLflow d'Ultralytics

Dans l'environnement python, appelez la update méthode sur le settings objet pour modifier vos paramètres :

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Si vous préférez utiliser l'interface de ligne de commande, les commandes suivantes vous permettront de modifier vos paramètres :

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

Comment utiliser

Commandes

  1. Définir un nom de projet : Vous pouvez définir le nom du projet via une variable d'environnement :

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    Ou utilisez l' project=<project> argument lors de l'entraînement d'un modèle YOLO, c'est-à-dire yolo train project=my_project.

  2. Définir un nom d'exécution : Semblable à la définition d'un nom de projet, vous pouvez définir le nom de l'exécution via une variable d'environnement :

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    Ou utilisez l' name=<name> argument lors de l'entraînement d'un modèle YOLO, c'est-à-dire yolo train project=my_project name=my_name.

  3. Démarrer le serveur MLflow local : Pour démarrer le suivi, utilisez :

    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 enregistrera tous les journaux mlflow dans le répertoire 'runs\/mlflow'. Pour spécifier un URI différent, définissez le MLFLOW_TRACKING_URI variable d'environnement.

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

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

Journalisation

L'enregistrement est géré par les on_pretrain_routine_end, on_fit_epoch_end, et on_train_end fonctions de rappel. Ces fonctions sont automatiquement appelées pendant les étapes respectives du processus d'entraînement, et elles gèrent la journalisation des paramètres, des métriques et des artefacts.

Exemples

  1. Enregistrement des métriques personnalisées: Vous pouvez ajouter des métriques personnalisées à enregistrer en modifiant le dictionnaire trainer.metrics avant que on_fit_epoch_end soit appelé.

  2. Afficher l'expérience: Pour consulter vos logs, accédez à votre serveur MLflow (généralement http://127.0.0.1:5000) et sélectionnez votre expérience et votre exécution. Expérience YOLO MLflow

  3. Afficher l'exécution: Les exécutions sont des modèles individuels au sein d'une expérience. Cliquez sur une exécution et consultez les détails de l'exécution, y compris les artefacts téléchargés et les poids du modèle. Exécution YOLO MLflow

Désactivation de MLflow

Pour désactiver l'enregistrement MLflow :

yolo settings mlflow=False

Conclusion

L'intégration de la journalisation MLflow avec Ultralytics YOLO offre un moyen simplifié de suivre vos expériences d'apprentissage automatique. Elle vous permet de surveiller les métriques de performance et de gérer efficacement les artefacts, contribuant 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 l'enregistrement MLflow avec Ultralytics YOLO, vous devez d'abord vous assurer que MLflow est installé. Vous pouvez l'installer en utilisant pip :

pip install mlflow

Ensuite, activez l'enregistrement MLflow dans les paramètres d'Ultralytics. Ceci peut être contrôlé en utilisant la clé mlflow . Pour plus d'informations, consultez le guide des paramètres.

Mettre à jour les paramètres MLflow d'Ultralytics

from ultralytics import settings

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

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

Enfin, démarrez un serveur MLflow local pour le suivi :

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

Quelles métriques et quels paramètres puis-je enregistrer à l'aide de 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 d'entraînement :

  • Enregistrement des métriques : Suit les métriques à la fin de chaque époque et à la fin de l'entraînement.
  • Enregistrement des paramètres : Enregistre tous les paramètres utilisés dans le processus d'entraînement.
  • Enregistrement des artefacts : Enregistre les artefacts du modèle tels que les poids et les fichiers de configuration après l'entraînement.

Pour des informations plus détaillées, consultez la documentation de suivi d'Ultralytics 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 la CLI :

yolo settings mlflow=False

Pour plus de personnalisation et pour réinitialiser les paramètres, consultez le guide des paramètres.

Comment puis-je démarrer et arrêter un serveur MLflow pour le suivi Ultralytics YOLO ?

Pour démarrer un serveur MLflow pour suivre vos expériences dans Ultralytics YOLO, utilisez la commande suivante :

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

Cette commande démarre un serveur local à l'adresse http://127.0.0.1:5000 par défaut. Si vous devez arrêter les instances de serveur MLflow en cours d'exécution, utilisez la commande bash suivante :

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

Consultez 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 différentes exécutions et leurs résultats.
  • Reproductibilité améliorée du modèle : Assurez-vous que vos expériences sont reproductibles en enregistrant tous les paramètres et artefacts.
  • Surveillance des performances : Visualisez les métriques de performance au fil du temps pour prendre des décisions basées sur les données afin d'améliorer le modèle.
  • Flux de travail simplifié : automatisez le processus de journalisation pour vous concentrer davantage sur le développement du modèle plutôt que sur le suivi manuel.
  • Développement collaboratif : Partagez les résultats des expériences avec les membres de l’équipe pour une meilleure collaboration et un meilleur partage des connaissances.

Pour un aperçu approfondi de la configuration et de l'utilisation de MLflow avec Ultralytics YOLO, consultez la documentation Intégration de MLflow pour Ultralytics YOLO.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 4 mois

Commentaires