Vai al contenuto

Integrazione di MLflow per Ultralytics YOLO

Ecosistema MLflow

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 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:

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 runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Come si usa

Comandi

  1. 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 dire yolo train project=my_project.

  2. 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 dire yolo train project=my_project name=my_name.

  3. 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'opzione MLFLOW_TRACKING_URI variabile d'ambiente.

  4. 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 chiamate automaticamente durante le rispettive fasi del processo di formazione e gestiscono la registrazione di parametri, metriche e artefatti.

Esempi

  1. Registrazione di metriche personalizzate: È possibile aggiungere metriche personalizzate da registrare modificando il parametro trainer.metrics dizionario prima on_fit_epoch_end si chiama.

  2. Visualizza l'esperimento: Per visualizzare i registri, accedere al server MLflow (in genere http://127.0.0.1:5000), selezionare l'esperimento ed eseguirlo. YOLO Esperimento MLflow

  3. 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. YOLO Corsa MLflow

Disabilitazione di MLflow

Per disattivare la registrazione di MLflow:

yolo settings mlflow=False

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:

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 runs_dir='/path/to/runs'

# 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 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 :

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.

Per un approfondimento sulla configurazione e sullo sfruttamento di MLflow con Ultralytics YOLO , esplorare la documentazione di MLflow Integration for Ultralytics YOLO .

📅C reato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti