스킬캠퍼스

오늘 끝나면

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, 텍스트와 이미지를 하나로 (멀티모달 빅뱅)

모델

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

손실

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