본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Contrastive Language-Image Pre-training, CLIP; 클립
이미지와 그 설명문을 대조 학습으로 같은 벡터 공간에 놓도록 학습한 OpenAI의 이미지-텍스트 모델

CLIP은 OpenAI가 2021년 1월 5일 공개한 모델로, 이미지 인코더와 텍스트 인코더 한 쌍을 함께 학습해 "이 사진과 이 문장이 짝인가"를 판단하게 한다.[1] 정해진 클래스 목록으로 학습한 기존 이미지 분류기와 달리, 학습 후 클래스 이름을 문장으로 주기만 하면 처음 보는 분류 과제도 풀 수 있다(제로샷 분류). 논문 제목은 〈Learning Transferable Visual Models From Natural Language Supervision〉이다.[2]

CLIP은 그 자체로는 문장이나 그림을 만들지 않는 판별 모델이지만, 이후 비전-언어 모델의 비전 인코더와 스테이블 디퓨전 같은 이미지 생성 모델의 텍스트 인코더로 쓰이며 멀티모달 AI의 기본 부품이 되었다. 코드와 가중치는 MIT 라이선스로 공개되었다.

CLIP은 이미지와 캡션 N쌍을 한 배치로 묶어 학습한다. 이미지 인코더가 낸 벡터 v1,…,vN과 텍스트 인코더가 낸 벡터 w1,…,wN의 내적으로 N×N 유사도 행렬을 만든 뒤, 대각선(제짝)은 크게, 나머지(남의 짝)는 작게 만들도록 양방향 교차 엔트로피를 최소화한다.

L=−12N∑i[ln⁡evi⋅wi/T∑jevi⋅wj/T+ln⁡evi⋅wi/T∑jevj⋅wi/T]

T는 학습되는 온도 값이다. 배치 안의 다른 캡션이 모두 오답 역할을 하므로 배치가 클수록 학습 신호가 풍부하다. 이처럼 맞는 쌍은 가깝게, 틀린 쌍은 멀게 하는 학습을 대조 학습(contrastive learning)이라 한다.

항목 원래 CLIP의 설정
학습 데이터 인터넷에서 모은 이미지-텍스트 4억 쌍(WebImageText, 비공개)[2]
이미지 인코더 ResNet 변형 5종, 비전 트랜스포머 3종(ViT-B/32, ViT-B/16, ViT-L/14)
텍스트 인코더 6,300만 매개변수, 12층 트랜스포머, 어휘 49,152개 BPE, 최대 76~77토큰
학습 규모 모델당 32에포크. 가장 큰 ResNet은 V100 592장으로 18일, 가장 큰 ViT는 V100 256장으로 12일[2]

모델 이름의 "ViT-L/14"는 대형(Large) ViT에 14×14 픽셀 패치를 쓴다는 뜻이다. 336×336 해상도로 추가 학습한 ViT-L/14@336px가 가장 성능이 좋았다.

분류할 클래스마다 "a photo of a {클래스}." 같은 문장을 만들어 텍스트 인코더에 넣고, 이미지 벡터와 가장 유사한 문장의 클래스를 답으로 고른다. 라벨 데이터로 따로 학습하지 않아도 된다. CLIP은 ImageNet 학습 이미지 128만 장을 한 장도 쓰지 않고 원래 ResNet-50과 같은 ImageNet 정확도를 냈고, 30개가 넘는 기존 컴퓨터 비전 데이터셋에서 별도 학습 없이 지도 학습 기준선과 견줄 만한 성능을 보였다.[2] 반면 이미지 속 물체 개수 세기, 사진에서 가장 가까운 차까지의 거리 판단 같은 과제에서는 무작위 추측보다 조금 나은 수준이었고, 사전학습 데이터에 드문 손글씨 숫자(MNIST)는 88% 정확도로 사람(99.75%)에 크게 못 미쳤다. 클래스 문장을 어떻게 쓰느냐에 따라 결과가 달라져 프롬프트를 손봐야 하는 경우도 있다.[1]

  • 이미지-텍스트 검색: 문장으로 이미지를 찾거나 이미지로 관련 문장을 찾는다. 벡터 데이터베이스와 함께 멀티모달 검색에 쓰인다.
  • 비전-언어 모델의 비전 인코더: LLaVA는 CLIP ViT-L/14를, LLaVA-1.5는 CLIP ViT-L/14 336px를 비전 인코더로 썼다.[3] 딥마인드의 Flamingo는 CLIP 방식 대조 학습으로 자체 이미지 인코더를 미리 학습했다.[4]
  • 이미지 생성 모델의 텍스트 인코더: 스테이블 디퓨전 v1은 고정된 CLIP ViT-L/14 텍스트 인코더로 프롬프트를 임베딩해 확산 모델을 조건화한다.[5] 스테이블 디퓨전 3는 CLIP 계열 인코더 두 개와 T5를 함께 쓴다.[6] OpenAI의 DALL-E 2는 캡션에서 CLIP 이미지 임베딩을 만들고 그 임베딩에서 이미지를 생성하는 2단계 구조였다.[7]
  • 데이터 정제와 평가: 이미지와 캡션의 CLIP 유사도로 웹 데이터를 거르거나, 생성 이미지가 프롬프트와 맞는지 점수(CLIP score)를 매긴다.
