Triff YOLO26: Vision-KI der nächsten Generation.
Ultralytics
Integrationen

Trainiere und überwache Ultralytics YOLOv5 aus der Ferne mit ClearML

Erkunde unsere Partnerschaft mit ClearML für eine verbesserte Ultralytics YOLOv5-Erfahrung mit nahtloser ML-Integration, Experiment-Tracking und mehr.

DADas Ultralytics-Team
4 min read
YOLOv5 mit ClearML trainieren und überwachen

Bei Ultralytics arbeiten wir kommerziell mit anderen Startups zusammen, um die Forschung und Entwicklung unserer großartigen Open-Source-Tools, wie YOLOv5, zu finanzieren und sie für alle kostenlos zu halten. Dieser Artikel kann Affiliate-Links zu diesen Partnern enthalten.

ClearML ist unser neuester Partner: eine Open-Source Toolbox, die entwickelt wurde, um dir Zeit zu sparen.

Mit dem Ziel, die ML-Einführung zu beschleunigen, macht ClearML die ML-Integration in jedes bestehende Software- und Hardwareprodukt nahtlos.

Diese Integration macht es noch einfacher, ein YOLOv5 Modell zu trainieren und den ClearML Experiment-Manager zu verwenden, um es automatisch zu verfolgen. Du kannst ganz einfach eine ClearML Datensatz-Versions-ID als Dateneingabe festlegen, die dann automatisch zum Training deines Modells verwendet wird.

Link to this sectionHebe dein Experiment-Tracking auf die nächste Stufe#

  • Verfolge jeden YOLOv5 Trainingslauf im Experiment-Manager.
  • Versioniere und greife einfach auf deine benutzerdefinierten Trainingsdaten mit dem integrierten ClearML Data Versioning Tool zu.
  • Erziele die bestmögliche mAP mithilfe der ClearML Hyperparameter-Optimierung.
  • Verwandle dein neu trainiertes YOLOv5 Modell mit ClearML Serving in nur wenigen Befehlen in eine API.

Es liegt bei dir, wie viele dieser Tools du verwenden möchtest; du kannst beim Experiment-Manager bleiben oder sie alle zu einer beeindruckenden Pipeline verketten.

Link to this sectionEinrichtung#

Um deine Experimente und Daten im Auge zu behalten, muss ClearML mit einem Server kommunizieren. Hierfür hast du zwei Möglichkeiten: Entweder du meldest dich kostenlos für den ClearML Hosted Service an oder du richtest deinen eigenen Server ein; siehe dazu die ClearML Server deployment docs.

Sogar der Server ist Open-Source, also ist es kein Problem, wenn du mit sensiblen Daten arbeitest!

  1. Installiere das clearml Python-Paket: pip install clearml
  2. Verbinde das ClearML SDK mit dem Server, indem du Anmeldedaten erstellst (gehe oben rechts zu Settings → Workspace → Create new credentials), führe dann den folgenden Befehl aus und befolge die Anweisungen: clearml-init

Und voilà! Du bist bereit, loszulegen...

Link to this sectionYOLOv5 Training mit ClearML#

Um das ClearML Experiment-Tracking zu aktivieren, installiere einfach das ClearML pip-Paket.

pip install clearml

Dies ermöglicht die Integration mit dem YOLOv5 Trainingsskript. Jeder Trainingslauf wird von nun an vom ClearML Experiment-Manager erfasst und gespeichert. Wenn du den project_name oder task_name ändern möchtest, gehe zu unserem benutzerdefinierten Logger, wo du dies anpassen kannst: utils/loggers/clearml/clearml_utils.py

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

Dies erfasst:

  • Quellcode + nicht übertragene Änderungen
  • Installierte Pakete
  • (Hyper)parameter
  • Modelldateien (verwende --save-period n, um alle n Epochen einen Checkpoint zu speichern)
  • Konsolenausgabe
  • Skalare (mAP_0.5, mAP_0.5:0.95, Präzision, Recall, Verluste, Lernraten, ...)
  • Allgemeine Informationen wie Maschinendetails, Laufzeit, Erstellungsdatum usw.
  • Alle erzeugten Diagramme wie Label-Korrelogramm und Konfusionsmatrix
  • Bilder mit Begrenzungsrahmen pro Epoche
  • Mosaik pro Epoche
  • Validierungsbilder pro Epoche

Nicht schlecht! Jetzt können wir all diese Informationen in der ClearML UI visualisieren, um einen Überblick über unseren Trainingsfortschritt zu erhalten. Füge der Tabellenansicht benutzerdefinierte Spalten hinzu (wie z. B. mAP_0.5), damit du leicht nach dem leistungsfähigsten Modell sortieren kannst. Oder wähle mehrere Experimente aus und vergleiche sie direkt!

Es gibt noch mehr, was wir mit all diesen Informationen tun können, wie Hyperparameter-Optimierung und Remote-Ausführung. Lies also weiter, um zu erfahren, wie!

Link to this sectionDatensatz-Versionsverwaltung#

Das Versionieren deiner Daten separat von deinem Code ist generell eine gute Idee und erleichtert auch den Erhalt der neuesten Version. Dieses Repository unterstützt die Angabe einer Datensatz-Versions-ID und stellt sicher, dass die Daten abgerufen werden, falls sie noch nicht vorhanden sind. Zudem speichert dieser Workflow die verwendete Datensatz-ID als Teil der Aufgabenparameter, sodass du immer genau weißt, welche Daten in welchem Experiment verwendet wurden!

Link to this sectionBereite deinen Datensatz vor#

Das YOLOv5 Repository unterstützt eine Reihe verschiedener Datensätze durch die Verwendung von YAML-Dateien, die deren Informationen enthalten. Standardmäßig werden Datensätze in den Ordner ../datasets in Bezug auf den Repository-Stammordner heruntergeladen. Wenn du also den coco128 Datensatz über den Link in der YAML oder mit den von yolov5 bereitgestellten Skripten heruntergeladen hast, erhältst du diese Ordnerstruktur:

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

Dies kann jedoch jeder beliebige Datensatz sein. Fühle dich frei, deinen eigenen zu verwenden, solange du dich an diese Ordnerstruktur hältst.

Als Nächstes ⚠️kopiere die entsprechende YAML-Datei in das Stammverzeichnis des Datensatzordners⚠️. Diese YAML-Dateien enthalten die Informationen, die ClearML benötigt, um den Datensatz ordnungsgemäß zu verwenden. Du kannst diese natürlich auch selbst erstellen, folge einfach der Struktur der Beispiel-YAMLs.

Grundsätzlich benötigen wir die folgenden Schlüssel: path, train, test, val, nc, names.

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

Link to this sectionLade deinen Datensatz hoch#

Um diesen Datensatz als versionierten Datensatz in ClearML zu bekommen, gehe zum Stammordner des Datensatzes und führe den folgenden Befehl aus:

cd coco128

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

Der Befehl clearml-data sync ist eigentlich ein Kurzbefehl. Du könntest diese Befehle auch nacheinander ausführen:

# 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 sectionFühre das Training mit einem ClearML Datensatz durch#

Jetzt, da du einen ClearML Datensatz hast, kannst du ihn ganz einfach verwenden, um benutzerdefinierte YOLOv5 Modelle zu trainieren.

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

Link to this sectionHyperparameter-Optimierung#

Jetzt, da wir unsere Experimente und Datenversionen haben, ist es an der Zeit zu sehen, was wir darauf aufbauen können!

Durch die Verwendung der Code-Informationen, installierten Pakete und Umgebungsdetails ist das Experiment selbst jetzt vollständig reproduzierbar. Tatsächlich erlaubt es dir ClearML, ein Experiment zu klonen und sogar dessen Parameter zu ändern. Wir können es dann einfach automatisch mit diesen neuen Parametern erneut ausführen, das ist im Grunde das, was HPO tut!

Um eine Hyperparameter-Optimierung lokal auszuführen, haben wir ein vorgefertigtes Skript für dich beigefügt. Stelle nur sicher, dass eine Trainingsaufgabe mindestens einmal ausgeführt wurde, damit sie sich im ClearML Experiment-Manager befindet; wir werden sie im Wesentlichen klonen und ihre Hyperparameter ändern.

Du musst die ID dieser Vorlagenaufgabe in das Skript unter utils/loggers/clearml/hpo.py eintragen und es dann einfach ausführen. Du kannst task.execute_locally() in task.execute() ändern, um es in eine ClearML Warteschlange zu stellen und stattdessen von einem Remote-Agenten bearbeiten zu lassen.

# 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 sectionRemote-Ausführung (Fortgeschritten)#

HPO lokal auszuführen ist sehr praktisch, aber was ist, wenn wir unsere Experimente stattdessen auf einer Remote-Maschine ausführen wollen? Vielleicht hast du Zugriff auf eine sehr leistungsstarke GPU-Maschine vor Ort oder ein Budget für Cloud-GPUs. Hier kommt der ClearML Agent ins Spiel.

Sieh dir hier an, was der Agent tun kann:

Kurz gesagt: Jedes vom Experiment-Manager verfolgte Experiment enthält genügend Informationen, um es auf einer anderen Maschine zu reproduzieren (installierte Pakete, nicht übertragene Änderungen usw.). Ein ClearML Agent tut genau das: Er überwacht eine Warteschlange auf eingehende Aufgaben und wenn er eine findet, rekonstruiert er die Umgebung und führt sie aus, während er weiterhin Skalare, Diagramme usw. an den Experiment-Manager meldet.

Du kannst jede Maschine (eine Cloud-VM, eine lokale GPU-Maschine, deinen eigenen Laptop) in einen ClearML Agenten verwandeln, indem du einfach Folgendes ausführst:

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

Link to this sectionKlonen, Bearbeiten und in die Warteschlange einreihen#

Wenn unser Agent läuft, können wir ihm etwas Arbeit geben. Erinnerst du dich aus dem HPO-Abschnitt, dass wir eine Aufgabe klonen und die Hyperparameter bearbeiten können? Das können wir auch über die Oberfläche tun!

🪄 Klone das Experiment mit einem Rechtsklick

🎯 Bearbeite die Hyperparameter nach deinen Wünschen

⏳ Reihe die Aufgabe durch Rechtsklick in eine der Warteschlangen ein

Link to this sectionAusführen einer Aufgabe aus der Ferne#

Jetzt kannst du eine Aufgabe klonen, wie wir oben erklärt haben, oder dein aktuelles Skript einfach durch Hinzufügen von task.execute_remotely() markieren. Bei der Ausführung wird es in eine Warteschlange gestellt, damit der Agent mit der Arbeit beginnen kann!

Um das YOLOv5 Trainingsskript aus der Ferne auszuführen, musst du diese Zeile nur nach der Instanziierung des ClearML Loggers zum train.py Skript hinzufügen:

# ...
# 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

Noch Fragen? Tritt unserer Community bei und hinterlasse noch heute deine Frage!

Explore solutions

Real-time AI that works with your team

KI in der Robotik

Stärke intelligentere Maschinen mit Ultralytics YOLO Modellen. Vision AI in der Robotik treibt autonome Navigation, Wahrnehmung, Objektverfolgung und Echtzeitsteuerung voran.
Erfahre mehr
Real-time AI that works with your team

KI in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Paketkontrolle, Sortierung, Fahrzeugverfolgung und Echtzeit-Überwachung der Lagersicherheit.
Erfahre mehr
Real-time AI that works with your team

KI im Einzelhandel

Erfinde den Einzelhandel neu mit Ultralytics YOLO-Modellen. Vision AI fördert Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und intelligentere Kundeneinblicke.
Erfahre mehr
Real-time AI that works with your team

KI im Gesundheitswesen

Baue Gesundheitslösungen mit Ultralytics YOLO Modellen. Vision AI im Gesundheitswesen ermöglicht schnellere medizinische Bildgebung, intelligentere Diagnostik und Patientenüberwachung.
Erfahre mehr
Real-time AI that works with your team

KI in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI treibt Qualitätskontrolle, Fehlererkennung, PSA-Einhaltung und die Automatisierung von Montagelinien voran.
Erfahre mehr
Real-time AI that works with your operation

KI in der Automobilbranche

Nutze Computer Vision in der Automobilindustrie mit Ultralytics YOLO Modellen. Vision AI steigert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Erfahre mehr
Real-time AI tailored to your operation

KI in der Landwirtschaft

Bringe Vision AI mit Ultralytics YOLO Modellen in die smarte Landwirtschaft. Optimiere die Ernteüberwachung, Viehverfolgung und Präzisionslandwirtschaft für höhere, intelligentere Erträge.
Erfahre mehr
Real-time AI that works with your team

KI in der Robotik

Stärke intelligentere Maschinen mit Ultralytics YOLO Modellen. Vision AI in der Robotik treibt autonome Navigation, Wahrnehmung, Objektverfolgung und Echtzeitsteuerung voran.
Erfahre mehr
Real-time AI that works with your team

KI in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Paketkontrolle, Sortierung, Fahrzeugverfolgung und Echtzeit-Überwachung der Lagersicherheit.
Erfahre mehr
Real-time AI that works with your team

KI im Einzelhandel

Erfinde den Einzelhandel neu mit Ultralytics YOLO-Modellen. Vision AI fördert Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und intelligentere Kundeneinblicke.
Erfahre mehr
Real-time AI that works with your team

KI im Gesundheitswesen

Baue Gesundheitslösungen mit Ultralytics YOLO Modellen. Vision AI im Gesundheitswesen ermöglicht schnellere medizinische Bildgebung, intelligentere Diagnostik und Patientenüberwachung.
Erfahre mehr
Real-time AI that works with your team

KI in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI treibt Qualitätskontrolle, Fehlererkennung, PSA-Einhaltung und die Automatisierung von Montagelinien voran.
Erfahre mehr
Real-time AI that works with your operation

KI in der Automobilbranche

Nutze Computer Vision in der Automobilindustrie mit Ultralytics YOLO Modellen. Vision AI steigert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Erfahre mehr
Real-time AI tailored to your operation

KI in der Landwirtschaft

Bringe Vision AI mit Ultralytics YOLO Modellen in die smarte Landwirtschaft. Optimiere die Ernteüberwachung, Viehverfolgung und Präzisionslandwirtschaft für höhere, intelligentere Erträge.
Erfahre mehr
Real-time AI that works with your team

KI in der Robotik

Stärke intelligentere Maschinen mit Ultralytics YOLO Modellen. Vision AI in der Robotik treibt autonome Navigation, Wahrnehmung, Objektverfolgung und Echtzeitsteuerung voran.
Erfahre mehr
Real-time AI that works with your team

KI in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht Paketkontrolle, Sortierung, Fahrzeugverfolgung und Echtzeit-Überwachung der Lagersicherheit.
Erfahre mehr
Real-time AI that works with your team

KI im Einzelhandel

Erfinde den Einzelhandel neu mit Ultralytics YOLO-Modellen. Vision AI fördert Bestandsverfolgung, Regalüberwachung, Warteschlangenmanagement und intelligentere Kundeneinblicke.
Erfahre mehr
Real-time AI that works with your team

KI im Gesundheitswesen

Baue Gesundheitslösungen mit Ultralytics YOLO Modellen. Vision AI im Gesundheitswesen ermöglicht schnellere medizinische Bildgebung, intelligentere Diagnostik und Patientenüberwachung.
Erfahre mehr
Real-time AI that works with your team

KI in der Fertigung

Optimiere die Fertigung mit Ultralytics YOLO-Modellen. Vision AI treibt Qualitätskontrolle, Fehlererkennung, PSA-Einhaltung und die Automatisierung von Montagelinien voran.
Erfahre mehr
Real-time AI that works with your operation

KI in der Automobilbranche

Nutze Computer Vision in der Automobilindustrie mit Ultralytics YOLO Modellen. Vision AI steigert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung für intelligentere Straßen.
Erfahre mehr
Real-time AI tailored to your operation

KI in der Landwirtschaft

Bringe Vision AI mit Ultralytics YOLO Modellen in die smarte Landwirtschaft. Optimiere die Ernteüberwachung, Viehverfolgung und Präzisionslandwirtschaft für höhere, intelligentere Erträge.
Erfahre mehr

Lass uns gemeinsam die Zukunft der KI bauen!

Beginne deine Reise mit der Zukunft des maschinellen Lernens