Embedding Space Wiki Uygulamaya dön →

Görüntü-metin modellerinde embedding uzayı

Bu sayfa, Embedding Space Viewer'da gördüklerinizin ne anlama geldiğini ve nerede yanıltabileceğini anlatıyor. Rakamların tamamı bu aracın kendi verisi üzerinde ölçüldü: Flickr30k'den 500 görüntü ve 2500 caption, CLIP ViT-B/32, 512 boyut. Başka bir veri kaynağı kullanıldığında belirtiliyor.

1. Embedding uzayı nedir?

Bir encoder, girdiyi (bir görüntüyü ya da cümleyi) sabit uzunlukta bir vektöre çevirir. Anlamca benzer girdiler bu uzayda birbirine yakın düşer; yakınlık genellikle cosine benzerliği ile ölçülür.

Görüntü-metin modellerinde temelde iki yaklaşım var:

2. Uzayda ne "durur"?

Hiçbir şey. Yaygın bir yanılgı, uzayda modelin eğitildiği verilerin bulunduğunu düşünmek. Oysa eğitimden geriye yalnızca iki fonksiyon kalır:

f_görüntü(görüntü) → 512 boyutlu vektör
f_metin(metin)       → 512 boyutlu vektör

Eğitim verisi (CLIP için ~400 milyon görüntü-metin çifti) yalnızca bu fonksiyonların ağırlıklarını ayarlamak için kullanıldı. Bu ağırlıklar ~600 MB tutuyor; içlerinde bir veritabanı yok.

Uygulamada gördüğünüz her nokta, bizim seçtiğimiz bir görüntünün ya da metnin bu fonksiyondan geçirilmiş hâli. Yazdığınız bir metin sorgusu da aynı şekilde uzaya yerleşiyor; o cümle eğitim verisinde hiç geçmemiş olsa bile.

Eğitim verisi uzayın şeklini belirler; noktalar ise uzaya sorduğumuz sorulardır. Köpek fotoğraflarının birbirine yakın düşmesi eğitimin bir izi. Eğitimde az bulunan alanlardan gelen görüntüler (ör. tıbbi görüntüler) ise birbirinden iyi ayrışmaz, tek bir küme halinde toplanır.

3. Modality gap

CLIP benzeri modellerde görüntü ve metin embedding'leri aynı uzayda olsalar da uzayın farklı bölgelerinde toplanır (Liang ve ark., 2022). Bu yüzden bir caption'ın en yakın komşuları neredeyse her zaman diğer caption'lar olur, kendi görüntüsü değil:

Ölçüm (512B, Flickr + CLIP)Değer
Merkezler arası uzaklık ‖μgörüntü − μmetin‖0.802
Eşleşen görüntü-caption çiftlerinin ortalama cosine'ı0.312
Rastgele görüntü-caption çiftlerinin ortalama cosine'ı0.171
Görüntü-görüntü ortalama cosine0.486
Metin-metin ortalama cosine0.498

