Step 19 멀티모달 AI

여러 형태의 데이터를 하나로 — CLIP, GPT-4V, 그리고 그 너머

1. 모달(Modality)이란?

모달(Modality)은 데이터의 "형태" 또는 "종류"를 말합니다. 지금까지 우리가 다룬 모델은 텍스트 하나만 입력으로 받았습니다. 멀티모달은 여러 종류의 데이터를 동시에 처리합니다.

📊 모달의 종류

모달예시데이터 형태
🔤 텍스트"오늘 날씨가 좋다"토큰 시퀀스
🖼️ 이미지사진, 그림, 스크린샷픽셀 행렬 (H×W×3)
🎵 오디오음성, 음악파형 시퀀스
🎬 비디오영상이미지 시퀀스 + 오디오
📊 표/수치엑셀, 센서 데이터숫자 배열
🗺️ 3D/포인트클라우드자율주행 라이다3D 좌표 집합

사람은 자연스럽게 멀티모달 존재입니다. "이 사진 속 음식이 뭐야?"라고 물으면 눈으로 보고, 머릿속 언어 지식과 연결해서 답합니다. 멀티모달 AI도 이걸 흉내냅니다.

2. 왜 멀티모달이 중요한가?

🌍 실제 세계는 멀티모달

❌ 텍스트만 있을 때의 한계
  • X-레이 사진을 보고 진단 불가
  • "이 제품 사진 찍어서 검색" 불가
  • 유튜브 영상 내용 요약 불가
  • 자율주행 카메라 해석 불가
  • 손글씨 수식 인식 불가
✅ 멀티모달로 가능해지는 것
  • 의료 이미지 + 증상 텍스트 → 진단 보조
  • 상품 사진 → 유사 상품 검색
  • 영상 프레임 + 자막 → 요약
  • 카메라 + 라이다 → 장애물 인식
  • 칠판 사진 → 수식 풀이

3. 핵심 과제: 서로 다른 데이터를 어떻게 연결하나?

텍스트와 이미지는 완전히 다른 형태입니다. 이걸 같은 공간에서 비교하려면 공통 표현 공간(Shared Embedding Space)으로 매핑해야 합니다.

💡 핵심 아이디어: 공통 벡터 공간

서로 다른 모달 → 같은 벡터 공간으로 🔤 "강아지 사진" 텍스트 입력 🖼️ [강아지 픽셀] 이미지 입력 🎵 [멍멍 파형] 오디오 입력 Text Encoder Image Encoder Audio Encoder 공통 벡터 공간 (Shared Embedding) T I A 의미가 비슷한 것끼리 가깝게 위치! 이 공간으로 가능한 것 • 이미지 → 텍스트 검색 • 텍스트 → 이미지 검색 • 이미지 + 텍스트 → 답변 • 음성 → 텍스트 번역 • 영상 → 요약

4. CLIP: 텍스트-이미지 연결의 혁명

CLIP (Contrastive Language-Image Pretraining)은 2021년 OpenAI가 발표한 모델입니다. 인터넷에서 수집한 4억 개의 (이미지, 텍스트) 쌍으로 학습했으며, 핵심 아이디어는 대조 학습(Contrastive Learning)입니다.

🔗 대조 학습: 맞는 쌍은 가깝게, 틀린 쌍은 멀게

배치 내 이미지-텍스트 쌍: 맞는 것은 ✅ 가깝게, 틀린 것은 ❌ 멀게 🐕 이미지1 🌊 이미지2 🌲 이미지3 🏙️ 이미지4 "강아지" "바다" "숲" "도시" 학습 후 CLIP의 능력 🔍 Zero-shot 이미지 분류 "이것이 고양이/강아지/새 중 무엇?" → 학습 안 해도 분류! 🖼️ 텍스트로 이미지 검색 "夕陽の海" 입력 → 노을지는 바다 사진 검색 🔤 이미지로 텍스트 검색 고양이 사진 → "귀여운 고양이" 캡션 찾기
# CLIP으로 Zero-shot 이미지 분류 예시
import clip, torch
from PIL import Image

model, preprocess = clip.load("ViT-B/32")

image = preprocess(Image.open("dog.jpg")).unsqueeze(0)
texts = clip.tokenize(["a dog", "a cat", "a bird"])

