Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Registra gli esperimenti Ultralytics YOLO utilizzando l'integrazione MLflow

Abirami Vina

4 minuti di lettura

30 dicembre 2024

Scopri come l'integrazione e la registrazione MLflow possono migliorare i tuoi esperimenti Ultralytics YOLO, consentendo un tracciamento superiore per le applicazioni di computer vision.

Puoi immaginare un progetto di computer vision come un puzzle. In sostanza, insegni alle macchine a comprendere i dati visivi mettendo insieme i pezzi del puzzle, come la raccolta di un dataset, l'addestramento di un modello e la sua implementazione. Quando tutto si incastra, ottieni un sistema in grado di analizzare e interpretare efficacemente immagini e video.

Ma, proprio come un vero puzzle, non ogni parte di un progetto di computer vision è semplice. Attività come il tracciamento degli esperimenti (tenere un registro delle impostazioni, delle configurazioni e dei dati) e la registrazione (acquisizione dei risultati e delle metriche di performance) possono richiedere molto tempo e impegno. Sebbene questi passaggi siano fondamentali per migliorare e perfezionare i tuoi modelli di computer vision, a volte possono sembrare un collo di bottiglia.

È qui che entrano in gioco i modelli Ultralytics YOLO e la loro integrazione con MLflow. Modelli come Ultralytics YOLO11 supportano un'ampia gamma di attività di computer vision, tra cui il rilevamento di oggetti, la segmentazione di istanze e la classificazione di immagini. Queste funzionalità consentono la creazione di entusiasmanti applicazioni di computer vision. Avere la possibilità di fare affidamento su integrazioni come l'integrazione MLflow consente agli ingegneri della visione di concentrarsi sul modello stesso, piuttosto che rimanere impantanati nei dettagli. 

In particolare, l'integrazione con MLflow semplifica il processo registrando varie metriche, parametri e artefatti durante tutto il processo di addestramento. In questo articolo, esploreremo come funziona l'integrazione con MLflow, i suoi vantaggi e come puoi utilizzarla per semplificare i tuoi flussi di lavoro Ultralytics YOLO.

Cos'è MLflow?

MLflow è una piattaforma open-source (sviluppata da Databricks) progettata per semplificare e gestire l'intero ciclo di vita del machine learning. Comprende il processo di sviluppo, implementazione e manutenzione dei modelli di machine learning. 

MLflow include i seguenti componenti chiave:

  • Monitoraggio degli esperimenti: Questo componente si concentra sulla registrazione di dettagli importanti come le impostazioni del modello, i risultati e i file per ogni esecuzione di training del modello. Ti aiuta a confrontare i modelli, vedere come i cambiamenti influenzano le prestazioni e trovare il migliore.
  • Registro dei modelli: È come un sistema di archiviazione per i tuoi modelli, dove puoi tenere traccia delle diverse versioni e organizzarle per fasi come test, staging e produzione.
  • Packaging del progetto: MLflow semplifica l'aggregazione dei tuoi progetti di machine learning, inclusi il codice, le impostazioni e gli strumenti necessari, in modo che possano essere condivisi e utilizzati in modo coerente tra team e ambienti.
  • Deployment del modello: MLflow fornisce strumenti per distribuire rapidamente i modelli addestrati in posizioni come workstation o piattaforme cloud come AWS e Azure, rendendoli pronti per l'uso nel mondo reale.
__wf_reserved_inherit
Fig 1. Componenti di MLflow.

I componenti di MLflow semplificano e rendono più efficiente la gestione del processo di machine learning. Grazie a questa integrazione, Ultralytics consente di utilizzare la funzione di tracciamento degli esperimenti di MLflow per registrare parametri, metriche e artefatti durante l'addestramento dei modelli YOLO. Semplifica il tracciamento e il confronto tra diverse versioni del modello YOLO.

L'integrazione di MLflow semplifica l'addestramento

Ora che abbiamo spiegato cos'è MLflow, analizziamo nel dettaglio l'integrazione di MLflow e le funzionalità che offre. 

L'integrazione di MLflow è progettata per rendere il processo di addestramento più efficiente e organizzato, tracciando e registrando automaticamente aspetti importanti dei tuoi esperimenti di computer vision. Facilita tre tipi principali di logging: metriche, parametri e artefatti.

Ecco uno sguardo più da vicino a ciascun tipo di logging:

  • Registrazione delle metriche: Le metriche sono valori quantitativi che misurano le prestazioni del tuo modello durante l'addestramento. Ad esempio, metriche come accuratezza, precisione, richiamo o perdita vengono tracciate alla fine di ogni epoca (un passaggio completo attraverso il tuo set di dati). 
  • Registrazione dei parametri: I parametri sono le impostazioni che si definiscono prima dell'inizio dell'addestramento del modello, come il tasso di apprendimento, la dimensione del batch (il numero di campioni elaborati in una fase di addestramento) e il numero di epoche. Questi parametri influenzano significativamente il comportamento e le prestazioni del modello.
  • Registrazione degli artefatti: Gli artefatti sono gli output o i file generati durante l'addestramento. Ciò include file essenziali come i pesi del modello (i valori numerici che il modello apprende durante l'addestramento), i file di configurazione (che memorizzano le impostazioni di addestramento) e altri dati rilevanti.
__wf_reserved_inherit
Fig. 2. Funzionalità chiave di logging dell'integrazione MLflow. Immagine dell'autore.

Come funziona l'integrazione MLflow

Puoi consultare la documentazione di Ultralytics per istruzioni dettagliate sull'abilitazione dell'integrazione MLflow. Una volta configurata, l'integrazione traccia e registra automaticamente i dettagli chiave dei tuoi esperimenti di training, come discusso in precedenza. Questo elimina la necessità di tracciamento manuale e ti aiuta a rimanere concentrato sul perfezionamento dei tuoi modelli.

Con l'integrazione di MLflow, tutte le tue esecuzioni di training vengono archiviate in un unico posto, rendendo più facile confrontare i risultati e valutare diverse configurazioni. Confrontando i risultati registrati, puoi identificare le configurazioni con le migliori prestazioni e utilizzare queste informazioni per migliorare i tuoi modelli. Ciò garantisce che il tuo flusso di lavoro sia più efficiente, ben documentato e riproducibile.

Nello specifico, ogni sessione di training è organizzata in un esperimento, che funge da contenitore per più run. All'interno di un esperimento, è possibile visualizzare tutte le run associate, confrontare le loro prestazioni affiancate e analizzare le tendenze tra diverse configurazioni. 

Ad esempio, se stai testando vari learning rate o batch size con Ultralytics YOLOv8, tutte le esecuzioni correlate vengono raggruppate nello stesso esperimento per un facile confronto e analisi, come mostrato di seguito.

__wf_reserved_inherit
Fig. 3. È possibile visualizzare gli esperimenti utilizzando l'integrazione MLflow.

Nel frattempo, a livello di singola esecuzione, MLflow fornisce informazioni dettagliate sulla sessione di training specifica. È possibile visualizzare metriche come accuratezza, perdita e precisione nel corso delle epoche, controllare i parametri di training utilizzati (ad esempio, la dimensione del batch e il learning rate) e accedere agli artefatti generati come i pesi del modello e i file di configurazione. Questi dettagli sono memorizzati in un formato organizzato, rendendo semplice rivisitare o riprodurre qualsiasi esecuzione.

Scegliere l'integrazione MLflow: perché si distingue

Mentre consultate la documentazione di Ultralytics ed esplorate le integrazioni disponibili, potreste chiedervi: cosa distingue l'integrazione di MLflow e perché dovrei sceglierla per il mio flusso di lavoro?

Con integrazioni come TensorBoard che forniscono anche strumenti per tracciare le metriche e visualizzare i risultati, è importante comprendere le qualità uniche che distinguono l'integrazione di MLflow. 

Ecco perché MLflow potrebbe essere la scelta ideale per i tuoi progetti YOLO:

  • Interfaccia intuitiva: La dashboard di MLflow semplifica la visualizzazione degli esperimenti, il confronto delle esecuzioni e l'analisi dei risultati, aiutandoti a identificare rapidamente le configurazioni con le migliori prestazioni.
  • Logging di metriche personalizzate: Gli ingegneri di Vision possono registrare metriche personalizzate in aggiunta a quelle standard, consentendo un'analisi più approfondita specifica per le esigenze del loro progetto.
  • Supporto per flussi di lavoro multilingua: MLflow è compatibile con diversi linguaggi di programmazione, tra cui Python, R e Java, facilitando l'integrazione in diverse pipeline di machine learning.

Applicazioni pratiche di YOLO11 e dell'integrazione MLflow

Per ottenere una comprensione più completa di quando è possibile utilizzare l'integrazione MLflow, consideriamo un'applicazione di intelligenza artificiale nel settore sanitario in cui è necessario addestrare YOLO11 per rilevare tumori in immagini di raggi X o TAC. 

In un tale scenario, il dataset consisterebbe in immagini mediche annotate. Sarebbe necessario sperimentare con varie configurazioni, come la regolazione dei tassi di apprendimento, le dimensioni dei batch e le tecniche di pre-elaborazione delle immagini, per ottenere una precisione ottimale. Poiché la posta in gioco è alta nell'assistenza sanitaria e la precisione e l'affidabilità sono fondamentali, tenere traccia manualmente di ogni esperimento può rapidamente diventare ingestibile.

__wf_reserved_inherit
Fig. 4. Rilevamento di tumori tramite Ultralytics YOLO11.

L'integrazione di MLflow affronta questa sfida registrando automaticamente i parametri, le metriche e gli artefatti di ogni esperimento. Ad esempio, se modifichi il learning rate o applichi una nuova strategia di augmentation, MLflow registra queste modifiche insieme alle metriche di performance. Inoltre, MLflow salva i pesi e le configurazioni del modello addestrato, garantendo che i modelli di successo possano essere facilmente riprodotti e distribuiti. 

Questo è solo un esempio di come l'integrazione di MLflow migliori la gestione degli esperimenti nelle applicazioni di Vision AI. Le stesse funzionalità si applicano ad altre applicazioni di computer vision, tra cui:

  • Guida autonoma: YOLO11 può essere utilizzato per rilevare e classificare pedoni, veicoli e segnali stradali in tempo reale per migliorare la sicurezza e l'efficienza dei sistemi di guida autonoma.
  • Analisi dati retail: I modelli di object detection possono monitorare il comportamento dei clienti, tracciare il posizionamento dei prodotti e ottimizzare l'inventario analizzando l'attività in negozio attraverso feed video.
  • Sicurezza e sorveglianza: I modelli possono essere addestrati per rilevare anomalie o monitorare l'attività in tempo reale in aree sensibili per una maggiore sicurezza.

Vantaggi dell'integrazione di MLflow

L'integrazione di MLflow con i modelli YOLO rende la gestione degli esperimenti di machine learning più facile ed efficiente. Automatizzando le attività chiave e mantenendo tutto organizzato, ti consente di concentrarti sulla costruzione e sul miglioramento dei tuoi modelli. Ecco uno sguardo ai principali vantaggi:

  • Scalabile per progetti di grandi dimensioni: La piattaforma gestisce in modo efficiente più esperimenti e modelli, rendendola adatta a team più grandi e flussi di lavoro complessi.
  • Cronologia dettagliata degli esperimenti: La piattaforma conserva una cronologia completa degli esperimenti, consentendoti di rivisitare le esecuzioni passate, analizzare le configurazioni precedenti e imparare dai risultati precedenti.
  • Disabilitazione e ripristino delle opzioni: La registrazione MLflow può essere facilmente disabilitata quando non è necessaria e le impostazioni possono essere ripristinate ai valori predefiniti, offrendo flessibilità per adattarsi alle diverse esigenze del flusso di lavoro.

Punti chiave

L'integrazione di MLflow rende la gestione e l'ottimizzazione degli esperimenti Ultralytics YOLO più facili ed efficienti. Tracciando automaticamente dettagli chiave come parametri, metriche e artefatti, semplifica il processo ed elimina la seccatura della gestione manuale degli esperimenti. 

Che tu stia lavorando a soluzioni sanitarie come il rilevamento di tumori, al miglioramento dei sistemi di guida autonoma o al potenziamento dell'analisi al dettaglio, questa integrazione aiuta a mantenere tutto organizzato e riproducibile. Grazie alla sua interfaccia intuitiva e alla sua flessibilità, MLflow consente agli sviluppatori di concentrarsi sulla creazione di modelli migliori e di promuovere l'innovazione nelle applicazioni di Vision AI.

Unisciti alla nostra community e dai un'occhiata al nostro repository GitHub per saperne di più sull'IA. Puoi anche esplorare ulteriori applicazioni della computer vision nella produzione o dell'IA nelle auto a guida autonoma nelle nostre pagine dedicate alle soluzioni.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis
Link copiato negli appunti