Integrazione di MLflow per Ultralytics YOLO
Introduzione
La registrazione degli esperimenti è un aspetto cruciale dei flussi di lavoro di apprendimento automatico che consente di tenere traccia di varie metriche, parametri e artefatti. Aiuta a migliorare la riproducibilità dei modelli, il debug dei problemi e il miglioramento delle prestazioni dei modelli. Ultralytics YOLO MLflow, noto per le sue capacità di rilevamento degli oggetti in tempo reale, offre ora l'integrazione con MLflow, una piattaforma open-source per la gestione completa del ciclo di vita dell'apprendimento automatico.
Questa pagina di documentazione è una guida completa all'impostazione e all'utilizzo delle funzionalità di registrazione di MLflow per il tuo progetto Ultralytics YOLO .
Che cos'è MLflow?
MLflow è una piattaforma open-source sviluppata da Databricks per gestire il ciclo di vita end-to-end dell'apprendimento automatico. Include strumenti per tracciare gli esperimenti, impacchettare il codice in esecuzioni riproducibili e condividere e distribuire i modelli. MLflow è progettato per funzionare con qualsiasi libreria di apprendimento automatico e linguaggio di programmazione.
Caratteristiche
- Registrazione delle metriche: Registra le metriche alla fine di ogni periodo e alla fine dell'allenamento.
- Registrazione dei parametri: Registra tutti i parametri utilizzati nella formazione.
- Registrazione degli artefatti: Registra gli artefatti del modello, compresi i pesi e i file di configurazione, al termine della formazione.
Configurazione e prerequisiti
Assicurati che MLflow sia installato. In caso contrario, installalo utilizzando pip:
Assicurati che la registrazione di MLflow sia abilitata nelle impostazioni di Ultralytics . Di solito, questo è controllato dalle impostazioni mflow
chiave. Vedi la sezione impostazioni per maggiori informazioni.
Aggiorna le impostazioni di Ultralytics MLflow
All'interno dell'ambiente Python , chiama il metodo update
sul metodo settings
per modificare le impostazioni:
Come si usa
Comandi
-
Imposta il nome del progetto: Puoi impostare il nome del progetto tramite una variabile d'ambiente:
Oppure utilizza la funzione project=<project>
quando si addestra un modello di YOLO , ovvero yolo train project=my_project
.
-
Imposta un nome di esecuzione: Come per l'impostazione del nome del progetto, puoi impostare il nome dell'esecuzione tramite una variabile d'ambiente:
Oppure utilizza la funzione name=<name>
quando si addestra un modello di YOLO , ovvero yolo train project=my_project name=my_name
.
-
Avvia il server MLflow locale: Per avviare il monitoraggio, usa:
Questo avvierà un server locale all'indirizzo http://127.0.0.1:5000 per impostazione predefinita e salverà tutti i log di mlflow nella directory "runs/mlflow". Per specificare un URI diverso, imposta il parametro MLFLOW_TRACKING_URI
variabile d'ambiente.
-
Uccidi le istanze del server MLflow: Per fermare tutte le istanze MLflow in esecuzione, esegui:
Registrazione
La registrazione è affidata al programma on_pretrain_routine_end
, on_fit_epoch_end
, e on_train_end
funzioni di callback. Queste funzioni vengono chiamate automaticamente durante le rispettive fasi del processo di formazione e gestiscono la registrazione di parametri, metriche e artefatti.
Esempi
-
Registrazione di metriche personalizzate: Puoi aggiungere metriche personalizzate da registrare modificando il file
trainer.metrics
dizionario primaon_fit_epoch_end
si chiama. -
Visualizza l'esperimento: Per visualizzare i registri, accedi al tuo server MLflow (di solito http://127.0.0.1:5000), seleziona l'esperimento ed eseguilo.
-
Visualizza la corsa: I Run sono singoli modelli all'interno di un esperimento. Clicca su una sessione per vedere i dettagli della sessione, compresi gli artefatti caricati e i pesi del modello.
Disabilitare MLflow
Per disattivare la registrazione di MLflow:
Conclusione
L'integrazione dei log di MLflow con Ultralytics YOLO offre un modo semplice per tenere traccia dei tuoi esperimenti di apprendimento automatico. Ti permette di monitorare le metriche delle prestazioni e di gestire gli artefatti in modo efficace, favorendo così lo sviluppo e la distribuzione di modelli solidi. Per ulteriori dettagli, visita la documentazione ufficiale di MLflow.