Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Registrare gli esperimentiYOLO Ultralytics utilizzando l'integrazione MLflow

Abirami Vina

4 minuti di lettura

30 dicembre 2024

Scoprite come l'integrazione e la registrazione di MLflow possono migliorare i vostri 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 modelliYOLO di Ultralytics e la sua 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 capacità consentono di creare applicazioni di computer vision interessanti. La possibilità di affidarsi a integrazioni come quella di MLflow consente agli ingegneri della visione di concentrarsi sul modello stesso, anziché farsi prendere dai dettagli. 

In particolare, l'integrazione MLflow semplifica il processo registrando varie metriche, parametri e artefatti durante il processo di formazione. In questo articolo esploreremo il funzionamento dell'integrazione MLflow, i suoi vantaggi e il modo in cui è possibile utilizzarla per ottimizzare i flussi di lavoro di 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 modelli, dove è possibile tenere track 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 rendono il processo di apprendimento automatico più semplice ed efficiente da gestire. 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 . In questo modo è semplice track e confrontare le 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

È possibile consultare la documentazione di Ultralytics per le istruzioni passo-passo sull'attivazione dell'integrazione MLflow. Una volta impostata, l'integrazione traccia e registra automaticamente i dettagli chiave degli esperimenti di formazione, come discusso in precedenza. Questo elimina la necessità di tracciare manualmente i dati e aiuta a concentrarsi sul perfezionamento dei 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 si stanno testando diversi tassi di apprendimento o dimensioni di batch con Ultralytics YOLOv8, tutte le corse correlate vengono raggruppate nello stesso esperimento per facilitare il confronto e l'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

Scorrendo la documentazione di Ultralytics ed esplorando le integrazioni disponibili, ci si potrebbe chiedere: Cosa distingue l'integrazione 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 vostri progettiYOLO :

  • 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 multilingue: MLflow è compatibile con diversi linguaggi di programmazione, tra cui Python, R e Java, facilitando l'integrazione in diverse pipeline di apprendimento automatico.

Applicazioni pratiche di YOLO11 e dell'integrazione di MLflow

Per capire meglio quando è possibile utilizzare l'integrazione di MLflow, consideriamo un'applicazione di IA nel settore sanitario in cui è necessario addestrare YOLO11 a detect tumori nelle immagini di radiografie 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
Figura 4. Rilevamento dei tumori con 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 detect e classify pedoni, veicoli e segnali stradali in tempo reale per migliorare la sicurezza e l'efficienza dei sistemi di guida autonoma.
  • Analisi del commercio al dettaglio: I modelli di rilevamento degli oggetti possono monitorare il comportamento dei clienti, track posizionamento dei prodotti e ottimizzare l'inventario analizzando l'attività in negozio attraverso i feed video.
  • Sicurezza e sorveglianza: I modelli possono essere addestrati a detect anomalie o a monitorare l'attività in tempo reale in aree sensibili per aumentare la sicurezza.

Vantaggi dell'integrazione di MLflow

L'integrazione di MLflow con i modelliYOLO rende la gestione degli esperimenti di apprendimento automatico più semplice ed efficiente. Automatizzando le attività principali e mantenendo tutto organizzato, consente di concentrarsi sulla creazione e sul miglioramento dei modelli. Ecco una panoramica dei 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 con MLflow rende più semplice ed efficiente la gestione e l'ottimizzazione degli esperimenti Ultralytics YOLO . Tracciando automaticamente i dettagli chiave come parametri, metriche e artefatti, semplifica il processo ed elimina il fastidio 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