SigLIP
SigLIP, CLIP'in softmax'ı yerine ikili sigmoid kaybıyla görüntü ve metin kodlayıcılarını eğiterek bellek kullanımını azaltır. Nasıl çalıştığını, SigLIP 2'yi ve kodu öğren.
SigLIP (Dil-Görüntü Ön Eğitimi için Sigmoid Kaybı), Google araştırmacılarının görüntü ve metin kodlayıcılarını görüntü-açıklama çiftleri üzerinde eğitmek için geliştirdiği bir yöntemdir; ayrıca bu yöntemle eğitilen model ailesinin adıdır. CLIP gibi, bir görüntüyle onu tanımlayan açıklamanın birbirine yakın konumlandığı ortak bir gömme uzayı öğrenir. Fark, kayıp fonksiyonundadır: SigLIP, bir sigmoid ile puanlanan her görüntü-metin çiftini kendi evet-hayır sorusu olarak ele alır; CLIP'in her görüntüden tüm küme içindeki açıklamayı seçmesini isteyen softmax yaklaşımını kullanmaz. 2023 SigLIP makalesinde tanıtılan bu değişiklik bellek kullanımını azaltır, küçük yığın boyutlarında daha iyi çalışır ve SigLIP kodlayıcılarını görüntü-dil modellerinde (VLM) yaygın bir görsel bileşen hâline getirmiştir.
Sigmoid Kaybı Nasıl Çalışır#
N görüntü-açıklama çiftinden oluşan bir yığın için SigLIP, her görüntü gömmesinin her metin gömmesiyle benzerliğini hesaplayarak N×N puan üretir. Her puanı öğrenilebilir bir t sıcaklığıyla çarpar, öğrenilebilir bir b yanlılığı ekler ve ikili log-sigmoid kaybı uygular: köşegendeki N gerçek çift eşleşme, diğer N² − N çift ise eşleşmeme olarak etiketlenir. Sıcaklık 10, yanlılık ise −10 değerinden başlar; böylece eğitim, neredeyse her çiftin eşleşmediği önseline yakın başlar ve görüntü başına bir pozitif ile N − 1 negatif arasındaki dengesizliğin yol açtığı büyük ilk güncellemeleri önler.
Aşağıdaki PyTorch kodu, bu kaybı dört çift için hesaplar: bir kez doğru açıklamalarla, bir kez de açıklamalar bir konum kaydırılarak:
import torch
import torch.nn.functional as F
# Normalized embeddings for 4 image-caption pairs: row i of each tensor belongs together
torch.manual_seed(0)
images = F.normalize(torch.randn(4, 64), dim=-1)
texts = F.normalize(images + 0.05 * torch.randn(4, 64), dim=-1)
# Learnable temperature and bias, at the values SigLIP initializes them to
t, b = 10.0, -10.0
# Every image-text pair is its own binary problem: +1 for a match, -1 for the other 12 pairs
labels = 2 * torch.eye(4) - 1
for name, captions in [("matched", texts), ("shuffled", texts.roll(1, dims=0))]:
logits = t * images @ captions.T + b
loss = -F.logsigmoid(labels * logits).sum() / 4
print(f"{name} captions: loss {loss:.2f}")matched captions: loss 1.21 ve shuffled captions: loss 10.50 değerlerini yazdırır. Açıklamalar kaydırıldığında, eşleşme olarak etiketlenen köşegen çiftlerin tümü eşleşmez hâle gelir ve kayıp yaklaşık dokuz kat artar.
Her çiftin kayıp terimi yalnızca o çifte bağlıdır; bu nedenle N×N matrisinin tamamının tek bir aygıtta bulunması gerekmez. Her hızlandırıcı kendi görüntülerini kendi metinleriyle puanlar, ardından metin gömmelerini bir sonraki hızlandırıcıya aktarır ve işlemi yineler:
Softmax kaybı bu şekilde bölünemez; çünkü her görüntünün olasılığı, yığındaki tüm açıklamalar üzerinden normalize edilir.
SigLIP ve CLIP#
Her ikisi de karşıtsal öğrenme ile iki kodlayıcıyı eğitir; aralarındaki fark, kaybın neye göre normalize edildiğidir:
- CLIP: Yığının benzerlik matrisinin her satırı ve sütunu üzerinden hesaplanan softmax çapraz entropisi; her aygıt diğer tüm aygıtların gömmelerini topladıktan sonra hesaplanır.
- SigLIP: Her çift için bağımsız bir ikili kayıp. Makalede SigLIP, küçük yığın boyutlarında softmax kaybını geçti ve yığın büyütmenin getirileri azaldı; 32 binlik yığın boyutu yeterli oldu. Dondurulmuş, önceden eğitilmiş bir görüntü kodlayıcıyla birleştirildiğinde, dört TPUv4 yongasında iki günde sıfır örnekli ImageNet doğruluğu %84,5 olan bir model eğitti.
Kayıp, çıkarım sırasında puanları da şekillendirir: SigLIP modeli her aday etikete bağımsız bir eşleşme olasılığı verir; bu nedenle bir etiket kümesindeki olasılıkların toplamının 1 olması gerekmez.
SigLIP 2#
Şubat 2025'te yayımlanan SigLIP 2, sigmoid kaybını korur; eğitim sırasında açıklama oluşturma kod çözücüsü, öz damıtma, maskeli tahmin ve çevrimiçi veri seçimi ekler. Kodlayıcılar çok dillidir ve üzerlerine kurulan tespit ve bölümleme için önemli olan yerelleştirme ve yoğun özellikleri iyileştirir. NaFlex varyantı, görüntüleri doğal en-boy oranlarını koruyarak çeşitli çözünürlüklerde işler. Modeller ViT-B, L, So400m ve g boyutlarında sunulur; So400m, 400 milyon parametreli, şekil açısından optimize edilmiş bir ViT modelidir.
Gerçek Dünya Uygulamaları#
- VLM'ler için görüntü kodlayıcıları: Google'ın PaliGemma modeli SigLIP So400m görüntü kodlayıcısını kullanır; Gemma 3 ise görüntü girdileri için 400 milyon parametreli bir SigLIP kodlayıcısı kullanır.
- Sıfır örnekli sınıflandırma: Metin olarak yazılan etiketler, SigLIP 2 ile birçok dilde, bir sınıflandırıcı eğitilmeden görüntüye göre puanlanır.
- Anlamsal arama: Bir vektör veri tabanında saklanan görüntü gömmeleri, metin sorgularıyla veya başka görüntüler kullanılarak aranır.
- Veri kümesini keşfetme: Ultralytics Platform, analiz edilen veri kümesindeki her görüntüyü bu türden bir görüntü-metin kodlayıcısıyla gömer. Böylece görsel olarak benzer görüntüler Kümeleme dağılım grafiğinde bir arada görünür; Benzer görüntüleri bul özelliği diğer veri kümelerindeki en yakın benzerleri getirir ve forklift kapının yanında gibi metinle yapılan arama da açıklamaya benzeyen görüntüleri bulur.










