Découvre YOLO26 : l'IA de vision de nouvelle génération.
Ultralytics
Intégrations

Entraîne et surveille à distance Ultralytics YOLOv5 en utilisant ClearML

Explore notre partenariat avec ClearML pour une expérience Ultralytics YOLOv5 améliorée avec une intégration ML fluide, un suivi d'expériences, et bien plus encore.

L'L'équipe Ultralytics
4 min read
Entraînement et suivi de YOLOv5 avec ClearML

Chez Ultralytics, nous collaborons commercialement avec d'autres startups pour nous aider à financer la recherche et le développement de nos incroyables outils open-source, comme YOLOv5, afin de les garder gratuits pour tout le monde. Cet article peut contenir des liens d'affiliation vers ces partenaires.

ClearML est notre nouveau partenaire : une boîte à outils open-source conçue pour te faire gagner du temps.

Avec pour mission d'accélérer l'adoption du ML, ClearML rend l'intégration du ML transparente dans n'importe quel produit logiciel ou matériel existant.

Cette intégration rend encore plus simple l'entraînement d'un modèle YOLOv5 et son suivi automatique via le gestionnaire d'expériences ClearML. Tu peux facilement spécifier un ID de version de jeu de données ClearML comme entrée, et il sera automatiquement utilisé pour entraîner ton modèle.

Link to this sectionFais passer ton suivi d'expériences au niveau supérieur#

  • Suis chaque cycle d'entraînement YOLOv5 dans le gestionnaire d'expériences.
  • Versionne et accède facilement à tes données d'entraînement personnalisées avec l'outil intégré de versioning de données ClearML.
  • Obtiens le meilleur mAP possible en utilisant l'optimisation des hyperparamètres de ClearML.
  • Transforme ton modèle YOLOv5 fraîchement entraîné en une API avec seulement quelques commandes grâce à ClearML Serving.

C'est à toi de choisir combien de ces outils tu souhaites utiliser ; tu peux te limiter au gestionnaire d'expériences ou les enchaîner pour créer un pipeline impressionnant.

Link to this sectionConfiguration#

Pour assurer le suivi de tes expériences et de tes données, ClearML doit communiquer avec un serveur. Tu as deux options pour cela : soit t'inscrire gratuitement au ClearML Hosted Service, soit configurer ton propre serveur, voir la documentation de déploiement de ClearML Server.

Même le serveur est open-source, donc si tu manipules des données sensibles, ce n'est pas un problème !

  1. Installe le paquet Python clearml : pip install clearml
  2. Connecte le SDK ClearML au serveur en créant des identifiants (va en haut à droite dans Settings → Workspace → Create new credentials), puis exécute la commande ci-dessous et suis les instructions : clearml-init

Et voilà ! Tu es prêt à commencer...

Link to this sectionEntraîner YOLOv5 avec ClearML#

Pour activer le suivi d'expériences ClearML, installe simplement le paquet pip ClearML.

pip install clearml

Cela permettra l'intégration avec le script d'entraînement YOLOv5. Chaque cycle d'entraînement sera désormais capturé et stocké par le gestionnaire d'expériences ClearML. Si tu souhaites changer le project_name ou le task_name, rends-toi dans notre logger personnalisé, où tu peux le modifier : utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Cela capturera :

  • Code source + modifications non commitées
  • Paquets installés
  • (Hyper)paramètres
  • Fichiers de modèle (utilise --save-period n pour enregistrer un checkpoint tous les n epochs)
  • Sortie console
  • Scalaires (mAP_0.5, mAP_0.5:0.95, précision, rappel, pertes, taux d'apprentissage, ...)
  • Informations générales telles que les détails de la machine, le temps d'exécution, la date de création, etc.
  • Tous les graphiques produits, tels que le corrélogramme des étiquettes et la matrice de confusion
  • Images avec des boîtes englobantes (BBox) par epoch
  • Mosaïque par epoch
  • Images de validation par epoch

Pas mal ! Maintenant, nous pouvons visualiser toutes ces informations dans l'interface utilisateur de ClearML pour avoir un aperçu de la progression de l'entraînement. Ajoute des colonnes personnalisées à la vue tabulaire (comme par ex. mAP_0.5) pour trier facilement le modèle le plus performant. Ou sélectionne plusieurs expériences pour les comparer directement !

Nous pouvons faire encore plus avec toutes ces informations, comme l'optimisation des hyperparamètres et l'exécution à distance, alors continue ta lecture pour apprendre comment !

Link to this sectionGestion de version des jeux de données#

Versionner tes données séparément de ton code est généralement une bonne idée et facilite également l'acquisition de la dernière version. Ce dépôt permet de fournir un ID de version de jeu de données, et il s'assurera de récupérer les données si elles ne sont pas encore présentes. De plus, ce flux de travail enregistre également l'ID du jeu de données utilisé dans les paramètres de la tâche, afin que tu saches toujours avec certitude quelles données ont été utilisées dans quelle expérience !

Link to this sectionPrépare ton jeu de données#

Le dépôt YOLOv5 prend en charge un certain nombre de jeux de données différents via des fichiers YAML contenant leurs informations. Par défaut, les jeux de données sont téléchargés dans le dossier ../datasets par rapport au dossier racine du dépôt. Donc, si tu as téléchargé le jeu de données coco128 en utilisant le lien dans le YAML ou avec les scripts fournis par yolov5, tu obtiens cette structure de dossiers :

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Mais il peut s'agir de n'importe quel jeu de données de ton choix. N'hésite pas à utiliser le tien, tant que tu respectes cette structure de dossiers.

Ensuite, ⚠️copie le fichier YAML correspondant à la racine du dossier du jeu de données⚠️. Ces fichiers YAML contiennent les informations dont ClearML aura besoin pour utiliser correctement le jeu de données. Tu peux le faire toi-même également, bien sûr, suis simplement la structure des exemples YAML.

Fondamentalement, nous avons besoin des clés suivantes : path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Link to this sectionTéléverse ton jeu de données#

Pour importer ce jeu de données dans ClearML en tant que jeu de données versionné, va dans le dossier racine du jeu de données et exécute la commande suivante :

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

La commande clearml-data sync est en fait une commande raccourcie. Tu pourrais également exécuter ces commandes les unes après les autres :

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

Link to this sectionLance l'entraînement en utilisant un jeu de données ClearML#

Maintenant que tu as un jeu de données ClearML, tu peux très simplement l'utiliser pour entraîner des modèles YOLOv5 personnalisés.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Link to this sectionOptimisation des hyperparamètres#

Maintenant que nous avons nos expériences et notre version de données, il est temps de voir ce que nous pouvons construire par-dessus !

En utilisant les informations de code, les paquets installés et les détails de l'environnement, l'expérience elle-même est désormais totalement reproductible. En fait, ClearML te permet de cloner une expérience et même de changer ses paramètres. Nous pouvons alors simplement la relancer avec ces nouveaux paramètres automatiquement ; c'est essentiellement ce que fait l'HPO !

Pour exécuter l'optimisation des hyperparamètres localement, nous avons inclus un script pré-fait pour toi. Assure-toi juste qu'une tâche d'entraînement a été exécutée au moins une fois, afin qu'elle soit présente dans le gestionnaire d'expériences ClearML ; nous allons essentiellement la cloner et modifier ses hyperparamètres.

Tu devras renseigner l'ID de cette tâche modèle dans le script situé dans utils/loggers/clearml/hpo.py puis l'exécuter. Tu peux remplacer task.execute_locally() par task.execute() pour la placer dans une file d'attente ClearML et laisser un agent distant travailler dessus à la place.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Link to this sectionExécution à distance (Avancé)#

Exécuter l'HPO localement est très pratique, mais que faire si nous voulons exécuter nos expériences sur une machine distante à la place ? Peut-être as-tu accès à une machine GPU très puissante sur site, ou disposes-tu d'un budget pour utiliser des GPU cloud. C'est là que le ClearML Agent entre en jeu.

Découvre ce que l'agent peut faire ici :

En résumé : chaque expérience suivie par le gestionnaire d'expériences contient suffisamment d'informations pour la reproduire sur une autre machine (paquets installés, modifications non commitées, etc.). Un agent ClearML fait exactement cela : il écoute une file d'attente pour les tâches entrantes et, lorsqu'il en trouve une, il recrée l'environnement et l'exécute tout en continuant de rapporter les scalaires, graphiques, etc., au gestionnaire d'expériences.

Tu peux transformer n'importe quelle machine (une VM cloud, une machine GPU locale, ton propre ordinateur portable) en agent ClearML en exécutant simplement :

clearml-agent daemon --queue [--docker]

Link to this sectionClonage, édition et mise en file d'attente#

Avec notre agent en cours d'exécution, nous pouvons lui donner du travail. Tu te souviens de la section HPO où nous avons vu qu'on pouvait cloner une tâche et modifier les hyperparamètres ? Nous pouvons le faire depuis l'interface aussi !

🪄 Clone l'expérience par un clic droit

🎯 Modifie les hyperparamètres comme tu le souhaites

⏳ Place la tâche dans l'une des files d'attente par un clic droit

Link to this sectionExécuter une tâche à distance#

Maintenant, tu peux cloner une tâche comme expliqué ci-dessus, ou simplement marquer ton script actuel en ajoutant task.execute_remotely(). À l'exécution, il sera placé dans une file d'attente pour que l'agent commence à travailler dessus !

Pour exécuter le script d'entraînement YOLOv5 à distance, tout ce que tu as à faire est d'ajouter cette ligne au script train.py après l'instanciation du logger ClearML :

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

Des questions ? Rejoins notre communauté et pose ta question dès aujourd'hui !

Explore solutions

Real-time AI that works with your team

IA dans la robotique

Équipe tes machines plus intelligentes avec les modèles Ultralytics YOLO. La vision par IA dans la robotique propulse la navigation autonome, la perception, le suivi d'objets et le contrôle en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans la logistique

Simplifie la logistique avec les modèles Ultralytics YOLO. La vision par IA permet l'inspection des colis, le tri, le suivi des véhicules et la surveillance de la sécurité des entrepôts en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA alimente le suivi des stocks, la surveillance des étagères, la gestion des files d'attente et des informations plus intelligentes sur les clients.
En savoir plus
Real-time AI that works with your team

IA dans la santé

Construis des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans la santé permet une imagerie médicale plus rapide, des diagnostics plus intelligents et une surveillance des patients.
En savoir plus
Real-time AI that works with your team

IA dans la fabrication

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA favorise le contrôle qualité, la détection des défauts, la conformité aux EPI et l'automatisation des chaînes de montage.
En savoir plus
Real-time AI that works with your operation

IA dans l'automobile

Applique la vision par ordinateur dans l'automobile avec les modèles Ultralytics YOLO. L'IA de vision améliore la sécurité routière, l'assistance à la conduite et l'automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Real-time AI tailored to your operation

IA en agriculture

Intègre l'IA de vision à l'agriculture intelligente avec les modèles Ultralytics YOLO. Optimise la surveillance des cultures, le suivi du bétail et l'agriculture de précision pour des rendements plus élevés et plus intelligents.
En savoir plus
Real-time AI that works with your team

IA dans la robotique

Équipe tes machines plus intelligentes avec les modèles Ultralytics YOLO. La vision par IA dans la robotique propulse la navigation autonome, la perception, le suivi d'objets et le contrôle en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans la logistique

Simplifie la logistique avec les modèles Ultralytics YOLO. La vision par IA permet l'inspection des colis, le tri, le suivi des véhicules et la surveillance de la sécurité des entrepôts en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA alimente le suivi des stocks, la surveillance des étagères, la gestion des files d'attente et des informations plus intelligentes sur les clients.
En savoir plus
Real-time AI that works with your team

IA dans la santé

Construis des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans la santé permet une imagerie médicale plus rapide, des diagnostics plus intelligents et une surveillance des patients.
En savoir plus
Real-time AI that works with your team

IA dans la fabrication

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA favorise le contrôle qualité, la détection des défauts, la conformité aux EPI et l'automatisation des chaînes de montage.
En savoir plus
Real-time AI that works with your operation

IA dans l'automobile

Applique la vision par ordinateur dans l'automobile avec les modèles Ultralytics YOLO. L'IA de vision améliore la sécurité routière, l'assistance à la conduite et l'automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Real-time AI tailored to your operation

IA en agriculture

Intègre l'IA de vision à l'agriculture intelligente avec les modèles Ultralytics YOLO. Optimise la surveillance des cultures, le suivi du bétail et l'agriculture de précision pour des rendements plus élevés et plus intelligents.
En savoir plus
Real-time AI that works with your team

IA dans la robotique

Équipe tes machines plus intelligentes avec les modèles Ultralytics YOLO. La vision par IA dans la robotique propulse la navigation autonome, la perception, le suivi d'objets et le contrôle en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans la logistique

Simplifie la logistique avec les modèles Ultralytics YOLO. La vision par IA permet l'inspection des colis, le tri, le suivi des véhicules et la surveillance de la sécurité des entrepôts en temps réel.
En savoir plus
Real-time AI that works with your team

IA dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA alimente le suivi des stocks, la surveillance des étagères, la gestion des files d'attente et des informations plus intelligentes sur les clients.
En savoir plus
Real-time AI that works with your team

IA dans la santé

Construis des solutions de santé avec les modèles Ultralytics YOLO. L'IA de vision dans la santé permet une imagerie médicale plus rapide, des diagnostics plus intelligents et une surveillance des patients.
En savoir plus
Real-time AI that works with your team

IA dans la fabrication

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA favorise le contrôle qualité, la détection des défauts, la conformité aux EPI et l'automatisation des chaînes de montage.
En savoir plus
Real-time AI that works with your operation

IA dans l'automobile

Applique la vision par ordinateur dans l'automobile avec les modèles Ultralytics YOLO. L'IA de vision améliore la sécurité routière, l'assistance à la conduite et l'automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Real-time AI tailored to your operation

IA en agriculture

Intègre l'IA de vision à l'agriculture intelligente avec les modèles Ultralytics YOLO. Optimise la surveillance des cultures, le suivi du bétail et l'agriculture de précision pour des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble le futur de l'IA !

Commence ton aventure avec le futur de l'apprentissage automatique