MLflow Integration für Ultralytics YOLO
Einführung
Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.
Diese Dokumentationsseite ist ein umfassender Leitfaden zur Einrichtung und Nutzung der MLflow-Protokollierungsfunktionen für dein Ultralytics YOLO Projekt.
Was ist MLflow?
MLflow ist eine Open-Source-Plattform, die von Databricks entwickelt wurde, um den gesamten Lebenszyklus von Machine Learning zu verwalten. Sie enthält Tools zur Verfolgung von Experimenten, zur Paketierung von Code in reproduzierbaren Läufen und zur gemeinsamen Nutzung und Bereitstellung von Modellen. MLflow ist so konzipiert, dass es mit jeder Machine-Learning-Bibliothek und Programmiersprache funktioniert.
Eigenschaften
- Metriken protokollieren: Protokolliert die Metriken am Ende jeder Epoche und am Ende des Trainings.
- Parameterprotokollierung: Protokolliert alle im Training verwendeten Parameter.
- Artefakte protokollieren: Protokolliert Modellartefakte, einschließlich Gewichte und Konfigurationsdateien, am Ende des Trainings.
Einrichtung und Voraussetzungen
Stelle sicher, dass MLflow installiert ist. Wenn nicht, installiere es mit pip:
Stelle sicher, dass die MLflow-Protokollierung in den Einstellungen von Ultralytics aktiviert ist. Normalerweise wird dies über die Einstellungen gesteuert mflow
Taste. Siehe die Einstellungen Seite für weitere Informationen.
Ultralytics MLflow-Einstellungen aktualisieren
Rufen Sie innerhalb der Umgebung Python die update
Methode auf der settings
Objekt, um deine Einstellungen zu ändern:
Wie zu verwenden
Befehle
Einen Projektnamen festlegen: Du kannst den Projektnamen über eine Umgebungsvariable festlegen:
Oder verwenden Sie die
project=<project>
Argument beim Training eines YOLO Modells, d. h.yolo train project=my_project
.Einen Laufnamen festlegen: Ähnlich wie beim Festlegen eines Projektnamens kannst du auch den Laufnamen über eine Umgebungsvariable festlegen:
Oder verwenden Sie die
name=<name>
Argument beim Training eines YOLO Modells, d. h.yolo train project=my_project name=my_name
.Starte den lokalen MLflow Server: Um das Tracking zu starten, verwende:
Dies startet einen lokalen Server unter http://127.0.0.1:5000 und speichert alle mlflow-Protokolle standardmäßig im Verzeichnis "runs/mlflow". Um eine andere URI anzugeben, setze die
MLFLOW_TRACKING_URI
Umgebungsvariable.Beende MLflow Server-Instanzen: Um alle laufenden MLflow-Instanzen zu beenden, führe aus:
Loggen
Die Protokollierung wird von der on_pretrain_routine_end
, on_fit_epoch_end
, und on_train_end
Callback-Funktionen. Diese Funktionen werden in den jeweiligen Phasen des Trainingsprozesses automatisch aufgerufen und sorgen für die Protokollierung von Parametern, Metriken und Artefakten.
Beispiele
Benutzerdefinierte Metriken protokollieren: Du kannst benutzerdefinierte Metriken hinzufügen, die protokolliert werden, indem du die
trainer.metrics
Wörterbuch voron_fit_epoch_end
genannt wird.Ansicht Experiment: Um Ihre Logs einzusehen, navigieren Sie zu Ihrem MLflow-Server (normalerweise http://127.0.0.1:5000), wähle dein Experiment aus und führe es aus.
Ansicht Lauf: Runs sind einzelne Modelle innerhalb eines Experiments. Klicke auf einen Run und sieh dir die Run-Details an, einschließlich hochgeladener Artefakte und Modellgewichte.
Deaktivieren von MLflow
So deaktivierst du die MLflow-Protokollierung:
Fazit
Die MLflow-Logging-Integration mit Ultralytics YOLO bietet eine optimierte Möglichkeit, den Überblick über deine Machine Learning-Experimente zu behalten. Sie ermöglicht es dir, Leistungskennzahlen zu überwachen und Artefakte effektiv zu verwalten, was zu einer robusten Modellentwicklung und -bereitstellung beiträgt. Weitere Informationen findest du in der offiziellen MLflow-Dokumentation.
FAQ
Wie richte ich die MLflow-Protokollierung mit Ultralytics YOLO ein?
Um MLflow Logging mit Ultralytics YOLO einzurichten, musst du zunächst sicherstellen, dass MLflow installiert ist. Du kannst es mit pip installieren:
Als Nächstes aktivierst du die MLflow-Protokollierung in den Einstellungen von Ultralytics . Dies kann mit der Option mlflow
Taste. Weitere Informationen findest du in der Einstellungsleitfaden.
Ultralytics MLflow-Einstellungen aktualisieren
Starte schließlich einen lokalen MLflow-Server für die Nachverfolgung:
Welche Metriken und Parameter kann ich mit MLflow mit Ultralytics YOLO protokollieren?
Ultralytics YOLO mit MLflow unterstützt die Protokollierung verschiedener Metriken, Parameter und Artefakte während des gesamten Trainingsprozesses:
- Metrics Logging: Tracks metrics at the end of each epoch and upon training completion.
- Parameterprotokollierung: Protokolliert alle im Trainingsprozess verwendeten Parameter.
- Artefakte protokollieren: Speichert Modellartefakte wie Gewichte und Konfigurationsdateien nach dem Training.
Ausführlichere Informationen findest du in der DokumentationUltralytics YOLO tracking.
Kann ich die MLflow-Protokollierung deaktivieren, sobald sie aktiviert ist?
Ja, du kannst die MLflow-Protokollierung für Ultralytics YOLO deaktivieren, indem du die Einstellungen aktualisierst. Hier erfährst du, wie du das mit der CLI machen kannst:
Weitere Anpassungen und das Zurücksetzen von Einstellungen findest du in der Einstellungsanleitung.
Wie kann ich einen MLflow-Server für die Nachverfolgung Ultralytics YOLO starten und stoppen?
Um einen MLflow-Server für die Nachverfolgung deiner Experimente in Ultralytics YOLO zu starten, verwende den folgenden Befehl:
Dieser Befehl startet standardmäßig einen lokalen Server unter http://127.0.0.1:5000. Wenn du laufende MLflow-Serverinstanzen stoppen musst, verwende den folgenden bash Befehl:
Weitere Befehlsoptionen findest du im Abschnitt Befehle.
Welche Vorteile bietet die Integration von MLflow mit Ultralytics YOLO für die Experimentverfolgung?
Die Integration von MLflow mit Ultralytics YOLO bietet mehrere Vorteile für die Verwaltung deiner Machine Learning Experimente:
- Verbessertes Experiment Tracking: Verfolge und vergleiche ganz einfach verschiedene Versuche und ihre Ergebnisse.
- Verbesserte Reproduzierbarkeit der Modelle: Stelle sicher, dass deine Experimente reproduzierbar sind, indem du alle Parameter und Artefakte protokollierst.
- Leistungsüberwachung: Visualisiere Leistungskennzahlen im Zeitverlauf, um datengestützte Entscheidungen für Modellverbesserungen zu treffen.
Einen detaillierten Einblick in die Einrichtung und Nutzung von MLflow mit Ultralytics YOLO erhältst du in der Dokumentation MLflow Integration for Ultralytics YOLO .