Sécurité prête pour l'entreprise : Conforme ISO 27001 + SOC 2 Type I.

Link to this sectionIntégration de MLflow pour Ultralytics YOLO#

MLflow experiment tracking with Ultralytics YOLO

Link to this sectionIntroduction#

La journalisation des expériences est un aspect crucial des flux de travail de machine learning qui permet de suivre divers paramètres, mesures et artefacts. Elle contribue à améliorer la reproductibilité des modèles, à déboguer les problèmes et à optimiser les performances. Ultralytics YOLO, reconnu 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 du machine learning.

Cette page de documentation est un guide complet pour configurer et utiliser les fonctionnalités de journalisation de MLflow pour ton projet Ultralytics YOLO.

Link to this sectionQu'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 inclut des outils pour suivre les expériences, packager 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.

Link to this sectionFonctionnalités#

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

Link to this sectionConfiguration et prérequis#

Assure-toi que MLflow est installé. Si ce n'est pas le cas, installe-le via pip :

pip install mlflow

Vérifie que la journalisation MLflow est activée dans les paramètres d'Ultralytics. Habituellement, cela est contrôlé par la clé mlflow dans les paramètres. Consulte la page des paramètres pour plus d'informations.

Mettre à jour les paramètres MLflow d'Ultralytics

Au sein de 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()

Link to this sectionComment l'utiliser#

