Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Modell-Suppen

Erfahren Sie, wie Model Soups durch die Mittelwertbildung der Gewichte vonYOLO die Genauigkeit und Robustheit verbessern. Erfahren Sie, wie Sie die Leistung steigern können, ohne die Latenz zu erhöhen.

Unter „Model Soups“ versteht man eine Technik des maschinellen Lernens, bei der die Gewichte mehrerer neuronaler Netze, die ausgehend vom selben vortrainierten Basismodell mit unterschiedlichen Hyperparametern feinabgestimmt wurden, gemittelt werden, um ein einziges, robusteres Modell zu erstellen. Dieser Ansatz ermöglicht es Entwicklern, die Gesamtgenauigkeit und die Generalisierungsfähigkeit zu verbessern, ohne den Rechenaufwand während der Inferenz zu erhöhen.

Bei der Feinabstimmung eines Modells führen Praktiker in der Regel einen umfassenden Hyperparameter-Tuning -Durchlauf durch, um die Konfiguration mit der besten Leistung zu finden. Traditionell wird das beste Einzelmodell ausgewählt und die übrigen verworfen. Durch die Erstellung einer „Model Soup“ werden jedoch die vielfältigen Merkmale genutzt, die von allen Modellen im Durchlauf gelernt wurden. Durch die direkte Mittelwertbildung ihrer Modellgewichte übertrifft das resultierende Netzwerk oft das beste Einzelmodell, da es deren Stärken effektiv kombiniert und gleichzeitig das Überanpassen minimiert. Dieser Prozess ist äußerst effizient und lässt sich in kollaborativen Umgebungen wie der Ultralytics leicht verwalten.

Anwendungsfälle in der Praxis

Modell-Soups sind besonders effektiv in Situationen, in denen die Rechenressourcen begrenzt sind, aber hohe Genauigkeit und Robustheit erforderlich sind.

  • Vision für autonome Fahrzeuge: Beim Einsatz von Objekterkennungssystemen in selbstfahrenden Autos müssen Modelle unterschiedliche Licht- und Wetterbedingungen berücksichtigen. Durch die Mittelwertbildung mehrerer Modelle, die mit unterschiedlichen Datenanreicherungen und Lernraten trainiert wurden, schaffen Ingenieure eine äußerst robuste Modellmischung, die eine geringe Inferenzlatenz gewährleistet. Dadurch wird sichergestellt, dass die für die autonome Navigation entscheidenden Echtzeit-Verarbeitungsgeschwindigkeiten unbeeinträchtigt bleiben.
  • Mobile medizinische Diagnostik: Bei Edge-AI-Anwendungen, wie beispielsweise der Bildklassifizierung auf Smartphones für die erste dermatologische Untersuchung, ist die Rechenleistung stark eingeschränkt. Ein „Model Soup“ bietet die erforderliche höhere Genauigkeit für klinische Zuverlässigkeit und stellt gleichzeitig sicher, dass die endgültige Speichergröße problemlos auf mobile Edge-Geräte passt, ohne den Akku zu belasten oder eine Cloud-Verbindung zu erfordern.

Differenzierung verwandter Konzepte

Um sich im Bereich der Deep-Learning-Optimierung zurechtzufinden, ist es wichtig, „Model Soups“ von ähnlichen Techniken zu unterscheiden:

  • Modellensemble: Beim Ensemble-Ansatz werden die Vorhersagen (Ausgaben) mehrerer unabhängiger Modelle kombiniert. Dies verbessert zwar die Genauigkeit, erfordert jedoch, dass bei der Inferenz jedes Modell ausgeführt wird, wodurch sich der Rechenaufwand vervielfacht. Bei Modell-Soups werden die Gewichte vor der Inferenz gemittelt, wodurch der Rechenaufwand dem eines einzelnen Modells entspricht.
  • Modellzusammenführung: Dies ist ein weiter gefasster Begriff für die Kombination von Modellen, die möglicherweise auf völlig unterschiedliche Aufgaben oder Datensätze trainiert wurden. „Model Soups“ sind eine spezifische Untergruppe der Modellzusammenführung, bei der alle Modelle auf genau derselben vortrainierten Basisarchitektur basieren und auf dieselbe Zielaufgabe feinabgestimmt werden.

Beispiel für die Umsetzung

Um eine einheitliche Modell-Sammlung zu erstellen, muss auf das PyTorch mehrerer trainierter Modelle zugegriffen und deren Tensoren mathematisch gemittelt werden. Nachfolgend finden Sie ein kurzes Beispiel dafür, wie dies mithilfe eines Ultralytics erreicht werden kann, der nativ vom PyTorch 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 instance

Durch den Einsatz dieser Technik können Fachleute im Bereich Computer Vision Leistungsmetriken wie Zero-Shot-Lernfähigkeiten und allgemeine Robustheit auf einfache Weise verbessern, ohne dabei die für moderne, Edge-First-KI-Architekturen erforderliche Bereitstellungsgeschwindigkeit zu beeinträchtigen.

Lassen Sie uns gemeinsam die Zukunft der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens