Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Soupes de modèles

Découvrez comment les « Model Soups » améliorent la précision et la robustesse en calculant la moyenne des poidsYOLO Ultralytics . Apprenez à optimiser les performances sans augmenter la latence.

Les « model soups » désignent une technique d'apprentissage automatique dans laquelle les poids de plusieurs réseaux neuronaux, affinés à partir du même modèle de base pré-entraîné à l'aide de différents hyperparamètres, sont moyennés afin de créer un modèle unique et plus robuste. Cette approche permet aux développeurs d'améliorer la précision globale et la généralisation sans augmenter le coût de calcul lors de l'inférence.

Lorsqu'ils affinent un modèle, les professionnels effectuent généralement un large balayage des hyperparamètres afin de trouver la configuration la plus performante. Traditionnellement, on sélectionne le meilleur modèle parmi tous et on écarte les autres. Cependant, la création d’un « modèle composite » tire parti de la diversité des caractéristiques apprises par tous les modèles lors de la recherche. En calculant directement la moyenne de leurs poids, le réseau ainsi obtenu surpasse souvent le meilleur modèle isolé, combinant efficacement leurs atouts tout en minimisant le surapprentissage. Ce processus est très efficace et peut être facilement géré dans des environnements collaboratifs tels que la Ultralytics .

Applications concrètes

Les modèles de type « soupes » sont très efficaces dans les situations où les ressources informatiques sont limitées, mais où une grande précision et une grande robustesse sont requises.

  • Vision pour les véhicules autonomes : lors du déploiement de systèmes de détection d'objets dans les voitures autonomes, les modèles doivent s'adapter à des conditions d'éclairage et météorologiques variées. En faisant la moyenne de plusieurs modèles entraînés avec différentes augmentations de données et différents taux d'apprentissage, les ingénieurs créent un mélange très robuste qui garantit une faible latence d'inférence. Cela permet de s'assurer que les vitesses de traitement en temps réel, indispensables à la navigation autonome, ne soient pas affectées.
  • Diagnostics médicaux mobiles : dans les applications d'IA en périphérie, telles que la classification d'images sur smartphone pour un premier dépistage dermatologique, la puissance de calcul est très limitée. Une « soupe de modèles » offre la précision accrue nécessaire à la fiabilité clinique tout en garantissant que l'empreinte finale s'adapte facilement aux appareils mobiles en périphérie, sans épuiser la batterie ni nécessiter de connexion au cloud.

Différencier des concepts connexes

Pour s'y retrouver dans le domaine de l'optimisation de l'apprentissage profond, il est important de distinguer les « Model Soups » des techniques similaires :

  • Ensemble de modèles: l'ensembling combine les prédictions (résultats) de plusieurs modèles indépendants. Bien que cela améliore la précision, cette approche nécessite d'exécuter chaque modèle lors de l'inférence, ce qui multiplie le coût de calcul. Les « model soups » calculent la moyenne des poids avant l'inférence, ce qui permet de maintenir le coût de calcul au même niveau que celui d'un modèle unique.
  • Fusion de modèles: il s'agit d'un terme général qui désigne la combinaison de modèles pouvant avoir été entraînés sur des tâches ou des ensembles de données totalement différents. Les « model soups » constituent un sous-ensemble spécifique de la fusion, dans lequel tous les modèles proviennent exactement de la même architecture de base pré-entraînée et sont affinés pour la même tâche cible.

Exemple de mise en œuvre

Pour créer un ensemble homogène de modèles, il faut accéder au dictionnairePyTorch de plusieurs modèles entraînés et calculer la moyenne mathématique de leurs tenseurs. Vous trouverez ci-dessous un exemple concis illustrant comment y parvenir à l'aide d'un workflow Ultralytics nativement pris en charge par le 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

En tirant parti de cette technique, les spécialistes de la vision par ordinateur peuvent facilement améliorer des indicateurs de performance tels que les capacités d'apprentissage « zero-shot » et la robustesse générale, sans pour autant compromettre la rapidité de déploiement requise par les architectures d'IA modernes axées sur la périphérie.

Construisons ensemble l'avenir de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique