Zum Inhalt springen

MLflow-Integration für Ultralytics YOLO

MLflow-Ökosystem

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:

pip install mlflow

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:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Wenn Sie es vorziehen, die Befehlszeilenschnittstelle zu verwenden, können Sie mit den folgenden Befehlen Ihre Einstellungen ändern:

# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Wie zu verwenden

Befehle

  1. Einen Projektnamen festlegen: Sie können den Projektnamen über eine Umgebungsvariable festlegen:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

    Oder verwenden Sie die project=<project> Argument beim Training eines YOLO Modells, d.h. yolo train project=my_project.

  2. Einen Laufnamen festlegen: Ähnlich wie beim Festlegen eines Projektnamens können Sie auch den Laufnamen über eine Umgebungsvariable festlegen:

    export MLFLOW_RUN=<your_run_name>
    

    Oder verwenden Sie die name=<name> Argument beim Training eines YOLO Modells, d.h. yolo train project=my_project name=my_name.

  3. Starten Sie den lokalen MLflow-Server: Um die Verfolgung zu starten, verwenden Sie:

    mlflow server --backend-store-uri runs/mlflow'
    

    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.

  4. MLflow-Server-Instanzen beenden: Um alle laufenden MLflow-Instanzen zu beenden, führen Sie aus:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

Protokollierung

Die Protokollierung wird von der on_pretrain_routine_end, on_fit_epoch_endund 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

  1. Benutzerdefinierte Metriken protokollieren: Sie können benutzerdefinierte Metriken hinzufügen, die protokolliert werden sollen, indem Sie die trainer.metrics Wörterbuch vor on_fit_epoch_end genannt wird.

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

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

Deaktivieren von MLflow

Um die MLflow-Protokollierung zu deaktivieren:

yolo settings mlflow=False

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:

pip install mlflow

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

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Starten Sie schließlich einen lokalen MLflow-Server für die Nachverfolgung:

mlflow server --backend-store-uri runs/mlflow

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:

yolo settings mlflow=False

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:

mlflow server --backend-store-uri runs/mlflow

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 :

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

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 .

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 1 Monat

Kommentare