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.

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

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

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

FAQ

Hoe stel ik MLflow logging in met Ultralytics YOLO ?

Om MLflow logging in te stellen met Ultralytics YOLO , moet je er eerst voor zorgen dat MLflow is geĆÆnstalleerd. Je kunt het installeren met pip:

pip install mlflow

Schakel vervolgens MLflow logging in bij Ultralytics instellingen. Dit kan worden geregeld met de mlflow sleutel. Zie voor meer informatie de instellingengids.

Ultralytics MLflow-instellingen bijwerken

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

Start tot slot een lokale MLflow server voor tracking:

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

Welke metrieken en parameters kan ik loggen met MLflow met Ultralytics YOLO ?

Ultralytics YOLO MLflow ondersteunt het loggen van verschillende metrieken, parameters en artefacten tijdens het trainingsproces:

  • Metriek loggen: Houdt metriek bij aan het einde van elk tijdvak en na voltooiing van de training.
  • Parameter loggen: Logt alle parameters die in het trainingsproces worden gebruikt.
  • Artefacten loggen: Slaat modelartefacten zoals gewichten en configuratiebestanden op na de training.

Ga voor meer gedetailleerde informatie naar Ultralytics YOLO tracking documentatie.

Kan ik MLflow loggen uitschakelen als het eenmaal is ingeschakeld?

Ja, je kunt MLflow logging uitschakelen voor Ultralytics YOLO door de instellingen bij te werken. Hier zie je hoe je dat kunt doen met behulp van de CLI:

yolo settings mlflow=False

Raadpleeg de instellingengids voor verdere aanpassingen en het resetten van instellingen.

Hoe kan ik een MLflow server starten en stoppen voor Ultralytics YOLO tracking?

Gebruik het volgende commando om een MLflow server te starten voor het volgen van je experimenten in Ultralytics YOLO :

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

Dit commando start standaard een lokale server op http://127.0.0.1:5000. Als je lopende MLflow serverinstanties moet stoppen, gebruik dan het volgende commando bash :

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

Raadpleeg het gedeelte Opdrachten voor meer opdrachtopties.

Wat zijn de voordelen van het integreren van MLflow met Ultralytics YOLO voor het volgen van experimenten?

Het integreren van MLflow met Ultralytics YOLO biedt verschillende voordelen voor het beheren van je machine learning experimenten:

  • Verbeterd volgen van experimenten: Volg en vergelijk eenvoudig verschillende runs en hun resultaten.
  • Verbeterde reproduceerbaarheid van modellen: Zorg ervoor dat je experimenten reproduceerbaar zijn door alle parameters en artefacten te loggen.
  • Prestatiebewaking: Visualiseer prestatiecijfers in de loop van de tijd om op gegevens gebaseerde beslissingen te nemen voor modelverbeteringen.

Voor een diepgaande blik op het opzetten en gebruiken van MLflow met Ultralytics YOLO , bekijk de documentatie MLflow Integratie voor Ultralytics YOLO .



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

Reacties