MLflow-Integration für Ultralytics YOLO
Einführung
Das Protokollieren von Experimenten ist ein entscheidender Aspekt von Machine-Learning-Workflows, der die Verfolgung verschiedener Metriken, Parameter und Artefakte ermöglicht. Es trägt dazu bei, die Reproduzierbarkeit von Modellen zu verbessern, Fehler zu beheben und die Modellleistung zu steigern. Ultralytics YOLO, bekannt für seine Echtzeit-Objekterkennung, bietet jetzt die Integration mit MLflow, einer Open-Source-Plattform für das komplette Machine-Learning-Lifecycle-Management.
Diese Dokumentationsseite ist ein umfassender Leitfaden für die Einrichtung und Nutzung der MLflow-Protokollierungsfunktionen für Ihr Ultralytics YOLO-Projekt.
Was ist MLflow?
MLflow ist eine Open-Source-Plattform, die von Databricks für die Verwaltung des End-to-End-Machine-Learning-Lifecycles entwickelt wurde. Sie umfasst Tools zum Verfolgen von Experimenten, zum Verpacken von Code in reproduzierbare Abläufe sowie zum Teilen und Bereitstellen von Modellen. MLflow ist für die Zusammenarbeit mit jeder Machine-Learning-Bibliothek und Programmiersprache konzipiert.
Funktionen
- Metrik-Protokollierung: Protokolliert Metriken am Ende jeder Epoche und am Ende des Trainings.
- Parameter-Protokollierung: Protokolliert alle im Training verwendeten Parameter.
- Artefakt-Protokollierung: Protokolliert Modellartefakte, einschließlich Gewichte und Konfigurationsdateien, am Ende des Trainings.
Einrichtung und Voraussetzungen
Stellen Sie sicher, dass MLflow installiert ist. Wenn nicht, installieren Sie es mit pip:
pip install mlflow
Stellen Sie sicher, dass die MLflow-Protokollierung in den Ultralytics-Einstellungen aktiviert ist. Normalerweise wird dies durch die mlflow
Schlüssel der Einstellungen gesteuert. Einstellungen Seite für weitere Informationen.
Ultralytics MLflow-Einstellungen aktualisieren
Rufen Sie in der Python-Umgebung die update
Methode für das settings
Objekt auf, um Ihre Einstellungen zu ändern:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
Wenn Sie die Befehlszeilenschnittstelle bevorzugen, können Sie Ihre Einstellungen mit den folgenden Befehlen ändern:
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Wie man es benutzt
Befehle
-
Projektname festlegen: Sie können den Projektnamen über eine Umgebungsvariable festlegen:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
Oder verwenden Sie das
project=<project>
Argument beim Trainieren eines YOLO-Modells, z. B.yolo train project=my_project
. -
Laufzeitnamen festlegen: Ähnlich wie beim Festlegen eines Projektnamens können Sie den Laufzeitnamen über eine Umgebungsvariable festlegen:
export MLFLOW_RUN=YOUR_RUN_NAME
Oder verwenden Sie das
name=<name>
Argument beim Trainieren eines YOLO-Modells, z. B.yolo train project=my_project name=my_name
. -
Lokalen MLflow-Server starten: Um die Verfolgung zu starten, verwenden Sie:
mlflow server --backend-store-uri runs/mlflow
Dadurch wird ein lokaler Server unter
http://127.0.0.1:5000
standardmäßig gestartet und alle MLflow-Protokolle im Verzeichnis 'runs/mlflow' gespeichert. Um einen anderen URI anzugeben, setzen Sie dieMLFLOW_TRACKING_URI
Umgebungsvariable. -
MLflow-Serverinstanzen beenden: Um alle laufenden MLflow-Instanzen zu stoppen, führen Sie Folgendes aus:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Protokollierung
Die Protokollierung wird von den on_pretrain_routine_end
, on_fit_epoch_end
und on_train_end
Callback-Funktionen. Diese Funktionen werden während der jeweiligen Phasen des Trainingsprozesses automatisch aufgerufen und übernehmen die Protokollierung von Parametern, Metriken und Artefakten.
Beispiele
-
Benutzerdefinierte Metriken protokollieren: Sie können benutzerdefinierte Metriken hinzufügen, die protokolliert werden sollen, indem Sie das
trainer.metrics
Dictionary vor dem Aufruf vonon_fit_epoch_end
ändern. -
Experiment anzeigen: Um Ihre Protokolle anzuzeigen, navigieren Sie zu Ihrem MLflow-Server (normalerweise
http://127.0.0.1:5000
) und wählen Sie Ihr Experiment und Ihren Lauf aus. -
Lauf anzeigen: Läufe sind einzelne Modelle innerhalb eines Experiments. Klicken Sie auf einen Lauf, um die Laufdetails anzuzeigen, einschließlich hochgeladener Artefakte und Modellgewichte.
MLflow deaktivieren
So deaktivieren Sie die MLflow-Protokollierung:
yolo settings mlflow=False
Fazit
Die MLflow-Logging-Integration mit Ultralytics YOLO bietet eine optimierte Möglichkeit, Ihre Machine-Learning-Experimente zu verfolgen. Sie ermöglicht es Ihnen, Leistungsmetriken zu überwachen und Artefakte effektiv zu verwalten, was die robuste Modellentwicklung und -bereitstellung unterstützt. Für weitere Details besuchen Sie bitte die offizielle MLflow-Dokumentation.
FAQ
Wie richte ich MLflow-Logging mit Ultralytics YOLO ein?
Um die MLflow-Protokollierung mit Ultralytics YOLO einzurichten, müssen Sie zunächst sicherstellen, dass MLflow installiert ist. Sie können es mit pip installieren:
pip install mlflow
Als Nächstes aktivieren Sie die MLflow-Protokollierung in den Ultralytics-Einstellungen. Dies kann über den mlflow
-Schlüssel gesteuert werden. Weitere Informationen finden Sie im Leitfaden zu den Einstellungen.
Ultralytics MLflow-Einstellungen aktualisieren
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
Starten Sie abschließend einen lokalen MLflow-Server zur Nachverfolgung:
mlflow server --backend-store-uri runs/mlflow
Welche Metriken und Parameter kann ich mit MLflow und Ultralytics YOLO protokollieren?
Ultralytics YOLO mit MLflow unterstützt die Protokollierung verschiedener Metriken, Parameter und Artefakte während des gesamten Trainingsprozesses:
- Metrikprotokollierung: Verfolgt Metriken am Ende jeder Epoche und nach Abschluss des Trainings.
- Parameterprotokollierung: Protokolliert alle im Trainingsprozess verwendeten Parameter.
- Artefaktprotokollierung: Speichert Modellartefakte wie Gewichte und Konfigurationsdateien nach dem Training.
Für detailliertere Informationen besuchen Sie die Ultralytics YOLO Tracking-Dokumentation.
Kann ich das MLflow-Logging deaktivieren, sobald es aktiviert ist?
Ja, Sie können die MLflow-Protokollierung für Ultralytics YOLO deaktivieren, indem Sie die Einstellungen aktualisieren. Hier erfahren Sie, wie Sie dies über die CLI tun können:
yolo settings mlflow=False
Weitere Informationen zur Anpassung und zum Zurücksetzen von Einstellungen finden Sie im Leitfaden zu den Einstellungen.
Wie kann ich einen MLflow-Server für die Ultralytics YOLO-Verfolgung starten und stoppen?
Um einen MLflow-Server zur Verfolgung Ihrer Experimente in Ultralytics YOLO zu starten, verwenden Sie den folgenden Befehl:
mlflow server --backend-store-uri runs/mlflow
Dieser Befehl startet einen lokalen Server unter http://127.0.0.1:5000
standardmäßig. Wenn Sie die Ausführung von MLflow-Serverinstanzen beenden müssen, verwenden Sie den folgenden bash-Befehl:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Weitere Befehlsoptionen finden Sie im Abschnitt Befehle.
Welche Vorteile bietet die Integration von MLflow in Ultralytics YOLO für die Experimentverfolgung?
Die Integration von MLflow mit Ultralytics YOLO bietet mehrere Vorteile für die Verwaltung Ihrer Machine-Learning-Experimente:
- Verbessertes Experiment-Tracking: Verfolgen und vergleichen Sie auf einfache Weise verschiedene Durchläufe und deren Ergebnisse.
- Verbesserte Modellreproduzierbarkeit: Stellen Sie sicher, dass Ihre Experimente reproduzierbar sind, indem Sie alle Parameter und Artefakte protokollieren.
- Leistungsüberwachung: Visualisieren Sie Leistungskennzahlen im Zeitverlauf, um datengestützte Entscheidungen zur Modellverbesserung zu treffen.
- Optimierter Workflow: Automatisieren Sie den Protokollierungsprozess, um sich mehr auf die Modellentwicklung als auf die manuelle Verfolgung zu konzentrieren.
- Collaborative Development: Teilen Sie Experimentergebnisse mit Teammitgliedern für eine bessere Zusammenarbeit und Wissensaustausch.
Für einen detaillierten Einblick in die Einrichtung und Nutzung von MLflow mit Ultralytics YOLO, erkunden Sie die MLflow Integration für Ultralytics YOLO Dokumentation.