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.

  1. 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.

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

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

Questo avvierà un server locale all'indirizzo http://127.0.0.1:5000 per impostazione predefinita e salverà tutti i log di mlflow nella directory "runs/mlflow". Per specificare un URI diverso, imposta il parametro MLFLOW_TRACKING_URI variabile d'ambiente.

  1. 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 (di solito http://127.0.0.1:5000), seleziona l'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.



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

Commenti