Zum Inhalt springen

MLflow Integration f├╝r Ultralytics YOLO

MLflow ├ľkosystem

Einf├╝hrung

Die Protokollierung von Experimenten ist ein wichtiger Aspekt von Workflows f├╝r maschinelles Lernen, der die Nachverfolgung 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 YOLO Das Programm MLflow, das f├╝r seine Echtzeit-Objekterkennung bekannt ist, bietet jetzt 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 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:

pip install mlflow

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:

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Wenn du lieber die Befehlszeilenschnittstelle verwendest, kannst du mit den folgenden Befehlen deine 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: Du kannst 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 kannst du 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. Starte den lokalen MLflow Server: Um das Tracking zu starten, verwende:

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

    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.

  4. Beende MLflow Server-Instanzen: Um alle laufenden MLflow-Instanzen zu beenden, f├╝hre aus:

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

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

  1. Benutzerdefinierte Metriken protokollieren: Du kannst benutzerdefinierte Metriken hinzuf├╝gen, die protokolliert werden, indem du die trainer.metrics W├Ârterbuch vor on_fit_epoch_end genannt wird.

  2. Ansicht Experiment: Um Ihre Logs einzusehen, navigieren Sie zu Ihrem MLflow-Server (normalerweise http://127.0.0.1:5000) and select your experiment and run. YOLO MLflow Experiment

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

Deaktivieren von MLflow

So deaktivierst du die MLflow-Protokollierung:

yolo settings mlflow=False

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:

pip install mlflow

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

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

Starte 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.
  • 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:

yolo settings mlflow=False

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:

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

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:

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

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 .



Erstellt am 2023-11-12, Aktualisiert am 2024-07-05
Autoren: glenn-jocher (8), Burhan-Q (1)

Kommentare