Model Merging
Model birleştirmenin (merging) birden fazla önceden eğitilmiş modeli nasıl tek bir modelde birleştirdiğini keşfet. Ek gecikme olmadan performansı artırmak için Ultralytics YOLO26 ağırlıklarını nasıl kaynaştıracağını öğren.
Model birleştirme, birden fazla önceden eğitilmiş modelin öğrenilmiş parametrelerini (ağırlıklarını) tek, birleşik bir modelde bir araya getiren makine öğrenimi (ML) alanında yenilikçi bir tekniktir. Geleneksel çoklu model kurulumlarının aksine, birleştirme işlemi model ağırlıklarını doğrudan parametre uzayında kaynaştırır. Bu, uygulayıcıların farklı görevler veya veri kümeleri üzerinde ince ayar yapılmış birkaç modelin uzmanlık bilgisini, birden fazla modeli aynı anda çalıştırmanın bellek ve hesaplama maliyetlerine katlanmadan birleştirmelerine olanak tanır.
By applying operations directly to the weights, model merging maintains the architectural footprint of a single network. This is particularly valuable when deploying advanced computer vision (CV) pipelines to edge devices, where reducing inference latency and saving memory are critical.
Link to this sectionModel Birleştirmeyi Ayırt Etme#
Model birleştirmeyi Model Topluluğu (Model Ensemble) ve Transfer Öğrenimi (Transfer Learning) gibi ilgili kavramlardan ayırt etmek yararlıdır.
- Model Birleştirme ile Model Topluluğu: Bir model topluluğu, bireysel ağları ayrı tutar, çıkarsama sırasında her birini çalıştırır ve çıktılarını ortalar. Bu doğruluğu artırır ancak hesaplama yükünü katlar. Model birleştirme, gerçek ağırlıkları çıkarsamadan önce birleştirir ve sonuçta ekstra çalışma zamanı hesaplaması gerektirmeyen tek bir model ortaya çıkar.
- Model Birleştirme ile Transfer Öğrenimi: Transfer öğrenimi, bir temel model almayı ve onu yeni bir veri kümesinde daha fazla eğitmeyi içerir. Model birleştirme ek bir ince ayar gerektirmez; halihazırda eğitilmiş modelleri kaynaştırmak için matematiksel işlemler kullanır.
Link to this sectionYaygın Teknikler#
Araştırmacılar, arXiv üzerindeki güncel akademik araştırmalarda incelendiği üzere, ağın temel yeteneklerini yok etmeden ağırlıkları etkili bir şekilde birleştirmek için çeşitli yöntemler geliştirmişlerdir.
- Ağırlık Ortalaması: Aynı mimariyi paylaşan birden fazla modelden elde edilen ağırlıkların ortalamasını alan en basit yöntemdir.
- Görev Aritmetiği (Task Arithmetic): "Görev vektörlerinin" (ince ayar yapılmış bir model ile temel modeli arasındaki fark) belirli davranışları birleştirmek veya kaldırmak için toplandığı veya çıkarıldığı bir tekniktir.
- TIES-Birleştirme: Gereksiz değerleri kırparak ve modeller arasında tutarlı işaretler seçerek parametre girişimini çözen, çeşitli görevlerde performansı koruyan gelişmiş bir yaklaşımdır.
Link to this sectionGerçek Dünya Uygulamaları#
Model birleştirme, sıfırdan yeniden eğitme yapmadan genelleştirilmiş sistemler oluşturmak için oldukça etkilidir.
- Otonom Araçlar: Kendi kendine giden bir araba, bir Ultralytics YOLO26 temel modeli kullanabilir. Mühendisler, bir model sürümünü yaya hareketlerini ince bir şekilde algılamak, diğerini ise karmaşık yol işaretlerini okumak için bağımsız olarak eğitebilirler. Bu iki modeli birleştirmek, çıkarsama süresini ikiye katlamadan her iki görevi aynı anda yerine getiren tek ve son derece yetenekli bir dedektör oluşturur.
- Sağlık Hizmetlerinde Yapay Zeka: Tıbbi görüntülemede, farklı araştırma hastaneleri katı veri gizliliği yasaları nedeniyle modelleri özel yerel veri kümeleri üzerinde (örneğin biri MRI taramaları, diğeri CT taramaları için) ince ayar yapabilir. Modelleri güvenli bir şekilde birleştirerek, araştırmacılar çeşitli veri dağılımlarından yararlanan kapsamlı bir tanı aracı oluşturabilirler.
Link to this sectionÖrnek: Basit Ağırlık Ortalaması#
PyTorch kullanarak temel model birleştirmeyi kolayca gerçekleştirebilirsin. Aşağıdaki örnek, aynı yapıya sahip iki modelin durum sözlüklerinin (state dictionaries) ortalamasının nasıl alınacağını göstermektedir.
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")Veri kümesi etiketleme, eğitim ve dağıtımın karmaşık iş akışlarını basitleştirmek isteyen ekipler için Ultralytics Platform, uçtan uca vizyon yapay zeka projelerini zahmetsizce yönetmek için sezgisel bir arayüz sağlar.






