Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

Modellerin Birleştirilmesi

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.

Ayırt Edici Modellerin Birleştirilmesi

Model birleştirmeyi, Model Topluluğu ve Aktarım Öğrenimi gibi ilgili kavramlardan ayırmak faydalıdır.

  • Model Birleştirme ve Model Topluluğu: Model topluluğu, tek tek ağları ayrı tutar; her birini tahmin aşamasında çalıştırır ve çıktılarını ortalamalar. Bu, doğruluğu artırır ancak hesaplama yükünü kat kat artırır. Model birleştirme ise tahmin aşamasından önce gerçek ağırlıkları birleştirir; böylece ekstra çalışma zamanı hesaplaması gerektirmeyen tek bir model elde edilir.
  • Model Birleştirme ve Transfer Öğrenimi: Transfer öğrenimi, bir temel modelin alınarak yeni bir veri kümesi üzerinde daha fazla eğitilmesini içerir. Model birleştirme ise ek ince ayar gerektirmez; matematiksel işlemler kullanarak önceden eğitilmiş modelleri birleştirir.

Yaygın Teknikler

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.

  • Ağırlık Ortalaması: Aynı mimariyi paylaşan birden fazla modelden ağırlıkların ortalamasını alan en basit yöntemdir.
  • Görev Aritmetiği: Belirli davranışları birleştirmek veya ortadan kaldırmak için "görev vektörleri"nin (ince ayarlı modelle temel model arasındaki fark) toplanması veya çıkarılmasıyla uygulanan bir teknik.
  • TIES-Merging: Gereksiz değerleri eleyerek ve modeller arasında tutarlı işaretler seçerek parametre çakışmalarını çözen, çeşitli görevlerde performansı koruyan gelişmiş bir yaklaşım.

Gerçek Dünya Uygulamaları

Model birleştirme, sıfırdan yeniden eğitmeye gerek kalmadan genelleştirilmiş sistemler oluşturmak için son derece etkilidir.

  • Otonom Araçlar: Otonom bir araç, Ultralytics temel modelini kullanabilir. Mühendisler, bir model sürümünü detect yaya hareketlerini detect için, diğerini ise karmaşık yol işaretlerini okumak için bağımsız olarak eğitebilir. Bu iki modelin birleştirilmesi, çıkarım süresini ikiye katlamadan her iki görevi de aynı anda yerine getiren tek ve son derece yetenekli bir algılayıcı oluşturur.
  • Sağlık Sektöründe 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 MRG taramaları, diğeri BT taramaları için) ince ayarlayabilir. Araştırmacılar, modelleri güvenli bir şekilde birleştirerek, çeşitli veri dağılımlarından yararlanan kapsamlı bir tanı aracı oluşturabilir.

Örnek: Basit Ağırlıklı Ortalama

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.

Hadi birlikte yapay zekanın geleceğini şekillendirelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın