ViT 기반 VLM

상솜공방·2025년 4월 23일

비전 언어 모델

목록 보기
8/9

1. Vision Transformer(ViT)

  1. Attention를 CNN에 추가
    기존 CNN에 self-attention 모듈을 덧붙이는 방식이 먼저 시도되었다. 그러나 전체 구조는 여전히 CNN이라 “Transformer-스러운” 장점을 충분히 살리기 어렵다. citeturn0file0

  2. 픽셀 단위 Transformer
    이미지를 한 줄 벡터로 펼쳐 Transformer에 넣으면 이론적으로 가장 직관적이다. 문제는 메모리 사용량이다.

    • R×RR \times R 이미지 한 장에 대해 attention 행렬이 R4R^{4} 크기여서, 128×128 해상도·48층·16헤드일 때 768 GB VRAM이 필요하다. citeturn0file0
  3. 패치(토큰) 단위 Transformer → ViT
    Dosovitskiy 등이 제안한 Vision Transformer는 이미지를 작은 패치(예: 16×16)로 잘라 토큰으로 취급한다. 이렇게 하면 연산과 메모리를 텍스트 Transformer 수준으로 줄일 수 있다.

2. ViT 핵심 구조

단계설명
패치 분할224×224 이미지를 16×16 패치 196개로 자른 뒤, 각 패치를 벡터로 평탄화해 선형 투영한다.
+ [CLS] 토큰텍스트 BERT처럼 분류용 토큰을 앞에 붙인다.
위치 임베딩패치 순서를 잃지 않도록 절대 위치 임베딩을 더한다.
Transformer 인코더다층 self-attention + FFN.
분류 헤드[CLS] 토큰을 MLP에 넣어 최종 예측을 얻는다.

ViT는 대규모 데이터(수백 만~수억 장)와 강한 정규화/증강이 필수다. 주요 기법은 Weight Decay, Stochastic Depth, MixUp, RandAugment 등이다. citeturn0file0

  • 성능 비교: 충분히 큰 데이터와 연산을 투입하면 ResNet을 추월하지만, 데이터가 적으면 과적합되기 쉽다.

3. Swin Transformer

3.1 문제 의식

패치 토큰 수가 커지면 ViT도 여전히 O(N2)O(N^{2}) self-attention 병목이 생긴다. 예를 들어 4×4 패치 56×56 격자(224×224 이미지)면 attention 행렬이 9.8 M 항목이다.

3.2 핵심 아이디어

  1. 윈도우 Attention
    이미지를 고정 크기 M×MM \times M 윈도우로 나누고, 윈도우 내부 토큰끼리만 attention을 계산한다. 전체 복잡도가 O(M2HW)O(M^{2}HW)로 줄어 선형이 된다. citeturn0file0

  2. Shifted Window
    윈도우 간 정보가 단절되는 문제를 해결하기 위해, 이웃 블록에서 윈도우를 반 칸씩 시프트하여 교차 상호작용을 유도한다. citeturn0file0

  3. 상대 위치 바이어스
    절대 위치 임베딩 대신 패치 간 상대 거리를 attention 스코어에 가중치로 더해 위치 정보를 전달한다. citeturn0file0

결과적으로 Swin은 CNN처럼 단계별로 해상도를 줄여 계층적 특징을 만든다. 물체 검출·분할 등 다운스트림 작업에서 강력한 백본으로 자리 잡았다.

4. Vision-Language Model(VLM)

  • 정의: 이미지와 텍스트를 함께 처리해 이미지 캡셔닝, VQA, 멀티모달 검색 등을 수행하는 모델. 텍스트만 다루던 LLM을 다중 모달로 확장한 형태다.
  • 분류: 대략 ① 대비학습(contrastive) 기반, ② 생성(decoder) 기반으로 나뉜다. 여기서는 대비학습 계열의 모델을 다룬다.

4.1 대비학습 기반 VLM의 대표 모델

