SigLIP
SigLIP은 CLIP의 소프트맥스 대신 쌍별 시그모이드 손실을 사용해 이미지 인코더와 텍스트 인코더를 학습하므로 메모리 사용량을 줄입니다. 작동 원리, SigLIP 2, 코드를 살펴봅니다.
SigLIP(언어-이미지 사전 학습을 위한 시그모이드 손실)은 Google 연구진이 이미지-캡션 쌍으로 이미지 및 텍스트 인코더를 학습하기 위해 개발한 방법이자, 이 방법으로 학습한 모델 계열의 이름입니다. CLIP과 마찬가지로, 이미지와 해당 이미지를 설명하는 캡션이 서로 가까이 위치하는 공유 임베딩 공간을 학습합니다. 차이는 손실 함수에 있습니다. SigLIP은 배치의 모든 이미지-텍스트 쌍을 각각 시그모이드로 점수를 매기는 예/아니요 질문으로 취급하는 반면, 소프트맥스를 사용하는 방식은 각 이미지가 전체 배치에서 해당 이미지의 캡션을 선택하도록 합니다. 2023년 SigLIP 논문에서 소개된 이 변경은 메모리 사용량을 줄이고 작은 배치 크기에서 더 효과적으로 작동하며, SigLIP 인코더가 비전 언어 모델(VLMs)의 일반적인 비전 구성 요소가 되도록 했습니다.
시그모이드 손실의 작동 방식#
이미지-캡션 쌍 N개로 이루어진 배치에서 SigLIP은 모든 이미지 임베딩과 모든 텍스트 임베딩 간의 유사도를 계산해 N×N 점수를 생성합니다. 각 점수에 학습 가능한 온도 t를 곱하고 학습 가능한 바이어스 b를 더한 다음, 이진 로그 시그모이드 손실을 적용합니다. 대각선의 실제 쌍 N개에는 일치 레이블을, 나머지 N² − N개 쌍에는 불일치 레이블을 지정합니다. 온도는 10, 바이어스는 −10에서 시작합니다. 이는 거의 모든 쌍이 불일치한다는 사전 가정에 가까운 상태에서 학습을 시작해, 이미지당 긍정 예시 1개와 부정 예시 N − 1개 사이의 불균형으로 인해 초기에 큰 업데이트가 발생하는 것을 방지합니다.
아래 PyTorch 코드는 쌍 네 개에 대해 실제 캡션을 사용한 경우와 캡션을 한 위치씩 이동한 경우의 손실을 각각 계산합니다.
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과 shuffled captions: loss 10.50을 출력합니다. 캡션을 이동하면 일치로 레이블이 지정된 대각선의 모든 쌍이 불일치가 되어 손실이 거의 9배 증가합니다.
각 쌍의 손실 항은 해당 쌍에만 의존하므로 전체 N×N 행렬을 하나의 장치에 모두 생성할 필요가 없습니다. 각 가속기는 자체 이미지와 자체 텍스트의 점수를 계산한 다음 텍스트 임베딩을 다음 가속기에 전달하고 계산을 반복합니다.
소프트맥스 손실은 각 이미지의 확률을 배치의 모든 캡션을 대상으로 정규화하므로 이 방식으로 분할할 수 없습니다.
SigLIP과 CLIP 비교#
두 방법 모두 대조 학습으로 인코더 두 개를 학습하며, 손실을 정규화하는 대상이 다릅니다.
- CLIP: 배치 유사도 행렬의 각 행과 열에 소프트맥스 교차 엔트로피를 적용합니다. 각 장치가 다른 모든 장치의 임베딩을 모은 다음 계산합니다.
- SigLIP: 각 쌍에 독립적인 이진 손실을 적용합니다. 논문에서 SigLIP은 작은 배치 크기에서 소프트맥스 손실보다 높은 성능을 보였으며, 배치 크기를 늘릴수록 얻는 이점은 점차 줄어들어 32k 배치 크기면 충분했습니다. 사전 학습된 이미지 인코더를 고정한 채 결합해 학습한 모델은 TPUv4 칩 4개에서 이틀 만에 제로샷 ImageNet 정확도 84.5%를 달성했습니다.
손실은 추론 시 점수에도 영향을 줍니다. SigLIP 모델은 각 후보 레이블에 독립적인 일치 확률을 부여하므로, 레이블 집합에 대한 확률의 합은 1이 아닐 수 있습니다.
SigLIP 2#
SigLIP 2는 2025년 2월에 출시되었으며, 시그모이드 손실을 유지하면서 학습 중 캡셔닝 디코더, 자기 증류, 마스킹 예측, 온라인 데이터 큐레이션을 추가했습니다. 인코더는 다국어를 지원하고 위치 추정 및 객체 탐지와 분할에 중요한 조밀한 특징을 개선합니다. NaFlex 변형은 이미지의 원래 종횡비를 유지하면서 여러 해상도로 이미지를 처리합니다. 모델은 ViT-B, L, So400m, g 크기로 제공되며, So400m은 4억 개의 파라미터를 가진 크기 최적화 ViT입니다.
실제 적용 사례#
- VLM용 비전 인코더: Google의 PaliGemma는 SigLIP So400m 이미지 인코더를 사용하며, Gemma 3는 이미지 입력에 4억 개의 파라미터를 가진 SigLIP 인코더를 사용합니다.
- 제로샷 분류: SigLIP 2는 여러 언어로 작성된 텍스트 레이블을 학습 없이 이미지와 비교해 점수를 매깁니다.
- 시맨틱 검색: 벡터 데이터베이스에 저장된 이미지 임베딩을 텍스트 질의나 다른 이미지로 검색합니다.
- 데이터셋 탐색: Ultralytics Platform은 이러한 유형의 이미지-텍스트 인코더로 분석 대상 데이터셋의 모든 이미지를 임베딩합니다. 따라서 Clustering 산점도에서는 시각적으로 유사한 이미지가 함께 표시되고, Find similar images는 다른 데이터셋에서 가장 유사한 이미지를 찾아 반환합니다. 또한 "forklift near a doorway"와 같은 텍스트 검색을 수행하면 설명과 비슷한 이미지도 반환됩니다.