모델 개발 특징
ALIGN 구글 거의 거르지 않은 웹 이미지 alt 텍스트 10억 쌍 이상으로 비슷한 이중 인코더를 학습(2021년 2월)[8]
OpenCLIP LAION 등 오픈소스 커뮤니티 CLIP 재현 구현. 공개 데이터셋 LAION-400M, LAION-2B, DataComp-1B로 학습해 데이터와 가중치를 공개. 최대 20억 쌍 규모에서 스케일링 법칙을 분석[9]
SigLIP 구글 소프트맥스 대신 쌍마다 독립적인 시그모이드 손실을 써서 배치 전체 정규화가 필요 없다. TPUv4 4개로 이틀 학습한 SigLiT가 ImageNet 제로샷 84.5%. 배치를 100만까지 늘려 본 결과 3만 2천 정도면 충분하다고 보고[10]
SigLIP 2 구글 다국어 지원, 캡션 기반 사전학습과 자기 증류를 더해 위치 파악과 밀집 예측 성능을 높임[11]

SigLIP 손실은 다음과 같다. zij는 짝이면 1, 아니면 -1이다.

L=−1N∑i,jln⁡σ(zij(tvi⋅wj+b))

SigLIP 계열은 OpenVLA, π0 같은 비전-언어-행동 모델과 여러 공개 VLM의 비전 인코더로도 쓰인다.

  1. ↑ 1.0 1.1 CLIP: Connecting text and images, OpenAI, 2021-01-05.
  2. ↑ 2.0 2.1 2.2 2.3 Alec Radford 외, 〈Learning Transferable Visual Models From Natural Language Supervision〉, ICML 2021. arXiv:2103.00020
  3. ↑ Haotian Liu 외, 〈Improved Baselines with Visual Instruction Tuning〉, CVPR 2024. arXiv:2310.03744
  4. ↑ Jean-Baptiste Alayrac 외, 〈Flamingo: a Visual Language Model for Few-Shot Learning〉, NeurIPS 2022. arXiv:2204.14198
  5. ↑ CompVis/stable-diffusion README, GitHub.
  6. ↑ Patrick Esser 외, 〈Scaling Rectified Flow Transformers for High-Resolution Image Synthesis〉, 2024. arXiv:2403.03206
  7. ↑ Aditya Ramesh 외, 〈Hierarchical Text-Conditional Image Generation with CLIP Latents〉, 2022. arXiv:2204.06125
  8. ↑ Chao Jia 외, 〈Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision〉, ICML 2021. arXiv:2102.05918
  9. ↑ Mehdi Cherti 외, 〈Reproducible scaling laws for contrastive language-image learning〉, CVPR 2023. arXiv:2212.07143
  10. ↑ Xiaohua Zhai 외, 〈Sigmoid Loss for Language Image Pre-Training〉, ICCV 2023. arXiv:2303.15343
  11. ↑ Michael Tschannen 외, 〈SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features〉, 2025. arXiv:2502.14786