Model Soups
Entdecke, wie Model-Soups Genauigkeit und Robustheit durch Mittelung der Gewichte von Ultralytics YOLO-Modellen verbessern. Lerne, die Leistung ohne Erhöhung der Latenz zu steigern.
Model Soups bezeichnen ein Verfahren des maschinellen Lernens, bei dem die Gewichte mehrerer neuronaler Netze, die ausgehend von demselben vortrainierten Basismodell mit unterschiedlichen Hyperparametern feinabgestimmt wurden, gemittelt werden, um ein einzelnes, robusteres Modell zu erzeugen. Dieser Ansatz ermöglicht es Entwicklern, die Gesamtgenauigkeit und Generalisierung zu verbessern, ohne die Rechenkosten während der Inferenz zu erhöhen.
Beim Finetuning eines Modells führen Praktiker normalerweise einen umfassenden Hyperparameter-Tuning-Sweep durch, um die leistungsfähigste Konfiguration zu finden. Traditionell wird das eine beste Modell ausgewählt und der Rest verworfen. Die Erstellung einer Model Soup nutzt jedoch die vielfältigen Merkmale, die von allen Modellen im Sweep gelernt wurden. Durch die direkte Mittelung ihrer Modellgewichte übertrifft das resultierende Netzwerk oft das einzelne beste Modell und kombiniert effektiv deren Stärken bei gleichzeitiger Minimierung von Overfitting. Dieser Prozess ist hocheffizient und kann problemlos in kollaborativen Umgebungen wie der Ultralytics Platform verwaltet werden.
Link to this sectionPraxisanwendungen#
Model Soups sind in Szenarien, in denen die Rechenressourcen begrenzt sind, aber eine hohe Genauigkeit und Robustheit erforderlich ist, äußerst effektiv.
- Vision für autonome Fahrzeuge: Beim Einsatz von Objekterkennungssystemen in selbstfahrenden Autos müssen Modelle über diverse Licht- und Wetterbedingungen hinweg generalisieren. Durch die Mittelung mehrerer Modelle, die mit variierten Datenaugmentierungen und Lernraten trainiert wurden, erstellen Ingenieure eine hochrobuste Soup, die eine niedrige Inferenzlatenz beibehält. Dies stellt sicher, dass die für die autonome Navigation entscheidenden Echtzeit-Verarbeitungsgeschwindigkeiten nicht beeinträchtigt werden.
- Mobile medizinische Diagnostik: Bei Edge-AI-Anwendungen, wie der Durchführung einer Bildklassifizierung auf Smartphones für ein erstes dermatologisches Screening, ist die Rechenleistung stark begrenzt. Eine Model Soup bietet die notwendige verbesserte Genauigkeit für klinische Zuverlässigkeit und stellt gleichzeitig sicher, dass der endgültige Platzbedarf problemlos auf mobile Edge-Geräte passt, ohne den Akku zu belasten oder eine Cloud-Verbindung zu erfordern.
Link to this sectionUnterscheidung verwandter Konzepte#
Um sich in der Landschaft der Deep-Learning-Optimierung zurechtzufinden, ist es wichtig, Model Soups von ähnlichen Techniken zu unterscheiden:
- Model Ensemble: Ensembling kombiniert die Vorhersagen (Ausgaben) mehrerer unabhängiger Modelle. Obwohl dies die Genauigkeit verbessert, erfordert es die Ausführung jedes Modells während der Inferenz, was die Rechenkosten multipliziert. Model Soups mitteln die Gewichte vor der Inferenz, wodurch die Rechenkosten identisch mit denen eines einzelnen Modells bleiben.
- Model Merging: Dies ist ein breiterer Begriff für die Kombination von Modellen, die möglicherweise für völlig unterschiedliche Aufgaben oder Datensätze trainiert wurden. Model Soups sind eine spezifische Untergruppe des Mergings, bei der alle Modelle von exakt derselben vortrainierten Basisarchitektur stammen und für dieselbe Zielaufgabe feinabgestimmt wurden.
Link to this sectionImplementierungsbeispiel#
Die Erstellung einer einheitlichen Model Soup beinhaltet den Zugriff auf das PyTorch State Dictionary mehrerer trainierter Modelle und die mathematische Mittelung ihrer Tensoren. Unten findest du ein prägnantes Beispiel dafür, wie dies mit einem Ultralytics YOLO26-Workflow erreicht werden kann, der nativ vom PyTorch Framework unterstützt wird.
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 instanceDurch die Nutzung dieser Technik können Experten für Computer Vision Leistungsmetriken wie Zero-Shot-Learning-Fähigkeiten und allgemeine Robustheit einfach steigern, ohne die für moderne Edge-First-AI-Architekturen erforderliche Bereitstellungsgeschwindigkeit zu opfern.






