Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Unione di modelli

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.

Fusione di modelli distintivi

È utile distinguere la fusione dei modelli da concetti correlati quali l'insieme di modelli e il transfer learning.

  • Fusione dei modelli vs. ensemble di modelli: un ensemble di modelli mantiene separate le singole reti, eseguendole durante l'inferenza e calcolando la media dei loro risultati. Ciò aumenta la precisione ma moltiplica il carico computazionale. La fusione dei modelli combina i pesi effettivi prima dell'inferenza, ottenendo un unico modello che non richiede alcuna risorsa computazionale aggiuntiva in fase di esecuzione.
  • Fusione di modelli vs. apprendimento per trasferimento: l'apprendimento per trasferimento consiste nel prendere un modello di base e addestrarlo ulteriormente su un nuovo set di dati. La fusione di modelli non richiede alcuna messa a punto aggiuntiva; utilizza operazioni matematiche per fondere modelli già addestrati.

Tecniche comuni

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.

  • Media ponderata: Il metodo più semplice, che consiste nel calcolare la media dei pesi provenienti da più modelli che condividono la stessa architettura.
  • Aritmetica dei compiti: una tecnica in cui i "vettori di compito" (ovvero la differenza tra un modello ottimizzato e il suo modello di base) vengono sommati o sottratti per combinare o eliminare comportamenti specifici.
  • TIES-Merging: un approccio avanzato che risolve l'interferenza tra i parametri eliminando i valori ridondanti e selezionando segni coerenti tra i modelli, preservando le prestazioni in diverse attività.

Applicazioni nel mondo reale

La fusione dei modelli è estremamente efficace per creare sistemi generalizzati senza dover ricominciare da zero con il training.

  • Veicoli autonomi: Un'auto a guida autonoma potrebbe utilizzare un modello di base Ultralytics . Gli ingegneri possono addestrare in modo indipendente una versione del modello per detect i movimenti detect dei pedoni e un'altra per leggere i segnali stradali complessi. La fusione di questi due modelli crea un unico rilevatore altamente performante in grado di gestire entrambe le attività contemporaneamente senza raddoppiare il tempo di inferenza.
  • L'intelligenza artificiale nel settore sanitario: Nell'imaging medico, diversi ospedali di ricerca potrebbero mettere a punto modelli su set di dati locali specializzati (ad esempio, uno per le scansioni MRI e uno per le scansioni TC) a causa delle rigide leggi sulla privacy dei dati. Unendo i modelli in modo sicuro, i ricercatori possono creare uno strumento diagnostico completo che tragga vantaggio da distribuzioni di dati diversificate.

Esempio: media ponderata semplice

È 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.

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning