CLIP (인공지능)
더 많은 작업
- 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쌍을 한 배치로 묶어 학습한다. 이미지 인코더가 낸 벡터 과 텍스트 인코더가 낸 벡터 의 내적으로 N×N 유사도 행렬을 만든 뒤, 대각선(제짝)은 크게, 나머지(남의 짝)는 작게 만들도록 양방향 교차 엔트로피를 최소화한다.
는 학습되는 온도 값이다. 배치 안의 다른 캡션이 모두 오답 역할을 하므로 배치가 클수록 학습 신호가 풍부하다. 이처럼 맞는 쌍은 가깝게, 틀린 쌍은 멀게 하는 학습을 대조 학습(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 손실은 다음과 같다. 는 짝이면 1, 아니면 -1이다.
SigLIP 계열은 OpenVLA, π0 같은 비전-언어-행동 모델과 여러 공개 VLM의 비전 인코더로도 쓰인다.
- ↑ 1.0 1.1 CLIP: Connecting text and images, OpenAI, 2021-01-05.
- ↑ 2.0 2.1 2.2 2.3 Alec Radford 외, 〈Learning Transferable Visual Models From Natural Language Supervision〉, ICML 2021. arXiv:2103.00020
- ↑ Haotian Liu 외, 〈Improved Baselines with Visual Instruction Tuning〉, CVPR 2024. arXiv:2310.03744
- ↑ Jean-Baptiste Alayrac 외, 〈Flamingo: a Visual Language Model for Few-Shot Learning〉, NeurIPS 2022. arXiv:2204.14198
- ↑ CompVis/stable-diffusion README, GitHub.
- ↑ Patrick Esser 외, 〈Scaling Rectified Flow Transformers for High-Resolution Image Synthesis〉, 2024. arXiv:2403.03206
- ↑ Aditya Ramesh 외, 〈Hierarchical Text-Conditional Image Generation with CLIP Latents〉, 2022. arXiv:2204.06125
- ↑ Chao Jia 외, 〈Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision〉, ICML 2021. arXiv:2102.05918
- ↑ Mehdi Cherti 외, 〈Reproducible scaling laws for contrastive language-image learning〉, CVPR 2023. arXiv:2212.07143
- ↑ Xiaohua Zhai 외, 〈Sigmoid Loss for Language Image Pre-Training〉, ICCV 2023. arXiv:2303.15343
- ↑ Michael Tschannen 외, 〈SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features〉, 2025. arXiv:2502.14786
- openai/CLIP, GitHub
- mlfoundations/open_clip, GitHub