Integrazione di MLflow per Ultralytics YOLO
Introduzione
Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.
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 , ovveroyolo 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 , ovveroyolo train project=my_project name=my_name
.Avvia il server MLflow locale: Per avviare il monitoraggio, usa:
In questo modo verrà avviato un server locale all'indirizzo http://127.0.0.1:5000 per impostazione predefinita e salva 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 (in genere http://127.0.0.1:5000), seleziona il tuo 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.
DOMANDE FREQUENTI
Come posso impostare il logging di MLflow con Ultralytics YOLO ?
Per impostare il logging di MLflow con Ultralytics YOLO , devi innanzitutto assicurarti che MLflow sia installato. Puoi installarlo utilizzando pip:
Successivamente, attiva la registrazione di MLflow nelle impostazioni di Ultralytics . Questo può essere controllato utilizzando la funzione mlflow
chiave. Per maggiori informazioni, consulta la sezione Guida alle impostazioni.
Aggiorna le impostazioni di Ultralytics MLflow
Infine, avvia un server MLflow locale per il monitoraggio:
Quali metriche e parametri posso registrare utilizzando MLflow con Ultralytics YOLO ?
Ultralytics YOLO con MLflow supporta la registrazione di varie metriche, parametri e artefatti durante il processo di formazione:
- Metrics Logging: Tracks metrics at the end of each epoch and upon training completion.
- Registrazione dei parametri: Registra tutti i parametri utilizzati nel processo di formazione.
- Registrazione degli artefatti: Salva gli artefatti del modello, come i pesi e i file di configurazione, dopo l'addestramento.
Per informazioni più dettagliate, visita la documentazione sul tracciamento diUltralytics YOLO .
Posso disabilitare la registrazione di MLflow una volta che è stata attivata?
Sì, puoi disabilitare la registrazione di MLflow per Ultralytics YOLO aggiornando le impostazioni. Ecco come puoi farlo utilizzando il sito CLI:
Per ulteriori personalizzazioni e per il ripristino delle impostazioni, consulta la guida alle impostazioni.
Come posso avviare e arrestare un server MLflow per il tracciamento di Ultralytics YOLO ?
Per avviare un server MLflow per tracciare i tuoi esperimenti in Ultralytics YOLO , usa il seguente comando:
Questo comando avvia un server locale all'indirizzo http://127.0.0.1:5000 per impostazione predefinita. Se hai bisogno di interrompere l'esecuzione delle istanze del server MLflow, usa il seguente comando bash :
Per ulteriori opzioni di comando, consulta la sezione Comandi.
Quali sono i vantaggi dell'integrazione di MLflow con Ultralytics YOLO per il tracciamento degli esperimenti?
L'integrazione di MLflow con Ultralytics YOLO offre diversi vantaggi per la gestione degli esperimenti di apprendimento automatico:
- Tracciamento migliorato degli esperimenti: Tieni traccia e confronta facilmente le diverse prove e i loro risultati.
- Miglioramento della riproducibilità dei modelli: Assicurati che i tuoi esperimenti siano riproducibili registrando tutti i parametri e gli artefatti.
- Monitoraggio delle prestazioni: Visualizza le metriche delle prestazioni nel tempo per prendere decisioni basate sui dati e migliorare il modello.
Per un approfondimento sulla configurazione e l'utilizzo di MLflow con Ultralytics YOLO , esplora la documentazione di MLflow Integration for Ultralytics YOLO .