Link to this sectionCommandes#

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

    Or use the project=<project> argument when training a YOLO model, i.e. yolo train project=my_project.

  2. Définir un nom d'exécution : De manière similaire à la définition d'un nom de projet, tu peux définir le nom de l'exécution via une variable d'environnement :

    export MLFLOW_RUN=YOUR_RUN_NAME

    Or use the name=<name> argument when training a YOLO model, i.e. yolo train project=my_project name=my_name.

  3. Démarrer un serveur MLflow local : Pour commencer le suivi, utilise :

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

    Cela démarrera un serveur local sur http://127.0.0.1:5000 par défaut et enregistrera tous les logs mlflow dans le répertoire 'runs/mlflow'. Pour pointer tes exécutions d'entraînement vers un serveur de suivi différent, exporte MLFLOW_TRACKING_URI avant l'entraînement :

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  4. Garder l'exécution MLflow active après l'entraînement : Par défaut, Ultralytics termine l'exécution MLflow automatiquement une fois l'entraînement fini. Pour garder l'exécution ouverte (par exemple, pour journaliser des mesures ou des artefacts supplémentaires depuis le même notebook), règle MLFLOW_KEEP_RUN_ACTIVE sur True avant l'entraînement :

    export MLFLOW_KEEP_RUN_ACTIVE=True

    La valeur est analysée sans tenir compte de la casse ; seule la chaîne true active ce comportement, et toute autre valeur (y compris si elle n'est pas définie) conserve le comportement par défaut qui ferme l'exécution. N'oublie pas de la fermer manuellement par la suite avec mlflow.end_run().

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

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

Link to this sectionJournalisation#

The logging is taken care of by the on_pretrain_routine_end, on_fit_epoch_end, and on_train_end callback functions. These functions are automatically called during the respective stages of the training process, and they handle the logging of parameters, metrics, and artifacts.

Link to this sectionExemples#

  1. Journalisation des mesures personnalisées : Tu peux ajouter des mesures personnalisées à journaliser en modifiant le dictionnaire trainer.metrics avant que on_fit_epoch_end ne soit appelé.

  2. Voir l'expérience : Pour voir tes logs, accède à ton serveur MLflow (généralement http://127.0.0.1:5000) et sélectionne ton expérience et ton exécution. MLflow experiment tracking interface for YOLO

  3. Voir l'exécution : Les exécutions sont des modèles individuels au sein d'une expérience. Clique sur une exécution pour voir ses détails, y compris les artefacts téléchargés et les poids du modèle. MLflow run details with YOLO artifacts

Link to this sectionDésactiver MLflow#

Pour désactiver la journalisation MLflow :

yolo settings mlflow=False

Link to this sectionConclusion#

L'intégration de la journalisation MLflow avec Ultralytics YOLO offre un moyen rationalisé de garder une trace de tes expériences de machine learning. Cela te permet de surveiller efficacement les mesures de performance et de gérer les artefacts, aidant ainsi au développement et au déploiement robustes de modèles. Pour plus de détails, visite la documentation officielle de MLflow.

Link to this sectionFAQ#

Link to this sectionComment configurer la journalisation 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 via pip :

pip install mlflow

Ensuite, active la journalisation MLflow dans les paramètres d'Ultralytics. Cela peut être contrôlé en utilisant la clé mlflow. Pour plus d'informations, consulte 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()

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

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

Link to this sectionQuelles mesures et quels paramètres puis-je journaliser en utilisant MLflow avec Ultralytics YOLO ?#

Ultralytics YOLO avec MLflow prend en charge la journalisation de diverses mesures, paramètres et artefacts tout au long du processus d'entraînement :

  • Journalisation des mesures : Suit les mesures à la fin de chaque époque et à la fin de l'entraînement.
  • Journalisation des paramètres : Enregistre tous les paramètres utilisés dans le processus d'entraînement.
  • Journalisation des artefacts : Sauvegarde 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, visite la documentation de suivi d'Ultralytics YOLO.

Link to this sectionPuis-je désactiver la journalisation MLflow une fois qu'elle est activée ?#

Oui, tu peux désactiver la journalisation MLflow pour Ultralytics YOLO en mettant à jour les paramètres. Voici comment tu peux le faire en utilisant la CLI :

yolo settings mlflow=False

Pour une personnalisation plus poussée et la réinitialisation des paramètres, réfère-toi au guide des paramètres.

Link to this sectionComment puis-je démarrer et arrêter un serveur MLflow pour le suivi avec Ultralytics YOLO ?#

Pour démarrer un serveur MLflow afin de suivre tes expériences dans Ultralytics YOLO, utilise la commande suivante :

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

Cette commande démarre un serveur local sur http://127.0.0.1:5000 par défaut. Si tu as besoin d'arrêter les instances du serveur MLflow en cours d'exécution, utilise la commande bash suivante :

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

Réfère-toi à la section des commandes pour plus d'options de commande.

Link to this sectionComment garder l'exécution MLflow active après la fin de l'entraînement ?#

Règle la variable d'environnement MLFLOW_KEEP_RUN_ACTIVE sur True avant l'entraînement :

export MLFLOW_KEEP_RUN_ACTIVE=True

Par défaut, elle est sur False, donc Ultralytics appelle mlflow.end_run() une fois l'entraînement terminé. Avec MLFLOW_KEEP_RUN_ACTIVE=True, l'exécution reste ouverte pour que tu puisses journaliser des mesures, paramètres ou artefacts supplémentaires depuis la même session Python — ferme-la toi-même avec mlflow.end_run() une fois terminé. La valeur est analysée sans tenir compte de la casse ; seule true active ce comportement.

Link to this sectionQuels 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 tes expériences de machine learning :

  • Suivi d'expérience amélioré : Suis et compare facilement différentes exécutions et leurs résultats.
  • Reproductibilité des modèles améliorée : Assure que tes expériences sont reproductibles en journalisant tous les paramètres et artefacts.
  • Surveillance des performances : Visualise les mesures 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 rationalisé : Automatise le processus de journalisation pour te concentrer davantage sur le développement du modèle plutôt que sur le suivi manuel.
  • Développement collaboratif : Partage les résultats d'expériences avec les membres de l'équipe pour une meilleure collaboration et un partage des connaissances.

Pour une analyse approfondie de la configuration et de l'exploitation de MLflow avec Ultralytics YOLO, explore la documentation Intégration de MLflow pour Ultralytics YOLO.

Commentaires