Scopri come la fusione dei modelli consenta di combinare più modelli pre-addestrati in un unico modello. Impara come fondere i pesi Ultralytics per migliorare le prestazioni senza aumentare la latenza.
La fusione dei modelli è una tecnica innovativa nel machine learning (ML) che combina i parametri appresi (pesi) di più modelli pre-addestrati in un unico modello unificato. A differenza delle configurazioni multi-modello tradizionali, la fusione unisce direttamente i pesi dei modelli nello spazio dei parametri. Ciò consente ai professionisti di combinare le conoscenze specializzate di diversi modelli ottimizzati per compiti o set di dati diversi senza incorrere nei costi di memoria e di calcolo derivanti dall'esecuzione simultanea di più modelli.
Applicando le operazioni direttamente ai pesi, la fusione dei modelli mantiene l'impronta architettonica di una singola rete. Ciò risulta particolarmente utile quando si implementano pipeline avanzate di visione artificiale (CV) su dispositivi periferici, dove ridurre la latenza di inferenza e risparmiare memoria sono fattori fondamentali.
È utile distinguere la fusione dei modelli da concetti correlati quali l'insieme di modelli e il transfer learning.
I ricercatori hanno messo a punto diversi metodi per combinare efficacemente i pesi senza compromettere le capacità di base della rete, come illustrato in recenti studi accademici pubblicati su arXiv.
La fusione dei modelli è estremamente efficace per creare sistemi generalizzati senza dover ricominciare da zero con il training.
È possibile eseguire facilmente operazioni di fusione di modelli di base utilizzando PyTorch. L'esempio seguente mostra come calcolare la media dei dizionari di stato di due modelli con struttura identica.
import torch
# Load the weights (state dicts) from two identical architectures
weights_a = torch.load("yolo26_task1.pt")["model"].state_dict()
weights_b = torch.load("yolo26_task2.pt")["model"].state_dict()
# Perform simple weight averaging
merged_weights = {k: (weights_a[k] + weights_b[k]) / 2.0 for k in weights_a.keys()}
# Save the newly merged model weights
torch.save({"model": merged_weights}, "yolo26_merged.pt")
Per i team che desiderano semplificare i complessi flussi di lavoro relativi all'annotazione, all'addestramento e alla distribuzione dei set di dati, la Ultralytics offre un'interfaccia intuitiva che consente di gestire senza difficoltà progetti di IA visiva end-to-end.
Inizia il tuo viaggio con il futuro del machine learning