Model Soups
Découvre comment les « Model Soups » améliorent la précision et la robustesse en moyennant les poids des modèles Ultralytics YOLO. Apprends à booster les performances sans augmenter la latence.
Les Model Soups désignent une technique d'apprentissage automatique où les poids de plusieurs réseaux de neurones, affinés à partir du même modèle de base pré-entraîné en utilisant différents hyperparamètres, sont moyennés ensemble pour 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.
Lors de l'affinage d'un modèle, les praticiens lancent généralement un vaste balayage d'hyperparameter tuning pour trouver la configuration la plus performante. Traditionnellement, le meilleur modèle est sélectionné et les autres sont écartés. Cependant, la création d'une Model Soup tire parti des caractéristiques diverses apprises par tous les modèles du balayage. En moyennant directement leurs model weights, le réseau résultant surpasse souvent le meilleur modèle individuel, combinant efficacement leurs forces tout en minimisant l'overfitting. Ce processus est très efficace et peut être facilement géré dans des environnements collaboratifs comme la Ultralytics Platform.
Link to this sectionApplications concrètes#
Les Model Soups sont très efficaces dans les scénarios où les ressources informatiques sont limitées, mais où une grande précision et une robustesse élevée sont requises.
- Vision pour véhicules autonomes : Lors du déploiement de systèmes d'object detection dans les voitures autonomes, les modèles doivent généraliser à travers diverses conditions d'éclairage et météorologiques. En moyennant plusieurs modèles entraînés avec des augmentations de données et des taux d'apprentissage variés, les ingénieurs créent une soupe très robuste qui maintient une faible inference latency. Cela garantit que les vitesses de traitement en temps réel cruciales pour l'autonomous navigation restent intactes.
- Diagnostics médicaux mobiles : Dans les applications d'Edge AI, comme l'exécution d'image classification sur des smartphones pour un dépistage dermatologique initial, la puissance de calcul est extrêmement limitée. Une Model Soup offre la précision renforcée nécessaire à la fiabilité clinique tout en garantissant que l'empreinte finale s'adapte facilement aux mobile edge devices sans vider la batterie ni nécessiter de connectivité cloud.
Link to this sectionDifférencier les concepts associés#
Pour naviguer dans le paysage de l'deep learning optimization, il est important de distinguer les Model Soups des techniques similaires :
- Model Ensemble : L'ensemble combine les prédictions (sorties) de plusieurs modèles indépendants. Bien que cela améliore la précision, cela nécessite d'exécuter chaque modèle pendant l'inférence, multipliant ainsi le coût de calcul. Les Model Soups moyennent les poids avant l'inférence, conservant un coût de calcul identique à celui d'un modèle unique.
- Model Merging : Il s'agit d'un terme plus large pour la combinaison de modèles qui peuvent avoir été entraînés sur des tâches ou des ensembles de données entièrement différents. Les Model Soups constituent un sous-ensemble spécifique du merging où tous les modèles proviennent exactement de la même pre-trained base architecture et sont affinés sur la même tâche cible.
Link to this sectionExemple d'implémentation#
La création d'une Model Soup uniforme implique d'accéder au PyTorch state dictionary de plusieurs modèles entraînés et de moyenner mathématiquement leurs tenseurs. Voici ci-dessous un exemple concis de la façon dont cela peut être réalisé en utilisant un flux de travail Ultralytics YOLO26 nativement pris en charge par le PyTorch framework.
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 instanceBy leveraging this technique, computer vision practitioners can easily boost performance metrics like zero-shot learning capabilities and general robustness without sacrificing the deployment speed required for modern, edge-first AI architectures.






