MLflow-Integration für Ultralytics YOLO
Einführung
Die Protokollierung von Experimenten ist ein wichtiger Aspekt von Arbeitsabläufen beim maschinellen Lernen, der die Verfolgung verschiedener Metriken, Parameter und Artefakte ermöglicht. Sie hilft dabei, die Reproduzierbarkeit von Modellen zu verbessern, Probleme zu beheben und die Modellleistung zu steigern. Ultralytics YOLOMLflow, bekannt für seine Fähigkeiten zur Objekterkennung in Echtzeit, bietet nun die Integration mit MLflow, einer Open-Source-Plattform für das komplette Lifecycle-Management von maschinellem Lernen.
Diese Dokumentationsseite ist ein umfassender Leitfaden zur Einrichtung und Nutzung der MLflow-Protokollierungsfunktionen für Ihr Ultralytics YOLO Projekt.
Was ist MLflow?
MLflow ist eine von Databricks entwickelte Open-Source-Plattform für die Verwaltung des gesamten Lebenszyklus von maschinellem Lernen. Sie umfasst Tools für die Nachverfolgung von Experimenten, die Paketierung von Code in reproduzierbare Läufe sowie die gemeinsame Nutzung und Bereitstellung von Modellen. MLflow ist so konzipiert, dass es mit jeder Bibliothek für maschinelles Lernen und jeder Programmiersprache funktioniert.
Eigenschaften
- Metrik-Protokollierung: Protokolliert Metriken am Ende jeder Epoche und am Ende des Trainings.
- Parameter-Protokollierung: Protokolliert alle für das Training verwendeten Parameter.
- Artefakte protokollieren: 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:
Stellen Sie 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 Funktion update
Methode auf der settings
Objekt, um Ihre Einstellungen zu ändern:
Wie zu verwenden
Befehle
-
Einen Projektnamen festlegen: Sie können 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 können Sie 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
. -
Starten Sie den lokalen MLflow-Server: Um die Verfolgung zu starten, verwenden Sie:
Dies startet einen lokalen Server unter http://127.0.0.1:5000 und speichern alle mlflow-Protokolle im Verzeichnis 'runs/mlflow'. Um eine andere URI anzugeben, setzen Sie die
MLFLOW_TRACKING_URI
Umgebungsvariable. -
MLflow-Server-Instanzen beenden: Um alle laufenden MLflow-Instanzen zu beenden, führen Sie aus:
Protokollierung
Die Protokollierung wird von der on_pretrain_routine_end
, on_fit_epoch_end
und on_train_end
Callback-Funktionen. Diese Funktionen werden automatisch in den jeweiligen Phasen des Trainingsprozesses 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 die
trainer.metrics
Wörterbuch voron_fit_epoch_end
genannt wird. -
Ansicht Experiment: Um Ihre Protokolle einzusehen, navigieren Sie zu Ihrem MLflow-Server (normalerweise http://127.0.0.1:5000), wählen Sie Ihr Experiment aus und führen Sie es aus.
-
Ansicht Laufen: Runs sind einzelne Modelle innerhalb eines Experiments. Klicken Sie auf einen Lauf und sehen Sie die Laufdetails, einschließlich hochgeladener Artefakte und Modellgewichte.
Deaktivieren von MLflow
Um die MLflow-Protokollierung zu deaktivieren:
Schlussfolgerung
Die MLflow-Logging-Integration mit Ultralytics YOLO bietet eine optimierte Möglichkeit, Ihre Experimente zum maschinellen Lernen zu verfolgen. Sie ermöglicht Ihnen die Überwachung von Leistungsmetriken und die effektive Verwaltung von Artefakten und unterstützt so eine robuste Modellentwicklung und -bereitstellung. Weitere Einzelheiten finden Sie in der offiziellen MLflow-Dokumentation.
FAQ
Wie richte ich die MLflow-Protokollierung 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:
Aktivieren Sie als nächstes die MLflow-Protokollierung in den Einstellungen von Ultralytics . Dies kann mit der Option mlflow
Taste. Weitere Informationen finden Sie in der Anleitung für die Einstellungen.
Ultralytics MLflow-Einstellungen aktualisieren
Starten Sie 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:
- Protokollierung der Metriken: Verfolgt die Metriken am Ende jeder Epoche und nach Abschluss des Trainings.
- Parameter-Protokollierung: Protokolliert alle im Trainingsprozess verwendeten Parameter.
- Artefakte protokollieren: Speichert Modellartefakte wie Gewichte und Konfigurationsdateien nach dem Training.
Ausführlichere Informationen finden Sie in der DokumentationUltralytics YOLO tracking.
Kann ich die MLflow-Protokollierung deaktivieren, sobald sie aktiviert ist?
Ja, Sie können die MLflow-Protokollierung für Ultralytics YOLO deaktivieren, indem Sie die Einstellungen aktualisieren. Hier erfahren Sie, wie Sie das mit Hilfe von CLI tun können:
Weitere Anpassungen und das Zurücksetzen von Einstellungen finden Sie 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 Verfolgung Ihrer Experimente in Ultralytics YOLO zu starten, verwenden Sie den folgenden Befehl:
Dieser Befehl startet standardmäßig einen lokalen Server unter http://127.0.0.1:5000. Wenn Sie laufende MLflow-Serverinstanzen stoppen müssen, verwenden Sie den folgenden Befehl bash :
Im Abschnitt Befehle finden Sie weitere Befehlsoptionen.
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 Ihrer Experimente zum maschinellen Lernen:
- Verbesserte Experimentverfolgung: Verfolgen und vergleichen Sie mühelos verschiedene Durchläufe und deren Ergebnisse.
- Verbesserte Reproduzierbarkeit der Modelle: Stellen Sie sicher, dass Ihre Experimente reproduzierbar sind, indem Sie alle Parameter und Artefakte protokollieren.
- Leistungsüberwachung: Visualisieren Sie Leistungsmetriken im Zeitverlauf, um datengestützte Entscheidungen für Modellverbesserungen zu treffen.
Einen detaillierten Einblick in die Einrichtung und Nutzung von MLflow mit Ultralytics YOLO finden Sie in der Dokumentation MLflow Integration for Ultralytics YOLO .