Eşleşen bir çift, rastgele bir çiftten yalnızca biraz daha benzer (0.31'e karşı 0.17). Buna karşılık herhangi iki görüntü veya herhangi iki metin birbirine çok daha benzer (~0.49). Örneğin "a dog running through the snow" sorgusunun en yakın metinleri ~0.78 cosine verirken, en yakın görüntüleri ~0.25'te kalıyor.

Gap kapatılabilir, ve bu retrieval'ı neredeyse etkilemez

Her modaliteden kendi ortalamasını çıkarıp vektörleri yeniden normalize ettiğinizde (uygulamada Centering → Modalite başına) gap neredeyse tamamen kapanıyor. Görüntüden metne arama başarısı ise az değişiyor. Global centering ise başka bir sonuç veriyor:

CenteringGap normuGörüntü → metin top-1Metin → görüntü top-1
Yok0.80282.6%65.5%
Global ortalama0.88332.2%65.9%
Modalite başına0.03579.0%67.4%
Global centering retrieval'ı bozuyor. Tüm vektörlerden tek bir ortak ortalamayı çıkarmak, iki modaliteyi birbirinin tam tersi yönlere itiyor (merkezler arası cosine −0.99). Sonuçta görüntüden metne arama başarısı %82.6'dan %32.2'ye düşüyor. Gap'i kapatmak istiyorsanız her modaliteyi kendi ortalamasıyla merkezleyin.

Model karşılaştırması (Imagenette, 10 sınıf): SigLIP'te gap CLIP'ten bile büyük (1.11'e karşı 0.84), ama zero-shot sınıflandırma doğruluğu %99.7. Yani gap büyük olsa da model görüntüyle metni doğru eşleştirebiliyor.

4. 3B'nin matematiksel sınırı

512 boyutu 3 boyuta indirmek bilgi kaybı demek. Peki bu kayıp ne kadar büyük? Bunun için şu soruları ölçtük:

SoruCevap
Varyansın %90'ını taşımak için kaç boyut gerekiyor?184
3 boyut varyansın ne kadarını taşıyor?%24
Komşulukların %90'ını korumak için kaç boyut gerekiyor?~200
İçsel boyut (TwoNN tahmini): görüntüler / metinler~21 / ~8

PCA ile hedef boyut arttıkça, bir noktanın 10 en yakın komşusundan kaçının korunduğu:

İçsel boyut en kritik sayı. Görüntüler, 512 boyutlu uzayın içinde ~21 boyutlu, kıvrımlı bir yüzey üzerinde duruyor. Hiçbir yöntem, ne kadar akıllı olursa olsun, 21 boyutlu bir yüzeyi 3 boyuta yırtmadan veya üst üste katlamadan yerleştiremez. Bu bir algoritma sorunu değil, geometrinin kendisinden gelen bir sınır.

Harita benzetmesi Küreyi düz bir kâğıda bozmadan aktarmak imkânsızdır. Mercator yönleri korur ama alanları bozar (Grönland Afrika kadar görünür). Haritacılar bu yüzden "en doğru haritayı" aramaz; hangi özelliği koruyacaklarını seçer ve bozulmayı ölçerler. Embedding projeksiyonlarına da aynı gözle bakmak gerekiyor.

5. Projeksiyon yöntemleri

Uygulamadaki dört yöntemi ve karşılaştırma için düz bir autoencoder'ı aynı metriklerle ölçtük (Flickr + CLIP, centering yok):

YöntemTrustkNN@10Spearman ρPearsonTriplet
PCA0.8050.0490.7920.8570.735
UMAP0.9330.4010.6510.8120.681
t-SNE0.9570.4950.4090.4320.639
RTD-AE0.8190.0830.6960.6820.736
AE (yalnızca MSE)0.9510.3220.5580.5530.672

Trust (trustworthiness): 3B'de yakın görünen noktalar gerçekte de yakın mı? kNN@10: 512 boyuttaki 10 en yakın komşudan kaçı 3B'de de ilk 10'da? Spearman ρ / Pearson: rastgele nokta çiftlerinin uzaklıkları 3B'de ne ölçüde korunuyor? Triplet: "A, B'ye mi yakın, C'ye mi?" sorusunun cevabı 3B'de de aynı kalıyor mu? İlk ikisi yerel yapıyı, son üçü global yapıyı ölçüyor.

YöntemGüvenilir olduğu konularYanıltabileceği konular
PCAGlobal mesafeler, eksen yönleri, doğrusal yapılar. Gap genellikle ilk eksende.Yerel komşuluklar (yalnızca %5'i korunuyor)
UMAPKüme üyeliği, yerel komşulukKümeler arası mesafe, küme büyüklüğü, gap'in büyüklüğü
t-SNEYakın komşuluklar (en iyisi)Tüm global yapı; sorgu konumu yaklaşık
RTD-AETopoloji ve triplet sıralaması; sorgu konumu kesinYerel komşuluklar

En iyi durumda bile (t-SNE) komşulukların yarısı 3B'de kayboluyor. Bu yüzden uygulamadaki komşu listeleri ve gap metrikleri 3B görünümden değil, doğrudan 512 boyutlu uzaydan hesaplanıyor.

6. Gap'i en doğru hangisi gösterir?

UMAP'te iki modalite birbirinden uzak iki ada olarak görünür; t-SNE ve RTD-AE'de ise iki bulut yan yana durur. Bu yüzden ilk bakışta "gap'i en iyi UMAP gösteriyor" sonucuna varmak kolay. Ölçümler bunun tersini söylüyor:

UzayKomşuları aynı modalitedenLineer ayrılabilirlikGap / bulut yayılımı
512B (gerçek)%100%1001.14
PCA%100%1003.81
UMAP%100%1009.28
t-SNE%100%99.51.66
RTD-AE%98.7%99.01.69

Gap dört yöntemin hepsinde var: her yöntemde komşular kendi modalitesinden ve iki modalite bir düzlemle ayrılabiliyor. Fark, gap'in ne kadar büyük çizildiğinde:

Gerçekte iki modalitenin merkezleri arasındaki uzaklık, bulutların kendi yarıçapıyla neredeyse aynı (oran 1.14). Yani gerçek resim yan yana duran ama hiç karışmayan iki bulut. UMAP bunu ~8 kat büyüterek iki ayrı ada gibi çiziyor. UMAP, gap'in var olduğunu en çarpıcı biçimde gösteren yöntem; ama ne kadar büyük olduğunu en çok bozan da yine o.

t-SNE veya RTD-AE görünümünde gap'i görmek için "Metinleri göster" kutusunu kapatıp açın; görüntü bulutunun hep aynı tarafta kaldığını göreceksiniz. Sahnedeki μ görüntü → μ metin oku gap'in yönünü gösteriyor.

7. RTD-AE deneyi

Trofimov ve ark. (ICLR 2023), bir autoencoder'ı yeniden oluşturma hatası ile Representation Topology Divergence'ın toplamını en aza indirecek şekilde eğitiyor. RTD, iki nokta bulutunun topolojik özelliklerini (kümeler, döngüler ve bunların nerede oluştuğu) persistent homology ile karşılaştıran türevlenebilir bir ölçü. Makale, global yapıyı UMAP ve t-SNE'den belirgin biçimde daha iyi koruduğunu raporluyor.

Bu veride ne bulduk?

Yeniden üretilebilirlik notları

8. Pratik kurallar

3B görünüm hipotez üretir, yüksek boyut ise kanıtlar. Görselde fark ettiğiniz bir şeyi ("bu iki küme ayrı görünüyor") 512 boyutta doğrulayın: cosine benzerliği, komşu listesi ya da gap metrikleri ile.

9. Bu site nasıl çalışıyor?

Neden fp16 model?

Tarayıcıdaki modelin, sitedeki embedding'leri üreten PyTorch modeliyle aynı sonucu vermesi gerekiyor. Beş caption üzerinde ölçtük:

Model dosyasıBoyutPyTorch'la ortalama cosineEn kötü
int8 / uint8 / q864 MB0.790.59
q4 / q4f1673 MB0.9780.959
fp16127 MB1.0001.000

8-bit varyantlar sessizce yanlış sonuç veriyor. CLIP'te sorgu ile görüntüler arasındaki benzerlikler 0.20–0.30 gibi dar bir aralıkta toplandığı için, q4'ün %2–4'lük sapması bile sonuç sıralamasını değiştirmeye yetiyor.

Kaynak kod ve yerel sürüm (canlı UMAP/t-SNE parametreleri, SigLIP): github.com/gungorturan/embedding-space-viewer

10. Kaynaklar

  1. Radford ve ark. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). arXiv:2103.00020
  2. Zhai ve ark. (2023). Sigmoid Loss for Language Image Pre-Training (SigLIP). arXiv:2303.15343
  3. Liang ve ark. (2022). Mind the Gap: Understanding the Modality Gap in Multi-modal Contrastive Representation Learning. arXiv:2203.02053
  4. Trofimov ve ark. (2023). Learning Topology-Preserving Data Representations (RTD-AE), ICLR 2023. arXiv:2302.00136
  5. McInnes, Healy, Melville (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv:1802.03426
  6. van der Maaten, Hinton (2008). Visualizing Data using t-SNE. JMLR 9
  7. Facco ve ark. (2017). Estimating the intrinsic dimension of datasets by a minimal neighborhood information (TwoNN). arXiv:1803.06992
  8. Wang, Isola (2020). Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere. arXiv:2005.10242
  9. Liu ve ark. (2023). Visual Instruction Tuning (LLaVA). arXiv:2304.08485
  10. Li ve ark. (2023). BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models. arXiv:2301.12597