스킬캠퍼스
Day 20 · ViT & CLIP
강의

오늘 끝나면

ViT & CLIP

  • ViT & CLIP의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 ViT이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

비전에도 Transformer, 텍스트와 이미지를 하나로 (멀티모달 빅뱅) 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

AI · Day 20 / 표현·멀티모달

이미지를
단어처럼

2020년, 구글이 CNN 없이 Transformer만으로 이미지 처리함. 1년 뒤, OpenAI가 이미지와 텍스트를 같은 공간에 묻은 CLIP 냄. 이 둘이 GPT-4V, Claude Vision으로 이어지는 멀티모달의 출발점임.

P.01AI · Day 20

CNN 왕조의 8년, 그리고 균열

2012년 AlexNet 이후 비전은 줄곧 CNN의 시대였음. VGG, ResNet, EfficientNet. 근데 ResNet 이후 5년은 1~2%씩 짜내는 개선뿐이었음.

같은 기간 NLP는 RNN 버리고 Transformer로 넘어감. 근데 왜 비전만 아직 CNN임? CNN 핵심은 귀납적 편향(Inductive Bias) 두 가지임.Locality는 이웃 픽셀만 보는 것.Translation Equivariance는 위치 바뀌어도 같은 필터로 잡는 것.

이 편향은 데이터 적을 땐 축복임. 충분하면 오히려 족쇄 됨. 편향 없는 모델이 전역 관계를 처음부터, 스스로 찾으니까. 이게 Sutton의 Bitter Lesson과 정확히 맞물림.

귀납적 편향: 축복이자 저주
데이터 규모ResNetViT
ImageNet (1.3M)이김
ImageNet-21k (14M)비등비등
JFT-300M (303M)이김

편향은 데이터가 적을 때 축복, 충분하면 족쇄가 된다

P.02AI · Day 20

이미지를 패치로 잘라 문장처럼

ViT 아이디어는 당황스러울 만큼 단순함. 224×224 이미지를 16×16 패치로 자르면 14×14=196개 됨. 이게 바로 "단어 196개짜리 문장"임.

각 패치를 Linear Projection으로 D차원 벡터로 바꿈. 순서 정보 넣으려고 Position Embedding 더함. 맨 앞엔 BERT에서 빌려온 [CLS] 토큰 붙임. 그다음은 그냥 표준 Transformer Encoder임. BERT랑 거의 똑같음.

충격은 결과였음. ImageNet(1.3M)에선 ResNet이 이김. 근데 JFT-300M(3억 장)에선 ViT가 역전함. 편향이 약한 대신, 데이터 충분하면 스스로 최적 구조 배운 거임.

224×224 → 패치 196개 → CLS
패치 14×14 = 196embedCLSp1p2p3+ PositionTransformer × NCLS → Class

이미지 = 단어 196개의 문장. 첫 layer부터 전역 Attention

P.03AI · Day 20

CLIP: 자연어를 라벨로 삼다

OpenAI는 더 근본적인 질문 던짐. "왜 이미지를 미리 정한 1,000개 클래스에 욱여넣음? 자연어로 모든 개념 말할 수 있는데."

그래서 인터넷에서 이미지-텍스트 쌍 4억 개 긁어모음. 이미지 인코더(ViT)와 텍스트 인코더를 같은 공간에 투사함.같은 쌍은 가까이, 다른 쌍은 멀리 당기는 Contrastive Learning임. 배치 안에서 맞는 텍스트 고르는 N-way 분류임.

파이썬 코드 보기
# CLIP Contrastive Loss (의사코드)
I = ImageEncoder(images)   # [N, D]
T = TextEncoder(texts)     # [N, D]
I = normalize(I); T = normalize(T)

logits = I @ T.T / tau     # 온도 tau

labels = arange(N)         # 정답은 대각선
loss_i = cross_entropy(logits,   labels)
loss_t = cross_entropy(logits.T, labels)
loss = (loss_i + loss_t) / 2

N×N 유사도 행렬에서 대각선만 정답임. 이미지→텍스트, 텍스트→이미지 양방향으로 학습함.

Contrastive: 대각선만 1
T1T2T3T4I1I2I3I41000010000100001텍스트 임베딩 →이미지 임베딩 ↓

대각선(같은 쌍)은 당기고 나머지는 밀어낸다 — InfoNCE

P.04AI · Day 20

Zero-shot이라는 마법

CLIP이 배운 건 "이미지 임베딩 ↔ 텍스트 임베딩 정렬"뿐임. 그래서 추론도 단순함. 클래스 이름을 a photo of a {class} 템플릿에 넣고, 이미지와 코사인 유사도 제일 높은 텍스트 고름.

이 모델은 "개", "고양이"를 직접 학습한 적 없음. 그냥 인터넷에서 그 단어와 그 이미지가 자주 같이 떠서, 임베딩 공간에서 가까워졌을 뿐임. 이게 Zero-shot의 본질임.

충격은 숫자로 옴. ResNet-50을 ImageNet에서 지도학습하면 정확도 76.1%. CLIP은 ImageNet 본 적도 없이 Zero-shot으로 76.2% 냄. 자연어가 1,000개 인덱스를 대체하니, 클래스가 무한히 늘어남.

Q. CLIP이 Zero-shot 분류를 할 수 있는 이유를 한 문장으로?이미지 임베딩과 텍스트 임베딩을 같은 공간에 정렬해서임. 학습 때 본 적 없는 클래스도 a photo of a {class} 텍스트와 이미지의 코사인 유사도만 계산하면 바로 분류됨.
학습 안 한 클래스도 분류
CLIP 공유 임베딩 · 이미지 벡터를 끌어 zero-shot 분류를 본다
공유 임베딩 공간 (이미지 벡터 드래그)
🐱🐶🚗🍜cos = 방향만 본다img
벡터 길이 무시 — 각도(방향)만 분류에 쓰인다
zero-shot 확률 (softmax)
🐱 cos 1.0075%🐶 cos 0.5022%🚗 cos -0.981%🍜 cos -0.363%
argmax = 예측 클래스
온도 τ (작을수록 분포가 날카로워짐)τ = 0.40
예측
🐱
최상위 확률
75%
코사인 유사도
1.00
"🐱" 쪽으로 기움 — 하지만 확신은 약함
모델은 "고양이"를 라벨로 학습한 적이 없음. 단지 이미지 벡터와 a photo of a cat 텍스트 벡터의 각도가 가까울 뿐. 이게 zero-shot의 전부.
P.05AI · Day 20

모달리티는 같은 공간의 다른 언어

CLIP 이후 멀티모달 LLM은 다 비슷한 구조 공유함. LLaVA가 제일 이해하기 쉬움.CLIP Vision Encoder로 이미지 특징 뽑고,Linear Projection으로 LLM 토큰 공간에 투사함. 그럼 LLM은 그냥 긴 시퀀스로 처리함.

결국 VLM은 "이미지를 LLM이 알아듣는 언어로 번역"하는 거임. 그 번역기 뿌리가 CLIP임. 이미지든 오디오든 비디오든, 벡터 공간에 투사하면 LLM이 처리함. 2026년 현재 Frontier LLM은 거의 다 멀티모달이 기본임. 텍스트 전용은 legacy임.

비즈니스 워크플로우도 명확해짐. 라벨 없이 CLIP Zero-shot으로 프로토타입 띄움. 정확도 부족하면 수백 장만 라벨링해 Pretrained ViT를 Fine-tune함. 자연어 설명 필요하면 Claude Vision 붙임. 이제 처음부터 scratch로 학습하는 경우는 거의 없음.

Q. 신규 상품 이미지 자동 태깅 시스템, 어떤 순서로?① CLIP Zero-shot으로 라벨 0장 프로토타입 → ② Pretrained ViT Fine-tuning(수백 장)으로 정확도 보강 → ③ VLM(Claude Vision)으로 상세 설명·예외 처리. 정확도·비용·시간 trade-off를 단계로 쪼개는 게 핵심임.
VLM: 이미지를 토큰으로 번역
이미지CLIP Vision(frozen)Projection이미지 토큰질문 텍스트텍스트 토큰LLM(LLaMA…)답변이미지를 토큰으로 번역

Vision Encoder + Connector + LLM — 모든 VLM의 공통 골격

3줄 요약

  1. 1비전에도 Transformer, 텍스트와 이미지를 하나로 (멀티모달 빅뱅)
  2. 2ViT & CLIP은 준비운동 → 지도학습 → 시퀀스 → 생성모델 → 실무 적용 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

ViT

비전에도 Transformer, 텍스트와 이미지를 하나로 (멀티모달 빅뱅)

모델

입력을 받아 예측이나 출력을 만드는 계산 규칙

손실

예측이 정답에서 얼마나 빗나갔는지 재는 숫자