Meet YOLO26: next-gen vision AI.

Link to this sectionIntegrazione di MLflow per Ultralytics YOLO#

MLflow experiment tracking with Ultralytics YOLO

Link to this sectionIntroduzione#

La registrazione degli esperimenti è un aspetto cruciale dei flussi di lavoro di machine learning che consente di tracciare vari parametri, metriche e artefatti. Aiuta a migliorare la riproducibilità del modello, a risolvere problemi e a incrementare le prestazioni del modello. Ultralytics YOLO, noto per le sue capacità di object detection in tempo reale, ora offre 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 registrazione di MLflow per il tuo progetto Ultralytics YOLO.

Link to this sectionCos'è MLflow?#

MLflow è una piattaforma open source sviluppata da Databricks per gestire il ciclo di vita end-to-end del machine learning. Include strumenti per tracciare esperimenti, impacchettare codice in esecuzioni riproducibili, nonché condividere e distribuire modelli. MLflow è progettato per funzionare con qualsiasi libreria di machine learning e linguaggio di programmazione.

Link to this sectionFunzionalità#

  • Registrazione delle metriche: registra le metriche alla fine di ogni epoca e al termine dell'addestramento.
  • Registrazione dei parametri: registra tutti i parametri utilizzati nell'addestramento.
  • Registrazione degli artefatti: registra gli artefatti del modello, inclusi pesi e file di configurazione, al termine dell'addestramento.

Link to this sectionConfigurazione e prerequisiti#

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

pip install mlflow

Verifica che la registrazione MLflow sia abilitata nelle impostazioni di Ultralytics. Solitamente, questa è controllata dalla chiave mlflow nelle impostazioni. Consulta la pagina delle impostazioni per maggiori informazioni.

Aggiorna le impostazioni MLflow di Ultralytics

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

from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Link to this sectionCome utilizzare#

Link to this sectionComandi#

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

    export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME

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

  2. Imposta un nome di esecuzione: in modo simile all'impostazione di un nome di progetto, puoi impostare il nome dell'esecuzione tramite una variabile d'ambiente:

    export MLFLOW_RUN=YOUR_RUN_NAME

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

  3. Avvia 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 salverà tutti i log di mlflow nella directory 'runs/mlflow'. Per puntare le tue esecuzioni di addestramento a un diverso server di tracciamento, esporta MLFLOW_TRACKING_URI prima dell'addestramento:

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  4. Termina istanze del server MLflow: per interrompere tutte le istanze MLflow in esecuzione, esegui:

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

Link to this sectionRegistrazione#

The logging is taken care of by the on_pretrain_routine_end, on_fit_epoch_end, and on_train_end callback functions. These functions are automatically called during the respective stages of the training process, and they handle the logging of parameters, metrics, and artifacts.

Link to this sectionEsempi#

  1. Registrazione di metriche personalizzate: puoi aggiungere metriche personalizzate da registrare modificando il dizionario trainer.metrics prima che venga chiamata on_fit_epoch_end.

  2. Visualizza esperimento: per visualizzare i tuoi log, naviga sul tuo server MLflow (solitamente http://127.0.0.1:5000) e seleziona il tuo esperimento ed esecuzione. MLflow experiment tracking interface for YOLO

  3. Visualizza esecuzione: le esecuzioni sono singoli modelli all'interno di un esperimento. Fai clic su un'esecuzione per vedere i dettagli, inclusi gli artefatti caricati e i pesi del modello. MLflow run details with YOLO artifacts

Link to this sectionDisabilitazione di MLflow#

Per disattivare la registrazione MLflow:

yolo settings mlflow=False

Link to this sectionConclusione#

L'integrazione della registrazione MLflow con Ultralytics YOLO offre un modo semplificato per tenere traccia dei tuoi esperimenti di machine learning. Ti permette di monitorare le metriche delle prestazioni e gestire gli artefatti in modo efficace, favorendo così uno sviluppo e una distribuzione robusti dei modelli. Per ulteriori dettagli, visita la documentazione ufficiale di MLflow.

Link to this sectionFAQ#

Link to this sectionCome configuro la registrazione MLflow con Ultralytics YOLO?#

Per configurare la registrazione MLflow con Ultralytics YOLO, devi prima assicurarti che MLflow sia installato. Puoi installarlo usando pip:

pip install mlflow

Successivamente, abilita la registrazione MLflow nelle impostazioni di Ultralytics. Questo può essere controllato usando la chiave mlflow. Per ulteriori informazioni, consulta la guida alle impostazioni.

Aggiorna le impostazioni MLflow di Ultralytics
from ultralytics import settings

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

# Reset settings to default values
settings.reset()

Infine, avvia un server MLflow locale per il tracciamento:

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

Link to this sectionQuali metriche e parametri posso registrare usando MLflow con Ultralytics YOLO?#

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

  • 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 addestramento.
  • Registrazione degli artefatti: salva gli artefatti del modello come pesi e file di configurazione dopo l'addestramento.

Per informazioni più dettagliate, visita la documentazione sul tracciamento di Ultralytics YOLO.

Link to this sectionPosso disabilitare la registrazione MLflow una volta abilitata?#

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

yolo settings mlflow=False

Per ulteriori personalizzazioni e per ripristinare le impostazioni, fai riferimento alla guida alle impostazioni.

Link to this sectionCome posso avviare e interrompere 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 su http://127.0.0.1:5000 per impostazione predefinita. Se hai bisogno di interrompere le istanze del server MLflow in esecuzione, usa il seguente comando bash:

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

Fai riferimento alla sezione comandi per ulteriori opzioni di comando.

Link to this sectionQuali sono i vantaggi dell'integrazione di MLflow con Ultralytics YOLO per il tracciamento degli esperimenti?#

Integrare MLflow con Ultralytics YOLO offre diversi vantaggi per la gestione dei tuoi esperimenti di machine learning:

  • Tracciamento migliorato degli esperimenti: traccia e confronta facilmente diverse esecuzioni e i loro risultati.
  • Miglior riproducibilità del modello: 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 per migliorare i modelli.
  • Flusso di lavoro semplificato: automatizza il processo di registrazione per concentrarti maggiormente sullo sviluppo del modello anziché sul tracciamento manuale.
  • Sviluppo collaborativo: condividi i risultati degli esperimenti con i membri del team per una migliore collaborazione e condivisione delle conoscenze.

Per uno sguardo approfondito alla configurazione e allo sfruttamento di MLflow con Ultralytics YOLO, esplora la documentazione Integrazione di MLflow per Ultralytics YOLO.

Commenti