Zum Inhalt springen

MLflow-Integration für Ultralytics YOLO

MLflow-Ökosystem

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

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

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

  3. 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 die MLFLOW_TRACKING_URI Umgebungsvariable.

  4. 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_endund 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

  1. Benutzerdefinierte Metriken protokollieren: Sie können benutzerdefinierte Metriken hinzufügen, die protokolliert werden sollen, indem Sie das trainer.metrics Dictionary vor dem Aufruf von on_fit_epoch_end ändern.

  2. 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. YOLO MLflow-Experiment

  3. 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. YOLO MLflow-Lauf

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.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 4 Monaten

Kommentare