CLIP (Contrastive Language–Image Pre-training, OpenAI 2021)

  • OpenAI가 공개한 최초의 대규모 대비학습 VLM이다. 이미지 인코더(ResNet 또는 ViT)와 텍스트 인코더(12-layer Transformer) 두 네트워크를 독립적으로 학습시켜, 4억 장의 웹 이미지-캡션 쌍을 InfoNCE 손실로 정렬했다.
  • 학습이 끝난 뒤에는 단지 “a photo of a {label}” 같은 프롬프트를 던지는 것만으로, ImageNet을 비롯한 다양한 데이터셋에서 라벨 없이 제로샷 분류가 가능해 “멀티모달 GPT-2”라는 별명을 얻었다. 다만 토큰 길이(76)·위치 세부 인식·OOD 데이터에 취약하다는 한계도 함께 드러났다.

ALIGN (Google Research 2021)

  • CLIP과 동일한 듀얼 인코더 구조를 유지하되, 1 billion 이상의 노이즈 많은 alt-text 데이터를 그대로 사용해 “규모가 노이즈를 압도한다”는 사실을 입증했다.
  • 대량 데이터를 바탕으로 ImageNet-zero-shot, Flickr30k retrieval 등에서 CLIP을 크게 앞섰지만, 코드와 모델 가중치는 공개되지 않아 재현성이 떨어진다는 지적을 받았다. 또한 웹 노이즈 편향이 훨씬 더 강하게 잔존해 도메인 편향 문제가 부각됐다.

OpenCLIP (LAION & Community 2022-)

  • CLIP을 완전히 오픈소스로 재현하고 확장하려는 커뮤니티 프로젝트다. 코드베이스와 함께 LAION-400M/2B, DataComp-1B 등 공개 메가 규모 데이터로 학습된 수십 개의 체크포인트를 배포해 누구나 제로샷·소량-파인튜닝 연구를 수행할 수 있게 만들었다.
  • 실험 결과, 동일한 백본이라도 데이터 품질·필터링 방식에 따라 제로샷 성능이 ±5 %P까지 달라진다는 사실을 검증하며 재현 가능성을 학계 표준으로 끌어올린 공로가 크다.

SigLip (Google ICCV 2023)

  • CLIP의 소프트맥스 기반 InfoNCESigmoid BCE로 교체해 배치 의존성을 제거했다. 손실 계산이 (이미지, 텍스트) 1:1로 국한되므로 작은 GPU에서도 안정적인 학습이 가능하며, 동시에 TPU v4 4개·이틀 학습만으로도 ImageNet 제로샷 84.5 %를 기록했다.
  • Locked-Image Tuning 기법을 도입해 이미지 인코더를 고정하고 언어 측만 소량 업데이트하는 효율적 전이 방식을 제안했다.

정리
CLIP이 제시한 듀얼 인코더 + 대비학습 설계는 이후 모델(ALIGN, OpenCLIP, SigLip)에 그대로 계승·확장되었다. ALIGN은 “더 많이”, OpenCLIP은 “더 열린 생태계”, SigLip은 “더 효율적인 손실”이라는 각기 다른 방향으로 발전하면서, 대규모 멀티모달 임베딩이 연구·산업 전반에 필수 인프라로 자리 잡게 되었다.

4.2 모델의 오차함수

목표는 이미지 II와 텍스트 TT가 공존하는 공통 임베딩 공간 Rd\mathbb{R}^d을 학습해,
짝이 맞는 (I,T)(I,T)는 가깝게, 틀린 쌍은 멀게 배치하는 것이다.

(1) Dual-Encoder 기반 접근

zI=fθ(I),zT=gϕ(T)z_I = f_\theta(I), \qquad z_T = g_\phi(T)

두 인코더 fθ,gϕf_\theta, g_\phi가 독립적으로 이미지를 ViT/ResNet, 텍스트를 Transformer로 변환한다.

(2) InfoNCE(softmax) 손실 - CLIP

수식

