CLIP: 대조 학습 기반 시각-언어 사전학습 모델

개요

CLIP(Contrastive Language-Image Pre-training)은 2021년 1월 OpenAI가 발표한 시각-언어 사전학습 모델이다. 인터넷에서 수집한 4억 쌍의 이미지-텍스트 데이터(WebImageText, WIT)로 대조 학습을 수행하여, 이미지와 텍스트를 동일한 임베딩 공간에 정렬한다. CLIP의 가장 혁신적인 특성은 별도의 파인튜닝 없이 자연어 설명만으로 이미지를 분류하는 제로샷 전이(zero-shot transfer) 능력이다.

기존 컴퓨터 비전 모델은 ImageNet과 같은 고정된 레이블 세트에 의존했지만, CLIP은 “a photo of a dog”, “a photo of a cat”과 같은 자연어 프롬프트를 분류기로 사용할 수 있어, 사전에 정의되지 않은 카테고리에 대해서도 분류가 가능하다. 이러한 유연성 덕분에 CLIP은 이후 DALL-E, Stable Diffusion, LLaVA 등 수많은 멀티모달 연구의 기반 모델로 자리잡았다.

논문: Learning Transferable Visual Models From Natural Language Supervision

아키텍처 상세

CLIP은 이중 인코더(dual encoder) 구조로 구성된다.

이미지 인코더

두 가지 변형이 존재한다:

  • ResNet 계열: ResNet-50, ResNet-101, RN50x4, RN50x16, RN50x64
  • ViT 계열: ViT-B/32, ViT-B/16, ViT-L/14, ViT-L/14@336px

최고 성능 모델인 ViT-L/14@336px는 336x336 해상도의 이미지를 14x14 패치로 분할하여 처리한다.

텍스트 인코더

63M 파라미터의 트랜스포머로, 최대 77 토큰을 처리한다. 49,408개 어휘의 BPE 토크나이저를 사용하며, [EOS] 토큰의 최종 히든 스테이트를 텍스트 임베딩으로 사용한다.

대조 학습 (Contrastive Learning)

배치 내 개의 이미지-텍스트 쌍에 대해 유사도 행렬을 계산한다:

여기서 는 학습 가능한 온도 파라미터이며, 은 코사인 유사도이다. 대각 원소(매칭 쌍)의 유사도는 최대화하고, 나머지(비매칭 쌍)는 최소화한다.

아키텍처 스펙 요약

구성 요소사양
이미지 인코더ViT-L/14 (428M params)
텍스트 인코더Transformer (63M params)
임베딩 차원768
레이어 수12 (ViT)
어텐션 헤드12
어휘 크기49,408
위치 인코딩Learned
활성화 함수GELU

핵심 혁신

1. 자연어를 감독 신호로 활용

기존 비전 모델이 고정된 클래스 레이블(1000개 ImageNet 클래스 등)에 의존한 것과 달리, CLIP은 자연어 텍스트를 감독 신호로 사용한다. 이를 통해:

  • 사전 정의된 카테고리에 구애받지 않는 유연한 분류
  • 새로운 도메인으로의 자연스러운 전이
  • 임의의 시각적 개념에 대한 제로샷 인식

2. 대규모 웹 데이터 활용

400M 이미지-텍스트 쌍의 WIT 데이터셋을 자체 수집하여 사용했다. 이는 당시 공개된 시각-언어 데이터셋(COCO의 ~118K, CC3M의 ~3M)보다 수백 배 큰 규모로, 데이터 스케일의 중요성을 실증했다.

3. 학습 가능한 온도 파라미터

대조 손실의 날카로움을 조절하는 온도 를 학습 가능한 파라미터로 설정하여, 학습 과정에서 자동으로 최적 온도를 찾도록 했다.

벤치마크/성능

ImageNet 제로샷 분류

모델Top-1 Accuracy비고
CLIP ViT-L/14@336px76.2%제로샷, 파인튜닝 없음
ResNet-50 (supervised)76.1%ImageNet 1.28M으로 학습
Visual N-Grams11.5%이전 제로샷 SOTA

분포 이동(Distribution Shift) 강인성

데이터셋CLIPResNet-50
ImageNet Sketch60.2%25.2%
ImageNet Adversarial77.1%2.7%
ImageNet-R77.7%36.2%

프롬프트 엔지니어링(80개 컨텍스트 프롬프트 앙상블)을 적용하면 약 5%p 추가 향상이 가능하다.

관련 모델 비교

특성CLIPSigLIPALIGNBLIP
발표 연도2021202320212022
손실 함수Softmax InfoNCESigmoidSoftmax InfoNCEITC+ITM+LM
배치 크기 의존성높음 (32K)낮음높음중간
텍스트 생성불가불가불가가능
주요 용도임베딩 정렬임베딩 정렬임베딩 정렬이해+생성

실무 활용

제로샷 이미지 분류

import torch
import clip
from PIL import Image
 
model, preprocess = clip.load("ViT-L/14", device="cuda")
 
image = preprocess(Image.open("photo.jpg")).unsqueeze(0).to("cuda")
text = clip.tokenize(["a dog", "a cat", "a bird"]).to("cuda")
 
with torch.no_grad():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)
    logits = (image_features @ text_features.T) * model.logit_scale.exp()
    probs = logits.softmax(dim=-1)
 
print(probs)  # [[0.95, 0.03, 0.02]]

활용 분야

  1. 이미지 검색: 텍스트 쿼리로 이미지 데이터베이스 검색
  2. 콘텐츠 필터링: 부적절한 이미지 자동 감지
  3. 멀티모달 모델의 비전 백본: LLaVA, Stable Diffusion 등의 이미지 인코더
  4. 데이터 큐레이션: 대규모 이미지-텍스트 데이터셋의 품질 필터링

한계 및 전망

한계

  1. 세밀한 시각 이해 부족: 객체의 속성(색상, 크기, 위치)이나 관계 추론에 취약
  2. 추상적/복잡한 작업: 사진 속 텍스트 읽기(OCR), 계수(counting) 등에서 성능 저조
  3. 사회적 편향: 웹 데이터에 내재된 편향이 모델에 반영될 수 있음
  4. 텍스트 길이 제한: 최대 77 토큰으로, 긴 설명 처리에 한계

전망

CLIP은 시각-언어 표현 학습의 새 지평을 연 모델로, 이후 등장한 거의 모든 멀티모달 모델에 직간접적 영향을 미쳤다. SigLIP(Sigmoid 손실), OpenCLIP(LAION 데이터), MetaCLIP(메타데이터 기반 큐레이션) 등 다양한 개선 연구가 진행 중이며, 2024년 이후에는 SigLIP-SO400M이 많은 VLM의 표준 비전 인코더로 자리잡고 있다. CLIP의 핵심 아이디어인 “자연어를 통한 시각 이해”는 현재 AI 연구의 근간을 이루고 있다.

관련 문서