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.
Model Merging ist eine innovative Technik im Bereich machine learning (ML), die die gelernten Parameter (Gewichte) mehrerer vortrainierter Modelle zu einem einzigen, einheitlichen Modell zusammenführt. Im Gegensatz zu herkömmlichen Multi-Model-Setups werden beim Merging die model weights direkt im Parameterraum verschmolzen. Dies ermöglicht es Anwendern, das Spezialwissen mehrerer Modelle, die auf unterschiedlichen Aufgaben oder Datensätzen feinabgestimmt wurden, zu kombinieren, ohne den Speicher- und Rechenaufwand für die gleichzeitige Ausführung mehrerer Modelle auf sich zu nehmen.
Durch die direkte Anwendung von Operationen auf die Gewichte behält Model Merging den architektonischen Fußabdruck eines einzelnen Netzwerks bei. Dies ist besonders wertvoll bei der Bereitstellung fortschrittlicher computer vision (CV)-Pipelines auf Edge-Geräten, wo die Reduzierung der inference latency und die Einsparung von Speicher entscheidend sind.
Modellzusammenführung abgrenzen#
Es ist hilfreich, Model Merging 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.
- Model Merging vs. Transfer Learning: Transfer Learning beinhaltet die Verwendung eines Basismodells und dessen weiteres Training auf einem neuen Datensatz. Model Merging erfordert kein zusätzliches fine-tuning; es verwendet mathematische Operationen, um bereits trainierte Modelle zu verschmelzen.
Gängige Techniken#
Forscher haben mehrere Methoden entwickelt, um Gewichte effektiv zu kombinieren, ohne die zugrundeliegenden Fähigkeiten des Netzwerks zu zerstören, wie in aktueller academic research on arXiv untersucht wird.
- Weight Averaging: Die einfachste Methode, bei der der Mittelwert der Gewichte aus mehreren Modellen gebildet wird, die dieselbe Architektur verwenden.
- 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.
Praxisanwendungen#
Die Modellzusammenführung ist äußerst effektiv, um verallgemeinerte Systeme aufzubauen, ohne von Grund auf neu trainieren zu müssen.
- Autonomous Vehicles: Ein selbstfahrendes Auto könnte ein Basismodell von Ultralytics YOLO26 verwenden. Ingenieure können eine Modellversion unabhängig voneinander trainieren, um subtile Fußgängerbewegungen zu erkennen, und eine andere, um komplexe Verkehrsschilder zu lesen. Das Zusammenführen dieser beiden Modelle erzeugt einen einzigen, hochfähigen Detektor, der beide Aufgaben gleichzeitig bewältigt, ohne die Inferenzzeit zu verdoppeln.
- AI in Healthcare: In der medizinischen Bildgebung können verschiedene Forschungskrankenhäuser Modelle aufgrund strenger Datenschutzgesetze auf spezialisierten lokalen Datensätzen feinabstimmen (z. B. eines für MRT-Scans und eines für CT-Scans). Durch die sichere Zusammenführung der Modelle können Forscher ein umfassendes Diagnosewerkzeug erstellen, das von verschiedenen Datenverteilungen profitiert.
Beispiel: Einfache Gewichtungsmittelung#
Du kannst einfaches Model Merging ganz einfach mit PyTorch durchführen. Das folgende Beispiel zeigt, wie du die State Dictionaries von zwei identisch strukturierten Modellen mitteln kannst.
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 bei der Datensatzannotation, dem Training und der Bereitstellung vereinfachen möchten, bietet die Ultralytics Platform eine intuitive Benutzeroberfläche zur mühelosen Verwaltung von End-to-End-Vision-KI-Projekten.






