Overslaan naar inhoud

MLflow integratie voor Ultralytics YOLO

MLflow ecosysteem

Inleiding

Het loggen van experimenten is een cruciaal aspect van machine learning workflows dat het mogelijk maakt om verschillende metrieken, parameters en artefacten bij te houden. Het helpt om de reproduceerbaarheid van modellen te verbeteren, problemen op te sporen en de prestaties van modellen te verbeteren. Ultralytics YOLO MLflow, bekend om zijn realtime objectdetectiemogelijkheden, biedt nu integratie met MLflow, een open-source platform voor compleet machine learning levenscyclusbeheer.

Deze documentatiepagina is een uitgebreide handleiding voor het instellen en gebruiken van de MLflow logging mogelijkheden voor je Ultralytics YOLO project.

Wat is MLflow?

MLflow is een open-source platform ontwikkeld door Databricks voor het beheer van de volledige levenscyclus van machine learning. Het bevat tools voor het bijhouden van experimenten, het verpakken van code in reproduceerbare runs en het delen en inzetten van modellen. MLflow is ontworpen om te werken met elke machine learning bibliotheek en programmeertaal.

Kenmerken

  • Metriek loggen: Logt de metriek aan het einde van elke epoch en aan het einde van de training.
  • Parameter loggen: Logt alle parameters die in de training zijn gebruikt.
  • Artefacten loggen: Logt modelartefacten, inclusief gewichten en configuratiebestanden, aan het einde van de training.

Installatie en vereisten

Zorg ervoor dat MLflow is geïnstalleerd. Zo niet, installeer het dan met pip:

pip install mlflow

Zorg ervoor dat MLflow logging is ingeschakeld in Ultralytics instellingen. Meestal wordt dit geregeld door de instellingen mflow sleutel. Zie de instellingen pagina voor meer informatie.

Ultralytics MLflow-instellingen bijwerken

Roep binnen de Python omgeving het update methode op de settings object om je instellingen te wijzigen:

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Als je liever de commandoregelinterface gebruikt, kun je met de volgende commando's je instellingen wijzigen:

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

# Reset settings to default values
yolo settings reset

Hoe te gebruiken

Opdrachten

  1. Een projectnaam instellen: Je kunt de projectnaam instellen via een omgevingsvariabele:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

Of gebruik de project=<project> argument bij het trainen van een YOLO model, d.w.z. yolo train project=my_project.

  1. Een runnaam instellen: Net als bij het instellen van een projectnaam, kun je de runnaam instellen via een omgevingsvariabele:

    export MLFLOW_RUN=<your_run_name>
    

Of gebruik de name=<name> argument bij het trainen van een YOLO model, d.w.z. yolo train project=my_project name=my_name.

  1. Lokale MLflow-server starten: Gebruik om het volgen te starten:

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

Dit start standaard een lokale server op http://127.0.0.1:5000 en slaat alle mlflow logs op in de map 'runs/mlflow'. Om een andere URI op te geven, stel je de MLFLOW_TRACKING_URI omgevingsvariabele.

  1. MLflow serverinstanties stoppen: Voer het volgende uit om alle MLflow instanties te stoppen:

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

Loggen

Het loggen wordt verzorgd door de on_pretrain_routine_end, on_fit_epoch_enden on_train_end callback functies. Deze functies worden automatisch aangeroepen tijdens de respectievelijke stadia van het trainingsproces en ze zorgen voor het loggen van parameters, metriek en artefacten.

Voorbeelden

  1. Aangepaste statistieken loggen: Je kunt aangepaste statistieken toevoegen om te worden gelogd door de trainer.metrics woordenboek voor on_fit_epoch_end wordt genoemd.

  2. Bekijk Experiment: Om je logs te bekijken, navigeer je naar je MLflow server (meestal http://127.0.0.1:5000) en selecteer je je experiment en voer je het uit. YOLO MLflow Experiment

  3. Uitvoeren bekijken: Runs zijn individuele modellen binnen een experiment. Klik op een run en bekijk de details van de run, inclusief geüploade artefacten en modelgewichten. YOLO MLstroom

MLflow uitschakelen

Om MLflow loggen uit te schakelen:

yolo settings mlflow=False

Conclusie

MLflow logging integratie met Ultralytics YOLO biedt een gestroomlijnde manier om je machine learning experimenten bij te houden. Het stelt je in staat om prestatiegegevens te controleren en artefacten effectief te beheren, wat helpt bij het ontwikkelen en implementeren van robuuste modellen. Ga voor meer informatie naar de officiële documentatie van MLflow.



Aangemaakt 2023-11-12, Bijgewerkt 2024-05-18
Auteurs: glenn-jocher (4), Burhan-Q (1)

Reacties