Model Merging
Découvre comment la fusion de modèles combine plusieurs modèles préentraînés en un seul. Apprends à fusionner les poids d’Ultralytics YOLO26 pour améliorer les performances sans latence supplémentaire.
La fusion de modèles est une technique innovante d'apprentissage automatique (ML) qui combine les paramètres appris (poids) de plusieurs modèles pré-entraînés en un modèle unique et unifié. Contrairement aux configurations traditionnelles utilisant plusieurs modèles, la fusion combine directement les poids du modèle dans l'espace des paramètres. Cela permet aux professionnels de combiner les connaissances spécialisées de plusieurs modèles ajustés sur différentes tâches ou différents jeux de données, sans subir les coûts mémoire et de calcul liés à l'exécution simultanée de plusieurs modèles.
En appliquant les opérations directement aux poids, la fusion de modèles conserve l'empreinte architecturale d'un réseau unique. Cela est particulièrement utile lors du déploiement de pipelines avancés de vision par ordinateur (CV) sur des appareils périphériques, où la réduction de la latence d'inférence et les économies de mémoire sont essentielles.
Distinguer la fusion de modèles#
Il est utile de distinguer la fusion de modèles de concepts connexes tels que l'ensemble de modèles et l'apprentissage par transfert.
- Fusion de modèles par rapport à l'ensemble de modèles : un ensemble de modèles conserve les réseaux individuels séparés, en exécutant chacun d'eux lors de l'inférence et en faisant la moyenne de leurs sorties. Cela améliore la précision, mais multiplie la charge de calcul. La fusion de modèles combine les poids eux-mêmes avant l'inférence, ce qui donne un modèle unique ne nécessitant aucun calcul supplémentaire à l'exécution.
- Fusion de modèles par rapport à l'apprentissage par transfert : l'apprentissage par transfert consiste à prendre un modèle de base et à l'entraîner davantage sur un nouveau jeu de données. La fusion de modèles ne nécessite aucun ajustement fin supplémentaire ; elle utilise des opérations mathématiques pour fusionner des modèles déjà entraînés.
Techniques courantes#
Les chercheurs ont développé plusieurs méthodes pour combiner efficacement les poids sans détruire les capacités sous-jacentes du réseau, comme l'explorent de récents travaux de recherche universitaire sur arXiv.
- Moyenne des poids : la méthode la plus simple, qui consiste à calculer la moyenne des poids de plusieurs modèles partageant la même architecture.
- Arithmétique des tâches : une technique où des « vecteurs de tâche » (la différence entre un modèle ajusté et son modèle de base) sont ajoutés ou soustraits afin de combiner ou de supprimer des comportements spécifiques.
- TIES-Merging : une approche avancée qui résout les interférences entre paramètres en supprimant les valeurs redondantes et en sélectionnant des signes cohérents entre les modèles, tout en préservant les performances sur diverses tâches.
Applications concrètes#
La fusion de modèles est très efficace pour créer des systèmes généralisés sans réentraînement à partir de zéro.
- Véhicules autonomes : une voiture autonome pourrait utiliser un modèle de base Ultralytics YOLO26. Les ingénieurs peuvent entraîner indépendamment une version du modèle à détecter les mouvements subtils des piétons et une autre à lire des panneaux routiers complexes. La fusion de ces deux modèles crée un détecteur unique très performant, capable de gérer les deux tâches simultanément sans doubler le temps d'inférence.
- IA dans le secteur de la santé : en imagerie médicale, différents hôpitaux de recherche peuvent ajuster des modèles sur des jeux de données locaux spécialisés (par exemple, l'un pour les examens IRM et l'autre pour les scanners CT) en raison de lois strictes sur la confidentialité des données. En fusionnant les modèles de manière sécurisée, les chercheurs peuvent créer un outil de diagnostic complet qui tire parti de distributions de données diversifiées.
Exemple : moyenne simple des poids#
Tu peux facilement effectuer une fusion de modèles de base avec PyTorch. L'exemple suivant montre comment calculer la moyenne des dictionnaires d'état de deux modèles à structure identique.
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")Pour les équipes qui cherchent à simplifier les flux de travail complexes liés à l'annotation des jeux de données, à l'entraînement et au déploiement, l'Ultralytics Platform fournit une interface intuitive pour gérer facilement les projets d'IA de vision de bout en bout.









