[CLIP] Learning Transferable Visual Models From Natural Language Supervision
Alec Radford, Jong Wook Kim, Chris Hallacy, … Ilya Sutskever · OpenAI
한 줄 요약. 라벨 대신 자연어(캡션)를 감독 신호로 쓴다. 이미지 인코더와 텍스트 인코더를 함께 학습해, 한 배치 안에서 "어떤 캡션이 어떤 이미지와 짝인지"를 맞히는 contrastive 목적으로 정렬한다(웹 4억 쌍). 학습 뒤엔 클래스 이름을 "A photo of a {label}" 같은 문장으로 넣어 텍스트 인코더가 즉석에서 분류기를 합성 → open-vocabulary zero-shot. ImageNet을 학습 예시 0개로 ResNet-50 수준까지 맞히고, distribution shift에도 훨씬 강건. 이후 대부분의 VLM이 freeze해 갖다 쓰는 비전 인코더가 된다.
배경
기존 비전 모델은 미리 정한 고정된 클래스 집합(예: ImageNet 1000개)을 예측하도록 학습된다. 새 개념을 추가하려면 또 라벨링이 필요해 일반성·확장성이 떨어진다.
- 자연어 감독의 장점 — 캡션은 “1-of-N 골드 라벨” 형식이 필요 없어 웹의 방대한 (이미지, 텍스트) 를 그대로 감독으로 쓸 수 있고, 표현을 언어와 연결해 zero-shot 전이가 가능하다.
- 과거의 한계는 규모 — 자연어 감독 시도는 있었지만(예: 11.5% ImageNet zero-shot) 규모가 작아 성능이 낮았다. CLIP은 4억 쌍으로 이 격차를 메운다.
라벨 vs 캡션 — 왜 자연어인가. 캡션이 라벨보다 "더 정확해서"가 아니라, 훨씬 넓은 의미 공간을 가르쳐서다.
- 클래스 라벨 = "정답 번호" — husky 사진 → "248번 클래스". dog·snow·fur 같은 주변 개념은 안 배운다.
- 캡션 = "a brown husky running through snow" — 객체·속성·행동·배경, 나아가 "a dog in the snow" 같은 유사 표현까지 한 번에 연결된다.
- 일반 분류는 "1000개 중 몇 번?", CLIP은 "어떤 문장과 의미가 가까운가?" → 학습 때 없던 클래스(예: axolotl)도 "a photo of an axolotl" 로 물으면 맞힌다(open-vocabulary zero-shot).
단, 딱 정해진 클래스만 맞히는 폐쇄형 문제라면 깨끗한 라벨의 supervised가 더 나을 수도. CLIP의 강점은 새 개념·다양한 표현·분포 변화·이미지↔텍스트 연결에서 나온다.
라벨을 맞히는 대신 “이미지와 캡션의 짝” 을 맞히게 하면, 고정 클래스 없이 어떤 개념이든 언어로 지칭해 분류할 수 있지 않을까? — 즉 라벨은 “정답 번호”를, 캡션은 “이미지를 언어 세계 안에서 설명하는 법” 을 가르친다. 그래서 CLIP은 분류기라기보다 이미지와 문장을 같은 의미 공간에 놓는 모델이 된다.
핵심 아이디어
고정 라벨 대신 캡션으로 학습 → 웹 데이터를 그대로 쓰고 개념을 언어와 연결.
"정확한 단어 예측"이 아니라 "어느 캡션-이미지가 짝인지" 맞히기 → 더 쉽고 효율적.
클래스 이름을 문장으로 임베딩해 분류기를 즉석 합성 → 학습 예시 0개로 분류.
방법
1) Contrastive pre-training
배치에 $N$개의 (이미지, 텍스트)가 있을 때, 이미지·텍스트 임베딩을 공유 멀티모달 공간으로 보내(각 인코더 뒤 linear projection), 올바른 $N$쌍의 cosine 유사도는 최대화하고 나머지 $N^2-N$ 오답쌍은 최소화한다 — similarity에 대한 대칭 cross-entropy(InfoNCE 계열). softmax의 온도 $\tau$ 는 학습되는 스칼라.
- “정확한 단어 예측”(생성/예측 목적)은 어렵고 느리다. CLIP은 “전체 텍스트가 어느 이미지와 짝인지” 만 푸는 더 쉬운 proxy로 바꿔 효율을 크게 올렸다.
- 인코더 — 이미지: ResNet 또는 ViT, 텍스트: Transformer. scratch 학습(ImageNet/사전학습 가중치 초기화 없음). 비선형 projection 대신 linear projection만, 증강은 random crop만.
2) Zero-shot & prompt engineering
분류 시 각 클래스 이름을 프롬프트 템플릿(예: “A photo of a {label}.”)에 넣어 텍스트 인코더로 임베딩 → 이미지 임베딩과 가장 비슷한 클래스를 고른다.
- prompt engineering + ensembling — task에 맞는 문맥(예: “a satellite photo of a {label}”)을 주거나 여러 프롬프트를 앙상블하면 ImageNet에서 약 +5%(컴퓨트 4배에 맞먹는 효과를 “공짜”로).
결과
- zero-shot ImageNet — 학습 예시를 하나도 안 쓰고 원조 ResNet-50과 동급. 30여 개 데이터셋에서 종종 supervised baseline과 경쟁.
- 표현 품질·효율 — linear probe에서 최고 공개 ImageNet 모델을 능가하면서 더 컴퓨트 효율적.
- 강건성 — 같은 정확도의 supervised ImageNet 모델보다 자연 분포 변화에 훨씬 강건(robustness gap 최대 −75%).
한 줄 정리 & 의의
- 자연어 감독 + contrastive 정렬로, 고정 라벨 없이 open-vocabulary zero-shot을 연 비전-언어 모델. “이미지↔텍스트를 같은 공간에 정렬”이라는 단순한 목적이 강력한 전이·강건성을 낳았다.
- VLM 관점에서의 위치 — CLIP의 이미지 인코더(특히 ViT-L/14, 그리고 EVA-CLIP 등 후속)는 이후 BLIP-2·LLaVA·LLaVA-1.5 등 대부분의 VLM이 freeze해 그대로 갖다 쓰는 “Modality Encoder” 가 된다. 즉 VLM 파이프라인의 ①번 부품의 사실상 표준. → VLM 개요