Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Zuppe di modelli

Scopri come Model Soups migliora la precisione e la robustezza calcolando la media dei pesi deiYOLO Ultralytics . Impara a potenziare le prestazioni senza aumentare la latenza.

Il termine "Model Soups" indica una tecnica di apprendimento automatico in cui i pesi di più reti neurali, ottimizzati a partire dallo stesso modello di base pre-addestrato utilizzando iperparametri diversi, vengono mediati per creare un unico modello più robusto. Questo approccio consente agli sviluppatori di migliorare l'accuratezza complessiva e la generalizzazione senza aumentare il costo computazionale durante l'inferenza.

Quando si ottimizza un modello, gli esperti in genere eseguono un'ampia scansione di ottimizzazione degli iperparametri per individuare la configurazione più performante. Tradizionalmente, viene selezionato il singolo modello migliore e gli altri vengono scartati. Tuttavia, la creazione di un "model soup" sfrutta le diverse caratteristiche apprese da tutti i modelli nella scansione. Calcolando direttamente la media dei pesi dei modelli, la rete risultante spesso supera il singolo modello migliore, combinando efficacemente i loro punti di forza e riducendo al minimo l'overfitting. Questo processo è altamente efficiente e può essere facilmente gestito all'interno di ambienti collaborativi come la Ultralytics .

Applicazioni nel mondo reale

I modelli «soup» sono particolarmente efficaci in contesti in cui le risorse computazionali sono limitate, ma sono richieste un'elevata precisione e robustezza.

  • Visione artificiale nei veicoli autonomi: quando si implementano sistemi di rilevamento degli oggetti nelle auto a guida autonoma, i modelli devono essere in grado di adattarsi a diverse condizioni di illuminazione e meteorologiche. Calcolando la media di più modelli addestrati con diverse tecniche di aumentazione dei dati e velocità di apprendimento, gli ingegneri creano un mix altamente robusto che mantiene una bassa latenza di inferenza. Ciò garantisce che le velocità di elaborazione in tempo reale, fondamentali per la navigazione autonoma, non subiscano alcuna riduzione.
  • Diagnostica medica mobile: nelle applicazioni di intelligenza artificiale edge, come l'esecuzione della classificazione delle immagini su smartphone per lo screening dermatologico iniziale, la potenza di calcolo è fortemente limitata. Un "model soup" garantisce la maggiore precisione necessaria per l'affidabilità clinica, assicurando al contempo che l'ingombro finale si adatti facilmente ai dispositivi mobili edge senza scaricare la batteria o richiedere una connessione al cloud.

Differenziare i concetti correlati

Per orientarsi nel panorama dell'ottimizzazione del deep learning, è importante distinguere i "Model Soups" da tecniche simili:

  • Ensemble di modelli: l'ensembling combina le previsioni (output) di più modelli indipendenti. Sebbene ciò migliori l'accuratezza, richiede l'esecuzione di ogni modello durante l'inferenza, moltiplicando il costo computazionale. I "model soup" calcolano la media dei pesi prima dell'inferenza, mantenendo il costo computazionale identico a quello di un singolo modello.
  • Fusione di modelli: si tratta di un termine più generico che indica la combinazione di modelli che potrebbero essere stati addestrati su compiti o set di dati completamente diversi. I "model soup" sono un sottotipo specifico di fusione in cui tutti i modelli derivano esattamente dalla stessa architettura di base pre-addestrata e vengono ottimizzati per lo stesso compito di destinazione.

Esempio di implementazione

Per creare un insieme di modelli uniformi è necessario accedere al dizionarioPyTorch contenente più modelli addestrati e calcolare la media matematica dei loro tensori. Di seguito è riportato un esempio sintetico di come ciò possa essere ottenuto utilizzando un flusso di lavoro Ultralytics supportato nativamente dal PyTorch .

import torch

# Load the PyTorch state dictionaries from two fine-tuned YOLO26 models
model1 = torch.load("yolo26_run1.pt")["model"].state_dict()
model2 = torch.load("yolo26_run2.pt")["model"].state_dict()

# Create a uniform model soup by averaging the model weights
soup_dict = {key: (model1[key] + model2[key]) / 2.0 for key in model1.keys()}

# The resulting soup_dict can now be loaded into a new YOLO26 instance

Grazie a questa tecnica, gli esperti di visione artificiale possono migliorare facilmente indicatori di prestazione quali le capacità di apprendimento zero-shot e la robustezza generale, senza compromettere la velocità di implementazione richiesta dalle moderne architetture di IA incentrate sull'edge.

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning