Vai al contenuto

Integrazione MLflow per Ultralytics YOLO

Ecosistema MLflow

Introduzione

La registrazione degli esperimenti è un aspetto cruciale dei flussi di lavoro di machine learning che consente di tenere traccia di varie metriche, parametri e artefatti. Aiuta a migliorare la riproducibilità del modello, a risolvere i problemi e a migliorare le prestazioni del modello. Ultralytics YOLO, noto per le sue capacità di object detection in tempo reale, offre ora l'integrazione con MLflow, una piattaforma open-source per la gestione completa del ciclo di vita del machine learning.

Questa pagina di documentazione è una guida completa alla configurazione e all'utilizzo delle funzionalità di logging MLflow per il tuo progetto Ultralytics YOLO.

Cos'è MLflow?

MLflow è una piattaforma open-source sviluppata da Databricks per la gestione completa del ciclo di vita del machine learning. Include strumenti per il tracciamento degli esperimenti, l'impacchettamento del codice in esecuzioni riproducibili, la condivisione e la distribuzione di modelli. MLflow è progettato per funzionare con qualsiasi libreria di machine learning e linguaggio di programmazione.

Funzionalità

  • Registrazione delle metriche: Registra le metriche alla fine di ogni epoca e alla fine dell'addestramento.
  • Registrazione dei Parametri: Registra tutti i parametri utilizzati nel training.
  • Registrazione degli artefatti: Registra gli artefatti del modello, inclusi i pesi e i file di configurazione, alla fine del training.

Configurazione e prerequisiti

Assicurati che MLflow sia installato. In caso contrario, installalo usando pip:

pip install mlflow

Assicurati che la registrazione MLflow sia abilitata nelle impostazioni di Ultralytics. Di solito, questo è controllato dalle impostazioni mlflow chiave. Vedi la sezione impostazioni page per maggiori informazioni.

Aggiorna le impostazioni di Ultralytics MLflow

All'interno dell'ambiente Python, chiama il metodo update metodo sull'oggetto settings oggetto per modificare le tue impostazioni:

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Se preferisci utilizzare l'interfaccia della riga di comando, i seguenti comandi ti consentiranno di modificare le tue impostazioni:

# Update a setting
yolo settings mlflow=True

# Reset settings to default values
yolo settings reset

Come usare

Comandi

  1. Imposta un nome per il progetto: Puoi impostare il nome del progetto tramite una variabile d'ambiente:

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
    

    Oppure usa il project=<project> argomento durante l'addestramento di un modello YOLO, cioè yolo train project=my_project.

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

    export MLFLOW_RUN=YOUR_RUN_NAME
    

    Oppure usa il name=<name> argomento durante l'addestramento di un modello YOLO, cioè yolo train project=my_project name=my_name.

  3. Avvia il Server MLflow Locale: Per iniziare il tracciamento, usa:

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

    Questo avvierà un server locale su 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, impostare il MLFLOW_TRACKING_URI variabile d'ambiente.

  4. Interrompi le istanze del server MLflow: per arrestare tutte le istanze MLflow in esecuzione, esegui:

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

Logging

La registrazione è gestita dal 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 training e gestiscono la registrazione di parametri, metriche e artefatti.

Esempi

  1. Registrazione di metriche personalizzate: Puoi aggiungere metriche personalizzate da registrare modificando il trainer.metrics dizionario prima on_fit_epoch_end viene chiamato.

  2. Visualizza esperimento: Per visualizzare i tuoi log, vai al tuo server MLflow (di solito http://127.0.0.1:5000) e seleziona il tuo esperimento ed eseguilo. Esperimento YOLO MLflow

  3. Visualizza esecuzione: Le esecuzioni sono singoli modelli all'interno di un esperimento. Clicca su un'Esecuzione e visualizza i dettagli dell'Esecuzione, inclusi gli artefatti caricati e i pesi del modello. Esecuzione YOLO MLflow

Disabilitazione di MLflow

Per disattivare la registrazione MLflow:

yolo settings mlflow=False

Conclusione

L'integrazione della registrazione MLflow con Ultralytics YOLO offre un modo semplificato per tenere traccia dei tuoi esperimenti di machine learning. Ti consente di monitorare le metriche di performance e gestire gli artefatti in modo efficace, aiutando così nello sviluppo e nell'implementazione di modelli robusti. Per ulteriori dettagli, visita la documentazione ufficiale di MLflow.

FAQ

Come posso impostare la registrazione MLflow con Ultralytics YOLO?

Per configurare la registrazione MLflow con Ultralytics YOLO, è necessario innanzitutto assicurarsi che MLflow sia installato. È possibile installarlo utilizzando pip:

pip install mlflow

Successivamente, abilita la registrazione MLflow nelle impostazioni di Ultralytics. Questo può essere controllato usando il 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 mlflow=True

# Reset settings to default values
yolo settings reset

Infine, avvia un server MLflow locale per il tracciamento:

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

Quali metriche e parametri posso registrare usando MLflow con Ultralytics YOLO?

Ultralytics YOLO con MLflow supporta la registrazione di varie metriche, parametri e artefatti durante il processo di training:

  • Registrazione delle metriche: Traccia le metriche alla fine di ogni epoca e al completamento dell'addestramento.
  • Registrazione dei Parametri: Registra tutti i parametri utilizzati nel processo di training.
  • Registrazione degli artefatti: Salva gli artefatti del modello come pesi e file di configurazione dopo il training.

Per informazioni più dettagliate, visitare la documentazione sul tracking YOLO di Ultralytics.

Posso disabilitare la registrazione MLflow una volta abilitata?

Sì, è possibile disabilitare la registrazione MLflow per Ultralytics YOLO aggiornando le impostazioni. Ecco come puoi farlo usando la CLI:

yolo settings mlflow=False

Per un'ulteriore personalizzazione e per il ripristino delle impostazioni, fare riferimento alla 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, utilizza il seguente comando:

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

Questo comando avvia un server locale su http://127.0.0.1:5000 per impostazione predefinita. Se devi interrompere l'esecuzione delle istanze del server MLflow, utilizza il seguente comando bash:

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

Consulta la sezione dei comandi per ulteriori opzioni di comando.

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 dei tuoi esperimenti di machine learning:

  • Monitoraggio degli Esperimenti Migliorato: Traccia e confronta facilmente diverse esecuzioni e i loro risultati.
  • Migliore riproducibilità del modello: assicurati che i tuoi esperimenti siano riproducibili registrando tutti i parametri e gli artefatti.
  • Monitoraggio delle performance: Visualizza le metriche di performance nel tempo per prendere decisioni basate sui dati per migliorare il modello.
  • Workflow Ottimizzato: Automatizza il processo di logging per concentrarsi maggiormente sullo sviluppo del modello piuttosto che sul tracciamento manuale.
  • Sviluppo Collaborativo: Condividi i risultati degli esperimenti con i membri del team per una migliore collaborazione e condivisione delle conoscenze.

Per un'analisi approfondita della configurazione e dell'utilizzo di MLflow con Ultralytics YOLO, consultare la documentazione Integrazione di MLflow per Ultralytics YOLO.



📅 Creato 1 anno fa ✏️ Aggiornato 4 mesi fa

Commenti