SigLIP
SigLIP entraîne des encodeurs d’images et de texte avec une fonction de perte sigmoïde par paires plutôt qu’avec le softmax de CLIP, ce qui réduit l’utilisation de mémoire. Découvre son fonctionnement, SigLIP 2 et son code.
SigLIP (perte sigmoïde pour le préentraînement du langage et de l'image) est une méthode mise au point par des chercheurs de Google pour entraîner des encodeurs d'images et de texte sur des paires image-légende, ainsi que le nom de la famille de modèles entraînée avec cette méthode. Comme CLIP, elle apprend un espace d'incorporations partagé où une image et la légende qui la décrit se retrouvent proches l'une de l'autre. La différence réside dans la fonction de perte : SigLIP traite chaque paire image-texte d'un lot comme une question distincte à réponse binaire, évaluée avec une sigmoïde, au lieu de demander à chaque image de choisir sa légende parmi tout le lot à l'aide d'une softmax. Présentée dans l'article SigLIP de 2023, cette modification réduit l'utilisation de la mémoire, fonctionne mieux avec de petites tailles de lot et a fait des encodeurs SigLIP un composant de vision courant des modèles vision-langage (VLM).
Fonctionnement de la perte sigmoïde#
Pour un lot de N paires image-légende, SigLIP calcule la similarité entre chaque incorporation d'image et chaque incorporation de texte, ce qui donne N×N scores. Il multiplie chaque score par une température t entraînable, ajoute un biais b entraînable et applique une perte logarithmique sigmoïde binaire : les N paires réelles sur la diagonale sont étiquetées comme correspondances, et les N² − N autres paires comme non-correspondances. La température commence à 10 et le biais à −10, ce qui fait commencer l'entraînement près de l'a priori selon lequel presque toutes les paires ne correspondent pas, et évite les grandes mises à jour initiales dues au déséquilibre entre un positif et N − 1 négatifs par image.
Le code PyTorch ci-dessous calcule cette perte pour quatre paires, une fois avec les vraies légendes et une fois avec les légendes décalées d'une position :
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}")Le programme affiche matched captions: loss 1.21 et shuffled captions: loss 10.50. Lorsque les légendes sont décalées, chaque paire diagonale étiquetée comme correspondance est en réalité une non-correspondance, et la perte est presque multipliée par neuf.
Le terme de perte de chaque paire dépend uniquement de cette paire ; la matrice N×N complète n'a donc pas besoin d'exister sur un seul appareil. Chaque accélérateur évalue ses propres images par rapport à ses propres textes, puis transmet ses incorporations de texte à l'accélérateur suivant et recommence :
Une perte softmax ne peut pas être répartie de cette manière, car la probabilité de chaque image est normalisée sur toutes les légendes du lot.
SigLIP et CLIP#
Les deux entraînent deux encodeurs avec l'apprentissage contrastif, mais diffèrent par l'élément sur lequel la perte effectue la normalisation :
- CLIP : une entropie croisée softmax calculée sur chaque ligne et chaque colonne de la matrice de similarité du lot, après que chaque appareil a rassemblé les incorporations de tous les autres.
- SigLIP : une perte binaire indépendante par paire. Dans l'article, SigLIP a surpassé la perte softmax avec de petites tailles de lot, et les gains obtenus en augmentant la taille du lot se sont stabilisés ; un lot de 32k suffisait. Associé à un encodeur d'image préentraîné gelé, il a permis d'entraîner un modèle qui a atteint une précision ImageNet en apprentissage zéro coup de 84,5 % en deux jours sur quatre puces TPUv4.
La perte façonne également les scores à l'inférence : un modèle SigLIP attribue à chaque étiquette candidate une probabilité de correspondance indépendante ; la somme des probabilités d'un ensemble d'étiquettes n'est donc pas nécessairement égale à 1.
SigLIP 2#
SigLIP 2, publié en février 2025, conserve la perte sigmoïde et ajoute un décodeur de légendage, de l'auto-distillation et une prédiction masquée pendant l'entraînement, ainsi qu'une curation des données en ligne. Les encodeurs sont multilingues et améliorent la localisation et les caractéristiques denses, qui sont importantes pour la détection et la segmentation qui s'appuient sur eux. Une variante NaFlex traite les images à plusieurs résolutions tout en conservant leur rapport hauteur/largeur d'origine, et les modèles sont disponibles en tailles ViT-B, L, So400m et g ; So400m est un ViT de 400 millions de paramètres à architecture optimisée.
Applications concrètes#
- Encodeurs de vision pour les VLM : le PaliGemma de Google utilise un encodeur d'images SigLIP So400m, et Gemma 3 utilise un encodeur SigLIP de 400 millions de paramètres pour ses entrées d'image.
- Classification en apprentissage zéro coup : avec SigLIP 2, les étiquettes rédigées sous forme de texte sont évaluées par rapport à une image, sans entraîner de classifieur, et ce dans de nombreuses langues.
- Recherche sémantique : les incorporations d'images stockées dans une base de données vectorielle sont recherchées à l'aide de requêtes textuelles ou d'autres images.
- Exploration de jeux de données : Ultralytics Platform encode chaque image d'un jeu de données analysé à l'aide d'un encodeur image-texte de ce type ; les images visuellement similaires se retrouvent ainsi proches les unes des autres dans le graphique de dispersion Clustering, Find similar images renvoie les images les plus ressemblantes provenant d'autres jeux de données, et une recherche textuelle telle que « chariot élévateur près d'une porte » renvoie également des images qui ressemblent à la description.










