DINOv2 way worse than SigLIP in k-NN. Is this expected? [R]

Reddit r/MachineLearning Papers

Summary

A researcher reports a surprising 50-point accuracy gap between frozen SigLIP2 (92%) and DINOv2 (41%) embeddings on a fine-grained car classification task using k-NN, seeking insight on whether a linear probe would close the gap or if DINOv2 is unsuited for retrieval.

Doing a bachelor thesis on fine-grained car classification (telling apart VW Golf generations from listing photos). Simple setup: frozen encoder → embeddings → weighted k-NN. On my small dataset (175 train / 132 test): SigLIP2 SO400M: ~92% CLIP ViT-L: ~59% DINOv2 Giant: ~41% I thought maybe it was a cosine vs euclidean thing, but my embeddings are L2-normalized so both give the same ranking. Tried both, DINOv2 stays at 41%. I get that SigLIP was trained contrastively so its space is basically built for cosine similarity, while DINOv2 is self-supervised and probably needs a trained head to shine. But a 50 point gap still feels huge to me. Anyone here tried DINOv2 with a linear probe on something fine-grained? Does it actually catch up or is it just not the right tool for retrieval? Also open to tips if there's some obvious thing I'm missing (wrong layer, wrong pooling, etc).
Original Article

Similar Articles

Comparing embedding models with synthetic query probing [R]

Reddit r/MachineLearning

The authors propose Synthetic Query Probing, a simple yet effective approach to compare different embedding models by comparing similarity match scores across models instead of raw embedding spaces. The paper illustrates non-linear relationships between models like Ada and Titan, offering practical guidance for swapping embedding models and setting retrieval thresholds.