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.

  1. Einen Laufnamen festlegen: Ähnlich wie beim Festlegen eines Projektnamens kannst du 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.

  1. Starte den lokalen MLflow Server: Um das Tracking zu starten, verwende:

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

Dadurch wird standardm├Ą├čig ein lokaler Server unter http://127.0.0.1:5000 gestartet und alle mlflow-Protokolle werden im Verzeichnis "runs/mlflow" gespeichert. Um eine andere URI anzugeben, setze die MLFLOW_TRACKING_URI Umgebungsvariable.

  1. 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 deine Logs anzusehen, navigiere zu deinem MLflow-Server (normalerweise http://127.0.0.1:5000), w├Ąhle dein Experiment aus und f├╝hre es aus. 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.



Erstellt am 2023-11-12, Aktualisiert am 2024-01-07
Autoren: glenn-jocher (3)

Kommentare