Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Model Merging

Model birleştirme, tek bir temel modelden ince ayar yapılmış modellerin ağırlıklarını ek çıkarım maliyeti olmadan tek bir modelde bir araya getirir. Ortalama almayı ve görev aritmetiğini ele alır.

Model birleştirme, eğitilmiş iki veya daha fazla modelin ağırlıklarını genellikle parametrelerini ortalayarak veya toplayarak tek bir modelde birleştirir. Böylece birden fazla ağ çalıştırmaya veya tüm veriler üzerinde yeniden eğitim yapmaya gerek kalmadan sonuç her modelin yeteneklerini korur. Bu yöntem, modeller aynı mimariyi ve çoğu yöntemde ortak bir önceden eğitilmiş başlangıç modelini paylaştığında işe yarar: ince ayar her kopyayı ağırlık uzayında yalnızca kısa bir mesafe hareket ettirdiği için model ağırlıkları parametre parametre aynı hizadadır. Birleştirme, açık büyük dil modelleri (LLM'ler) oluşturmak ve LoRA adaptörlerini veya Stable Diffusion kontrol noktalarını bir araya getirmek için yaygın biçimde kullanılır. Meta'nın Llama 3 modeli, her aşamada farklı veriler veya hiperparametrelerle elde edilen modellerin eğitim sonrası ortalamasını aldı.

Model Birleştirme Nasıl Çalışır#

Birleştirme yöntemleri, neyi birleştirdikleri ve modeller arasındaki çelişkileri nasıl çözdükleri bakımından farklılık gösterir:

  • Model çorbaları: Aynı temel modelden farklı hiperparametrelerle ince ayar yapılmış modellerin ağırlıklarını ortalar. İnce ayar yapılmış ViT-G modellerinden oluşturulan açgözlü bir çorba, ImageNet'te %90,94 top-1 doğruluğa ulaşarak o dönemde en iyi sonucu elde etti.
  • Stokastik ağırlık ortalaması: Tek bir eğitim çalışmasının farklı noktalarında kaydedilen kontrol noktalarının ortalamasını alır; bu da kayıp yüzeyinin daha geniş ve daha düz bir bölgesine yerleşme eğilimindedir.
  • Görev aritmetiği: Her ince ayarlı modelden temel modelin ağırlıklarını çıkararak bir görev vektörü elde eder; ardından becerileri birleştirmek için ölçeklenmiş görev vektörlerini temel modele ekler veya bir davranışı ortadan kaldırmak için vektörlerden birini çıkarır.
  • TIES-Merging: Görev vektörleri arasındaki etkileşimi üç adımda azaltır: İnce ayar sırasında çok az değişen parametreleri sıfırlar, her parametre için bir işaret belirler ve yalnızca bu işaretle uyuşan değerleri birleştirir.
  • DARE: Birleştirmeden önce her görev vektöründeki değerlerin çoğunu rastgele siler ve kalanları yeniden ölçeklendirir; böylece her görevin becerisini korurken gereksiz değişiklikleri ortadan kaldırır.

Tek bir eğitim çalışması boyunca ortalama alma, olağan eğitimin de bir parçasıdır. Ultralytics YOLO26 eğitimi, optimize edilen ağırlıkların yanında model ağırlıklarının üstel hareketli ortalamasını (EMA) tutar. Eğitim ilerledikçe bu ortalamanın azalma katsayısı 0.9999'a yaklaşır; kaydettiği last.pt ve best.pt kontrol noktaları bu ortalama modeli içerir.

Görev vektörü yöntemleri ortak bir yapı izler: Her ince ayarlı model, temel modelden farkı olarak ifade edilir; farklar arındırılıp birleştirilir ve sonuç temel modele eklenir:

mergekit gibi açık kaynaklı araçlar, iki model arasında küresel doğrusal enterpolasyon (SLERP) da dahil olmak üzere LLM'ler için bu tarifleri uygular.

Ortak Bir Başlangıç Noktası Neden Önemlidir#

Bir sinir ağının gizli birimleri, ağın hesapladığı sonucu değiştirmeden yeniden sıralanabilir. Bu nedenle farklı rastgele başlangıçlarla eğitilen iki ağ, aynı özelliği nadiren aynı konumda tutar ve bu ağların ortalamasını almak birbiriyle ilgisiz ağırlıkları karıştırır. Aynı temel modelden ince ayar yapılan modeller, temel modelin düzenini korur ve düşük kayıp bölgesinde kalır; dolayısıyla ortalamaları da çalışmaya devam eder. Bu örnek, el yazısı rakamlar üzerinde küçük bir PyTorch sınıflandırıcısı eğitir, kalan eğitim verilerinin farklı yarıları üzerinde iki kopyaya ince ayar yapar ve bu modellerin birleştirilmesini, farklı başlangıçlardan eğitilen iki modelin birleştirilmesiyle karşılaştırır:

import copy

import torch
from sklearn.datasets import load_digits
from torch import nn

torch.manual_seed(0)
X, y = load_digits(return_X_y=True)
order = torch.randperm(len(X))
X, y = torch.tensor(X / 16, dtype=torch.float32)[order], torch.tensor(y)[order]


def mlp():
    """Return a small classifier for 8x8 digit images."""
    return nn.Sequential(nn.Linear(64, 64), nn.ReLU(), nn.Linear(64, 64), nn.ReLU(), nn.Linear(64, 10))


def train(model, rows, steps):
    """Train a model with SGD on the given rows and return it."""
    optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
    for _ in range(steps):
        optimizer.zero_grad()
        nn.functional.cross_entropy(model(X[rows]), y[rows]).backward()
        optimizer.step()
    return model


base = train(mlp(), slice(0, 300), 400)  # shared pretrained starting point
halves = (slice(300, 900), slice(900, 1500))  # two different fine-tuning datasets
for name, (a, b) in [
    ("fine-tuned from one base", [train(copy.deepcopy(base), rows, 100) for rows in halves]),
    ("trained from separate inits", [train(mlp(), rows, 400) for rows in halves]),
]:
    # Merge: average every weight tensor of the two models
    merged = copy.deepcopy(a)
    merged.load_state_dict({k: (a.state_dict()[k] + b.state_dict()[k]) / 2 for k in a.state_dict()})
    accuracy = [(m(X[1500:]).argmax(1) == y[1500:]).float().mean().item() for m in (a, b, merged)]
    print(f"{name}: {accuracy[0]:.3f} and {accuracy[1]:.3f}, merged {accuracy[2]:.3f}")

Eğitimde kullanılmayan 297 rakam üzerinde, aynı temel modelden ince ayar yapılan iki model 0.956 ve 0.946 puan alırken ortalamaları 0.970 puan alır; her iki modelden de yüksektir, çünkü her modelin verilerin kendi yarısından öğrendiklerini birleştirir. Farklı başlangıçlarla eğitilen iki model 0.946 ve 0.956 puan alır; ortalamalarıysa 0.808'e düşer. Git Re-Basin, bağımsız eğitilmiş modelleri birleştirmek için önce modellerden birinin gizli birimlerini diğerininkiyle eşleşecek şekilde permüte eder.

  • Model topluluğu: Her modeli korur ve çıktıları birleştirir; bu nedenle bellek kullanımı ve çıkarım gecikmesi model sayısıyla birlikte artar. Birleştirilmiş model, tek bir modelin boyutuna ve hızına sahiptir.
  • Bilgi damıtma: Bir veya daha fazla öğretmeni taklit etmesi için yeni bir öğrenci modeli eğitir; bu işlem eğitim verisi ve hesaplama gücü gerektirir. Birleştirme, mevcut ağırlıklar üzerinde doğrudan aritmetik işlem yapar.
  • Çok görevli eğitim: Tek bir modeli tüm görevlerin verileriyle birlikte eğitir. Bu yaklaşım genellikle birleştirmenin, söz konusu verilere erişmeden ulaşmaya çalıştığı doğruluk düzeyini belirler.
  • Federatif öğrenme: Her turda ayrı cihazlarda eğitilen modellerin ağırlıklarının ortalamasını alır. Her turda tüm istemciler aynı küresel modelden başlar; ortalama almayı mümkün kılan ortak başlangıç noktası budur.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla