Vai al contenuto

Integrazione di MLflow per Ultralytics YOLO

Ecosistema MLflow

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:

pip install mlflow

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:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Se preferisci utilizzare l'interfaccia a riga di comando, i seguenti comandi ti permetteranno 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. Imposta il nome del progetto: Puoi impostare il nome del progetto tramite una variabile d'ambiente:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

    Oppure utilizza la funzione project=<project> quando si addestra un modello di YOLO , ovvero yolo train project=my_project.

  2. Imposta un nome di esecuzione: Come per l'impostazione del nome del progetto, puoi impostare il nome dell'esecuzione tramite una variabile d'ambiente:

    export MLFLOW_RUN=<your_run_name>
    

    Oppure utilizza la funzione name=<name> quando si addestra un modello di YOLO , ovvero yolo train project=my_project name=my_name.

  3. Avvia il server MLflow locale: Per avviare il monitoraggio, usa:

    mlflow server --backend-store-uri runs/mlflow'
    

    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.

  4. Uccidi le istanze del server MLflow: Per fermare tutte le istanze MLflow in esecuzione, esegui:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

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

  1. Registrazione di metriche personalizzate: Puoi aggiungere metriche personalizzate da registrare modificando il file trainer.metrics dizionario prima on_fit_epoch_end si chiama.

  2. 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. YOLO Esperimento MLflow

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

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

pip install mlflow

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

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, avvia un server MLflow locale per il monitoraggio:

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

yolo settings mlflow=False

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:

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 hai bisogno di interrompere l'esecuzione delle istanze del server MLflow, usa il seguente comando bash :

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

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 .



Creato 2023-11-12, Aggiornato 2024-07-05
Autori: glenn-jocher (8), Burhan-Q (1)

Commenti