Model Merging
Entdecke, wie Modell-Merging mehrere vortrainierte Modelle zu einem kombiniert. Lerne, wie man Ultralytics YOLO26-Gewichte fusioniert, um die Leistung ohne zusätzliche Latenz zu steigern.
Modellzusammenführung ist eine innovative Technik im Machine Learning (ML), die die erlernten Parameter (Gewichte) mehrerer vortrainierter Modelle zu einem einzigen, vereinheitlichten Modell kombiniert. Im Gegensatz zu herkömmlichen Multi-Modell-Setups verschmilzt die Zusammenführung die Modellgewichte direkt im Parameterraum. Dies ermöglicht es Anwendern, das spezialisierte Wissen mehrerer Modelle, die auf unterschiedlichen Aufgaben oder Datensätzen feinabgestimmt wurden, zu kombinieren, ohne den Speicher- und Rechenaufwand für den gleichzeitigen Betrieb mehrerer Modelle in Kauf nehmen zu müssen.
Durch die Anwendung von Operationen direkt auf die Gewichte behält die Modellzusammenführung den architektonischen Fußabdruck eines einzelnen Netzwerks bei. Dies ist besonders wertvoll bei der Bereitstellung fortschrittlicher Computer Vision (CV)-Pipelines auf Edge-Geräten, bei denen die Reduzierung der Inferenzlatenz und das Einsparen von Speicher entscheidend sind.
Link to this sectionModellzusammenführung abgrenzen#
Es ist hilfreich, die Modellzusammenführung von verwandten Konzepten wie Model Ensemble und Transfer Learning zu unterscheiden.
- Modellzusammenführung vs. Model Ensemble: Ein Model Ensemble hält einzelne Netzwerke getrennt, führt jedes während der Inferenz aus und mittelt deren Ausgaben. Dies erhöht die Genauigkeit, vervielfacht jedoch den Rechenaufwand. Die Modellzusammenführung kombiniert die tatsächlichen Gewichte vor der Inferenz, was zu einem einzigen Modell führt, das keine zusätzliche Laufzeitberechnung erfordert.
- Modellzusammenführung vs. Transfer Learning: Transfer Learning beinhaltet die Verwendung eines Basismodells, das auf einem neuen Datensatz weiter trainiert wird. Die Modellzusammenführung erfordert kein zusätzliches Fine-tuning; sie nutzt mathematische Operationen, um bereits trainierte Modelle zu verschmelzen.
Link to this sectionGängige Techniken#
Forscher haben verschiedene Methoden entwickelt, um Gewichte effektiv zu kombinieren, ohne die zugrunde liegenden Fähigkeiten des Netzwerks zu zerstören, wie in aktueller akademischer Forschung auf arXiv untersucht.
- Gewichtungsmittelung: Die einfachste Methode, bei der der Mittelwert der Gewichte mehrerer Modelle mit derselben Architektur gebildet wird.
- Task Arithmetic: Eine Technik, bei der "Aufgabenvektoren" (die Differenz zwischen einem feinabgestimmten Modell und seinem Basismodell) addiert oder subtrahiert werden, um spezifische Verhaltensweisen zu kombinieren oder zu entfernen.
- TIES-Merging: Ein fortschrittlicher Ansatz, der Parameterinterferenzen löst, indem redundante Werte gekürzt und konsistente Vorzeichen über Modelle hinweg gewählt werden, wodurch die Leistung bei verschiedenen Aufgaben erhalten bleibt.
Link to this sectionPraxisanwendungen#
Die Modellzusammenführung ist äußerst effektiv, um verallgemeinerte Systeme aufzubauen, ohne von Grund auf neu trainieren zu müssen.
- Autonome Fahrzeuge: Ein selbstfahrendes Auto könnte ein Ultralytics YOLO26-Basismodell verwenden. Ingenieure können unabhängig eine Modellversion trainieren, um subtile Fußgängerbewegungen zu erkennen, und eine andere, um komplexe Straßenschilder zu lesen. Die Zusammenführung dieser beiden Modelle erzeugt einen einzigen, leistungsfähigen Detektor, der beide Aufgaben gleichzeitig bewältigt, ohne die Inferenzzeit zu verdoppeln.
- KI im Gesundheitswesen: In der medizinischen Bildgebung könnten verschiedene Forschungskrankenhäuser aufgrund strenger Datenschutzgesetze Modelle auf spezialisierten lokalen Datensätzen feinabstimmen (z. B. eines für MRT-Scans und eines für CT-Scans). Durch das sichere Zusammenführen der Modelle können Forscher ein umfassendes Diagnosetool erstellen, das von vielfältigen Datenverteilungen profitiert.
Link to this sectionBeispiel: Einfache Gewichtungsmittelung#
Du kannst einfache Modellzusammenführungen problemlos mit PyTorch durchführen. Das folgende Beispiel demonstriert, wie man die State Dictionaries von zwei identisch strukturierten Modellen mittelt.
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")Für Teams, die die komplexen Arbeitsabläufe von Datensatzannotation, Training und Bereitstellung vereinfachen möchten, bietet die Ultralytics Platform eine intuitive Schnittstelle, um Vision-KI-Projekte mühelos von Anfang bis Ende zu verwalten.






