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:
Assicurarsi che la registrazione di MLflow sia abilitata nelle impostazioni di Ultralytics . Di solito, questo è controllato dalle impostazioni mflow
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:
Come si usa
Comandi
-
Impostare il nome del progetto: È possibile impostare il nome del progetto tramite una variabile d'ambiente:
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:
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:
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'opzione
MLFLOW_TRACKING_URI
variabile d'ambiente. -
Arresto delle istanze del server MLflow: Per arrestare tutte le istanze MLflow in esecuzione, eseguire:
Registrazione
La registrazione è gestita dal 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: È 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:
Conclusione
L'integrazione dei log di MLflow con Ultralytics YOLO offre un modo semplice per tenere traccia dei vostri esperimenti di apprendimento automatico. Permette di monitorare le metriche delle prestazioni e di gestire efficacemente gli artefatti, 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:
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
Infine, avviare un server MLflow locale per il tracciamento:
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:
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:
Questo comando avvia un server locale all'indirizzo http://127.0.0.1:5000 per impostazione predefinita. Se è necessario interrompere l'esecuzione delle istanze del server MLflow, utilizzare il seguente comando bash :
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.
Per un approfondimento sulla configurazione e sullo sfruttamento di MLflow con Ultralytics YOLO , esplorare la documentazione di MLflow Integration for Ultralytics YOLO .