LCLIP=1Ni=1N[logexp(sii/τ)jexp(sij/τ)이미지→텍스트  +  logexp(sii/τ)jexp(sji/τ)텍스트→이미지]\displaystyle \mathcal{L}_{\text{CLIP}} = -\frac1N\sum_{i=1}^{N}\Bigl[ \underbrace{\log\frac{\exp{(s_{ii}/\tau)}}{\sum_{j}\exp{(s_{ij}/\tau)}}}_{\text{이미지→텍스트}} \;+\; \underbrace{\log\frac{\exp{(s_{ii}/\tau)}}{\sum_{j}\exp{(s_{ji}/\tau)}}}_{\text{텍스트→이미지}} \Bigr]
  • sij=zIi,zTjs_{ij}= \langle z_I^{\,i}, z_T^{\,j}\rangle코사인 유사도.
  • τ\tau (temperature)가 작으면 softmax가 “뾰족”해져 양성(+)과 음성(–) 구분이 더 선명해진다.

직관적인 비유

단계의미비유
① 정답 유사도 exp(sii/τ)\exp(s_{ii}/\tau)이미지 ii와 제 캡션 ii얼마나 잘 맞나시험에서 정답 답안 점수
② 분모 jexp(sij/τ)\sum_j\exp(s_{ij}/\tau)이미지 ii가 모든 캡션 jj경쟁보기 ①~N 중 하나를 고르는 객관식
log\log & 평균확률·정보이론적 해석평균 “틀린다”는 비용

→ 결국 “이미지 한 장이 배치 안의 여러 설명 중 정답을 정확히 고르도록” 학습시킨다.

왜 큰 배치가 필요한가

  • 음성(negative) 샘플이 “배치 내부”에만 존재 ⇒ 배치가 작으면 분모 후보가 적어 쉽게 맞힌다 → 학습 신호 약화.
  • CLIP 논문은 GPU/TPU 여러 대를 묶어 N=32768N=32 768 수준 배치에서 최고의 성능을 얻었다.

(3) Sigmoid (= Binary-Cross-Entropy) 손실 – SigLip

수식

LSigLip=1Ni=1N[yi정답(=1) ⁣ ⁣logσ(sii)+ ⁣(1yi) ⁣ ⁣log ⁣(1σ(sii))]\displaystyle \mathcal{L}_{\text{SigLip}} = -\frac1N\sum_{i=1}^{N}\bigl[ \underset{\text{정답(=1)}}{y_i}\!\cdot\!\log\sigma(s_{ii}) +\!(1-y_i)\!\cdot\!\log\!\bigl(1-\sigma(s_{ii})\bigr) \bigr]
  • σ(x)=11+ex\sigma(x)=\tfrac{1}{1+e^{-x}} : 시그모이드.
  • 여기서는 yi=1y_i=1 (양성)만 넣고, 음성은 다른 이미지나 캡션을 랜덤으로 샘플y=0y=0로 만든다.

달라진 점 — “쌍 단독 평가”

  • 정답 쌍 하나 vs 음성 쌍 하나씩 독립으로 판단 →
    가령 배치가 256이어도 양·음 페어가 256개만 생기므로, 분모에 N2N^2 합산이 사라진다.
  • 덕분에 작은 배치에서도 안정적으로 학습되고,
    반대로 거대한 배치(32 k~1 M) 로 확장해도 통신·메모리 병목이 적다.

왜 성능이 유지될까?

요소InfoNCESigmoid BCE
학습 단위“정답 vs 배치 전체” 다중 클래스“정답 vs 개별 음성” 이진 판단
음성 다양도 확보배치 크기↑ 필수음성 샘플을 큐·리플레이 버퍼로 충분히 확보 가능
정규화 효과소프트맥스 자체가 ℓ₂ 규제 역할시그모이드엔 없음 → 저온 τ\tau 조정 불필요
계산/통신 비용O(N2)\mathcal{O}(N^2) 유사도 행렬O(N)\mathcal{O}(N)

실제로 SigLip-Base는 TPU-v4 4개·48시간 만에 ImageNet 제로샷 84.5 %를 기록하며, 동일 자원에서 InfoNCE-CLIP보다 우수한 성능을 보였다.

profile
상어 인형을 좋아하는 사람

0개의 댓글