Integrazione di MLflow per Ultralytics YOLO
Introduzione
La registrazione degli esperimenti è un aspetto cruciale dei flussi di lavoro dell '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 Il software 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 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, 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 epoca e alla fine dell'allenamento.
- Registrazione dei parametri: Registra tutti i parametri utilizzati nell'addestramento.
- Registrazione degli artefatti: Registra gli artefatti del modello, compresi i pesi e i file di configurazione, al termine dell'addestramento.
Configurazione e prerequisiti
Assicurarsi che MLflow sia installato. In caso contrario, installarlo usando pip:
pip install mlflow
Assicurarsi che la registrazione di MLflow sia abilitata nelle impostazioni di Ultralytics . Di solito, questo è controllato dalle impostazioni mlflow
chiave. Vedere la sezione impostazioni pagina per maggiori informazioni.
Aggiornamento delle impostazioni di Ultralytics MLflow
Nell'ambiente Python , richiamare il metodo update
sul metodo settings
per modificare le impostazioni:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
Se si preferisce utilizzare l'interfaccia a riga di comando, i seguenti comandi consentono di modificare le impostazioni:
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Come si usa
Comandi
-
Impostare il nome del progetto: È possibile impostare il nome del progetto tramite una variabile d'ambiente:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
Oppure utilizzare l'opzione
project=<project>
durante l'addestramento di un modello YOLO , vale a direyolo train project=my_project
. -
Impostare un nome di esecuzione: Come per l'impostazione del nome del progetto, è possibile impostare il nome dell'esecuzione tramite una variabile d'ambiente:
export MLFLOW_RUN=YOUR_RUN_NAME
Oppure utilizzare l'opzione
name=<name>
durante l'addestramento di un modello YOLO , vale a direyolo train project=my_project name=my_name
. -
Avviare il server MLflow locale: Per avviare il tracciamento, utilizzare:
mlflow server --backend-store-uri runs/mlflow
Questo avvierà un server locale a
http://127.0.0.1:5000
per impostazione predefinita e salva tutti i log di mlflow nella cartella "runs/mlflow". Per specificare un URI diverso, impostare l'opzioneMLFLOW_TRACKING_URI
variabile d'ambiente. -
Arresto delle istanze del server MLflow: Per arrestare tutte le istanze MLflow in esecuzione, eseguire:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Registrazione
La registrazione è gestita dal programma on_pretrain_routine_end
, on_fit_epoch_end
, e on_train_end
funzioni di callback. Queste funzioni vengono richiamate automaticamente durante le rispettive fasi del processo di formazione e gestiscono la registrazione di parametri, metriche e artefatti.
Esempi
-
Registrazione di metriche personalizzate: È possibile aggiungere metriche personalizzate da registrare modificando il parametro
trainer.metrics
dizionario primaon_fit_epoch_end
si chiama. -
Visualizza l'esperimento: Per visualizzare i registri, accedere al server MLflow (in genere
http://127.0.0.1:5000
), selezionare l'esperimento ed eseguirlo. -
Visualizza l'esecuzione: I Run sono modelli individuali all'interno di un esperimento. Fare clic su una sessione per visualizzare i dettagli della sessione, compresi gli artefatti caricati e i pesi del modello.
Disabilitazione di MLflow
Per disattivare la registrazione di MLflow:
yolo settings mlflow=False
Conclusione
L'integrazione del logging di MLflow con Ultralytics YOLO offre un modo semplificato per tenere traccia dei vostri esperimenti di apprendimento automatico. Permette di monitorare le metriche delle prestazioni e di gestire gli artefatti in modo efficace, favorendo così lo sviluppo e la distribuzione di modelli robusti. Per ulteriori dettagli, visitate la documentazione ufficiale di MLflow.
FAQ
Come si imposta la registrazione di MLflow con Ultralytics YOLO ?
Per impostare il logging di MLflow con Ultralytics YOLO , occorre innanzitutto assicurarsi che MLflow sia installato. È possibile installarlo usando pip:
pip install mlflow
Successivamente, abilitare la registrazione di MLflow nelle impostazioni di Ultralytics . Questo può essere controllato usando il comando mlflow
chiave. Per ulteriori informazioni, vedere la sezione Guida alle impostazioni.
Aggiornamento delle impostazioni di Ultralytics MLflow
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Infine, avviare un server MLflow locale per il tracciamento:
mlflow server --backend-store-uri runs/mlflow
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:
- Registrazione delle metriche: Traccia le metriche alla fine di ogni periodo e al completamento dell'addestramento.
- 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, visitate la documentazione sul tracciamento diUltralytics YOLO .
È possibile disattivare la registrazione di MLflow una volta abilitata?
Sì, è possibile disabilitare la registrazione di MLflow per Ultralytics YOLO aggiornando le impostazioni. Ecco come si può fare utilizzando il sito CLI:
yolo settings mlflow=False
Per ulteriori personalizzazioni e per il ripristino delle impostazioni, consultare la guida alle impostazioni.
Come si può avviare e arrestare un server MLflow per il tracciamento di Ultralytics YOLO ?
Per avviare un server MLflow per tracciare gli esperimenti in Ultralytics YOLO , utilizzare il seguente comando:
mlflow server --backend-store-uri runs/mlflow
Questo comando avvia un server locale a http://127.0.0.1:5000
per impostazione predefinita. Se è necessario interrompere l'esecuzione delle istanze del server MLflow, utilizzare il seguente comando bash :
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Per ulteriori opzioni di comando, consultare 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: Traccia e confronta facilmente i diversi esperimenti e i loro risultati.
- Miglioramento della riproducibilità dei modelli: Assicuratevi che gli esperimenti siano riproducibili registrando tutti i parametri e gli artefatti.
- Monitoraggio delle prestazioni: Visualizzare le metriche delle prestazioni nel tempo per prendere decisioni basate sui dati e migliorare il modello.
- Flusso di lavoro semplificato: Automatizzate il processo di registrazione per concentrarvi maggiormente sullo sviluppo del modello piuttosto che sul tracciamento manuale.
- Sviluppo collaborativo: Condividere i risultati degli esperimenti con i membri del team per migliorare la collaborazione e la condivisione delle conoscenze.
Per un approfondimento sulla configurazione e sullo sfruttamento di MLflow con Ultralytics YOLO , esplorare la documentazione di MLflow Integration for Ultralytics YOLO .