MLflow integratie voor Ultralytics YOLO
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:
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:
Hoe te gebruiken
Opdrachten
-
Een projectnaam instellen: Je kunt de projectnaam instellen via een omgevingsvariabele:
Of gebruik de project=<project>
argument bij het trainen van een YOLO model, d.w.z. yolo train project=my_project
.
-
Een runnaam instellen: Net als bij het instellen van een projectnaam, kun je de runnaam instellen via een omgevingsvariabele:
Of gebruik de name=<name>
argument bij het trainen van een YOLO model, d.w.z. yolo train project=my_project name=my_name
.
-
Lokale MLflow-server starten: Gebruik om het volgen te starten:
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.
-
MLflow serverinstanties stoppen: Voer het volgende uit om alle MLflow instanties te stoppen:
Loggen
Het loggen wordt verzorgd door de on_pretrain_routine_end
, on_fit_epoch_end
en 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
-
Aangepaste statistieken loggen: Je kunt aangepaste statistieken toevoegen om te worden gelogd door de
trainer.metrics
woordenboek vooron_fit_epoch_end
wordt genoemd. -
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.
-
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.
MLflow uitschakelen
Om MLflow loggen uit te schakelen:
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.