CLIP에서 GPT-4o까지, Vision-Language 모델의 핵심 아키텍처를 분석합니다. 이미지 인코딩, 크로스모달 정렬, 통합 모델의 설계 원리를 다룹니다.
1장에서 멀티모달 AI의 전체 지형을 조망했습니다. 이 장에서는 멀티모달 AI의 핵심 기반인 Vision-Language 모델(VLM) 의 아키텍처를 심층 분석합니다. CLIP의 대조 학습에서 시작하여, LLaVA의 인스트럭션 튜닝, 그리고 GPT-4o와 Gemini의 네이티브 멀티모달 아키텍처까지의 진화를 추적합니다.
OpenAI의 CLIP(Contrastive Language-Image Pre-training, 2021)은 멀티모달 AI의 초석을 놓은 모델입니다. 핵심 아이디어는 이미지와 텍스트를 같은 벡터 공간에 매핑하는 것입니다.
학습 데이터: (이미지, 텍스트) 쌍 4억 개
이미지 → [Vision Encoder (ViT)] → 이미지 벡터 (512d)
텍스트 → [Text Encoder (Transformer)] → 텍스트 벡터 (512d)
학습 목표: 쌍인 (이미지, 텍스트)의 코사인 유사도 ↑
비쌍인 (이미지, 텍스트)의 코사인 유사도 ↓
CLIP의 대조 학습은 배치 내의 모든 이미지-텍스트 조합에 대해 유사도를 계산하고, 올바른 쌍의 유사도를 최대화합니다.
import torch
import torch.nn.functional as F
# 배치 내 N개의 이미지-텍스트 쌍
image_features = vision_encoder(images) # [N, 512]
text_features = text_encoder(texts) # [N, 512]
# 정규화
image_features = F.normalize(image_features, dim=-1)
text_features = F.normalize(text_features, dim=-1)
# 유사도 매트릭스: [N, N]
similarity = image_features @ text_features.T * temperature
# 대각선 (올바른 쌍)은 높게, 나머지는 낮게
labels = torch.arange(N)
loss = (F.cross_entropy(similarity, labels) +
F.cross_entropy(similarity.T, labels)) / 2CLIP은 이해(understanding) 는 잘하지만 생성(generation) 은 할 수 없습니다. 또한 공간적 관계 이해가 약하고, 세밀한 시각적 추론에 한계가 있습니다.
이를 개선한 후속 모델들:
LLaVA(Large Language and Vision Assistant)는 기존 LLM에 시각 능력을 추가하는 효율적인 접근법을 제시했습니다.
이미지 → [CLIP Vision Encoder] → 시각 특징 → [Projection MLP] → 시각 토큰
↓
텍스트 → [Tokenizer] → 텍스트 토큰 ──────────────────────────────→ [LLM (Vicuna/LLaMA)]
↓
텍스트 출력
핵심 구성요소:
Phase 1: 시각-언어 정렬 (Feature Alignment)
- 이미지-캡션 쌍으로 Projection Layer만 학습
- LLM과 Vision Encoder는 고정
- 목표: 시각 토큰이 LLM이 이해할 수 있는 형태로 변환
Phase 2: 시각적 인스트럭션 튜닝
- 시각적 질의응답 데이터로 LLM을 파인튜닝
- Projection Layer + LLM을 함께 학습
- 목표: 시각적 맥락을 이해하고 지시를 따르는 능력
| 모델 | 특징 |
|---|---|
| LLaVA 1.0 | 기본 아키텍처 확립 |
| LLaVA 1.5 | MLP Projection, 고해상도 입력 |
| LLaVA-NeXT | 동적 해상도, 더 큰 LLM 백본 |
| LLaVA-OneVision | 단일 모델로 이미지/영상/다중 이미지 처리 |
LLaVA 계열의 핵심 장점은 모듈성입니다. Vision Encoder, Projection Layer, LLM을 독립적으로 교체할 수 있어, 새로운 LLM(예: LLaMA 3)이 출시되면 쉽게 업그레이드할 수 있습니다.
GPT-4o(2024)는 텍스트, 이미지, 음성을 하나의 트랜스포머로 처리하는 네이티브 멀티모달 모델입니다. LLaVA처럼 별도의 인코더를 연결하는 것이 아니라, 모든 모달리티가 처음부터 통합된 토큰 공간에서 처리됩니다.
텍스트 토큰 ──┐
이미지 패치 ──┤── [통합 Transformer] ── 출력 토큰 (텍스트/음성)
음성 프레임 ──┘
이 접근의 장점:
Anthropic의 Claude 모델(3.5 Sonnet, Opus 4 등)은 이미지와 PDF를 네이티브로 이해합니다.
import anthropic
import base64
client = anthropic.Anthropic()
# 이미지 파일을 base64로 인코딩
with open("diagram.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data,
},
},
{
"type": "text",
"text": "이 시스템 아키텍처 다이어그램에서 단일 장애점(SPOF)을 식별하고, 개선 방안을 제안해주세요.",
},
],
}],
)Claude의 멀티모달 특징:
Google의 Gemini 2.0은 가장 넓은 모달리티를 지원합니다.
대부분의 VLM은 Vision Transformer(ViT) 를 이미지 인코더로 사용합니다.
이미지 (224x224)
↓ 패치 분할 (16x16 패치)
14x14 = 196개의 이미지 패치
↓ 패치 임베딩 (선형 투영)
196개의 패치 토큰 + [CLS] 토큰
↓ Transformer 인코더
196 + 1 = 197개의 시각 특징 벡터
높은 해상도의 이미지를 처리하기 위한 전략들:
타일링(Tiling): 이미지를 여러 타일로 분할하여 각각 인코딩
원본 이미지 (1024x1024)
↓ 타일 분할
4개의 타일 (512x512) + 1개의 축소 전체 이미지
↓ 각 타일을 독립적으로 인코딩
5 x 196 = 980개의 시각 토큰
동적 해상도: 이미지의 종횡비에 따라 타일 수를 조정
API를 통해 멀티모달 모델을 사용할 때, 이미지 해상도가 비용과 성능에 직접 영향을 줍니다. 고해상도 이미지는 더 많은 토큰을 소비하므로, 작업에 필요한 최소 해상도를 사용하는 것이 비용 효율적입니다. 예를 들어, 전체적인 내용 파악에는 저해상도로 충분하지만, OCR이나 세밀한 텍스트 읽기에는 고해상도가 필요합니다.
| 모델 | 파라미터 | 기반 LLM | 특징 |
|---|---|---|---|
| LLaVA-NeXT | 7B~72B | LLaMA 3 | 범용 VLM, 활발한 커뮤니티 |
| Qwen-VL 2.5 | 2B~72B | Qwen 2.5 | 다국어, 영상 이해 |
| InternVL 2.5 | 1B~78B | InternLM | 벤치마크 최상위 |
| Phi-3.5-Vision | 4.2B | Phi-3.5 | 경량, 엣지 배포 적합 |
| Pixtral | 12B | Mistral | 가변 해상도, 효율적 인코딩 |
| Molmo | 7B~72B | OLMo | 완전 오픈소스 (데이터 포함) |
Vision-Language 모델의 아키텍처는 CLIP의 대조 학습에서 시작하여, LLaVA의 모듈형 접근, 그리고 GPT-4o/Gemini의 네이티브 통합으로 진화해왔습니다. 각 접근법은 모듈성, 성능, 지연 시간의 트레이드오프를 가지며, 프로덕션 환경에서는 작업의 성격에 따라 적절한 모델과 아키텍처를 선택하는 것이 중요합니다.
다음 장에서는 이 아키텍처 지식을 기반으로, 이미지 이해와 시각적 질의응답을 실전에서 활용하는 방법을 다룹니다. API 활용, 프롬프트 설계, 그리고 다양한 시각적 추론 패턴을 배웁니다.
이 글이 도움이 되셨나요?
관련 주제 더 보기
멀티모달 AI를 활용한 이미지 이해의 실전 기법 — 시각적 질의응답, 이미지 분석 프롬프트 설계, 정확도 향상 전략, 그리고 다양한 활용 패턴을 다룹니다.
멀티모달 AI의 정의, 발전 역사, 핵심 아키텍처 패턴, 그리고 주요 모델(GPT-4o, Claude, Gemini)의 멀티모달 능력을 조망합니다.
멀티모달 AI를 활용한 문서 이해 기법 — PDF 분석, 표 추출, 양식 처리, OCR 통합, 그리고 문서 처리 파이프라인 설계를 실전 중심으로 다룹니다.