with torch.no_grad():
    image_feat = model.encode_image(image)   # 이미지 → 벡터
    text_feat  = model.encode_text(texts)    # 텍스트 → 벡터
    similarity = (image_feat @ text_feat.T).softmax(dim=-1)

print(similarity)
# → tensor([[0.9231, 0.0512, 0.0257]])  ← "a dog" 92%!
# 강아지 분류를 별도 학습 없이 해냄! (Zero-shot)

5. Vision Transformer (ViT): 이미지를 토큰으로

CLIP이 이미지를 처리하는 방법은 기발합니다. 이미지를 패치(Patch)로 잘라서 토큰처럼 처리합니다. NLP의 Transformer와 완전히 동일한 구조를 이미지에 적용!

🧩 이미지 → 패치 → Transformer

224×224 이미지를 16×16 패치 196개로 분할 → Transformer 입력 원본 이미지 🐕 패치분할 패치들 (196개) ... 각 패치 → 768차원 벡터 = 텍스트 토큰과 동일 형식! Transformer 패치 토큰들 간 Self-Attention (NLP와 동일 구조!) 이미지 임베딩 벡터 텍스트 임베딩과 같은 공간에 배치 → 비교 가능!

6. GPT-4V: 이미지를 보고 대화하기

CLIP이 이미지-텍스트 연결을 배웠다면, GPT-4V는 이미지를 보고 대화할 수 있습니다. 이미지 인코더(CLIP ViT) + Projection Layer + LLM을 연결한 구조입니다.

💻 GPT-4V 사용 예시 — 실제 코드

import openai, base64

# 이미지를 base64로 인코딩
with open("food.jpg", "rb") as f:
    img_b64 = base64.b64encode(f.read()).decode()

# 이미지 + 텍스트 동시에 전달
response = openai.chat.completions.create(
    model="gpt-4-vision-preview",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url",
             "image_url": {"url": f"data:image/jpeg;base64,{img_b64}"}},
            {"type": "text",
             "text": "이 음식의 레시피를 알려줘"}
        ]
    }]
)
print(response.choices[0].message.content)
# → "이것은 김치찌개로 보입니다. 재료: 김치, 두부, 돼지고기..."

💻 오픈소스 LLaVA 로컬 실행

# Ollama로 LLaVA 실행 (로컬, 무료!)
# 터미널에서:
ollama pull llava
ollama run llava

# Python에서:
import ollama

response = ollama.chat(
    model='llava',
    messages=[{
        'role': 'user',
        'content': '이 사진에 무엇이 있나요?',
        'images': ['./photo.jpg']  # 이미지 경로
    }]
)
print(response['message']['content'])

7. 대표 멀티모달 모델 한눈에 보기

📋 주요 멀티모달 모델 비교

모델회사입력출력특징
CLIPOpenAI (2021)이미지 + 텍스트임베딩대조학습, 제로샷 분류
DALL-E 3OpenAI (2023)텍스트이미지텍스트 → 이미지 생성
GPT-4VOpenAI (2023)이미지 + 텍스트텍스트이미지 보고 대화
GPT-4oOpenAI (2024)이미지+텍스트+음성텍스트+음성실시간 음성 대화
GeminiGoogle (2023)이미지+텍스트+영상텍스트긴 영상 이해
LLaVA오픈소스 (2023)이미지 + 텍스트텍스트CLIP+LLaMA, 무료!
Stable DiffusionStabilityAI텍스트 (+이미지)이미지오픈소스 이미지 생성
WhisperOpenAI (2022)오디오텍스트음성인식, 98개 언어

8. 실제 활용 사례

🌐 산업별 멀티모달 AI 활용

🏥 의료
  • X-레이+증상 → 진단
  • 내시경 영상 분석
  • 피부과 사진 판독
🛒 커머스
  • 사진으로 상품 검색
  • 가상 피팅룸
  • 상품 설명 자동 생성
🚗 자율주행
  • 카메라+라이다 융합
  • 도로 상황 인식
  • 교통 표지판 해석
🎨 창작
  • 텍스트 → 이미지 생성
  • 이미지 스타일 변환
  • 영상 편집 자동화
📚 교육
  • 칠판 사진 → 풀이
  • 손글씨 수식 인식
  • 교과서 이미지 설명
🏭 제조
  • 불량품 비전 검사
  • 도면+설명서 분석
  • 로봇 시각 처리

✅ 멀티모달 AI 핵심 정리