Model birleştirme işleminin, önceden eğitilmiş birden fazla modeli tek bir modelde nasıl birleştirdiğini keşfedin. Ekstra gecikme süresi olmadan performansı artırmak için Ultralytics ağırlıklarını nasıl birleştireceğinizi öğrenin.
Model birleştirme, makine öğreniminde (ML) önceden eğitilmiş birden fazla modelin öğrenilmiş parametrelerini (ağırlıklarını) tek bir birleşik modelde birleştiren yenilikçi bir tekniktir. Geleneksel çoklu model kurulumlarından farklı olarak, birleştirme işlemi model ağırlıklarını parametre uzayında doğrudan birleştirir. Bu, uygulayıcıların farklı görevler veya veri kümeleri için ince ayarlanmış birkaç modelin uzmanlık bilgisini, birden fazla modeli aynı anda çalıştırmanın getirdiği bellek ve hesaplama maliyetlerine katlanmadan birleştirmesine olanak tanır.
Ağırlıklara doğrudan işlemler uygulayarak, model birleştirme tek bir ağın mimari ayak izini korur. Bu, özellikle gelişmiş bilgisayar görme (CV) iş akışlarını uç cihazlara dağıtılırken, çıkarım gecikmesini azaltmanın ve bellek tasarrufu sağlamanın kritik öneme sahip olduğu durumlarda büyük önem taşır.
Model birleştirmeyi, Model Topluluğu ve Aktarım Öğrenimi gibi ilgili kavramlardan ayırmak faydalıdır.
Araştırmacılar, arXiv’de yayınlanan son akademik araştırmalarda da ele alındığı üzere, ağın temel yeteneklerini bozmadan ağırlıkları etkili bir şekilde birleştirmek için çeşitli yöntemler geliştirdiler.
Model birleştirme, sıfırdan yeniden eğitmeye gerek kalmadan genelleştirilmiş sistemler oluşturmak için son derece etkilidir.
Aşağıdakileri kullanarak temel model birleştirme işlemlerini kolayca gerçekleştirebilirsiniz PyTorchkullanarak temel model birleştirme işlemlerini kolayca gerçekleştirebilirsiniz. Aşağıdaki örnek, aynı yapıya sahip iki modelin durum sözlüklerinin 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 devreye alma gibi karmaşık iş akışlarını basitleştirmek isteyen ekipler için, Ultralytics , uçtan uca görsel yapay zeka projelerini zahmetsizce yönetmek üzere sezgisel bir arayüz sunar.
Makine öğreniminin geleceği ile yolculuğunuza başlayın