
Previous: LLaVA: 멀티모달 AI의 대중화를 위한 실용적 접근에서 LLaVA의 등장 배경과 의의를 살펴보았습니다. 이번에는 LLaVA가 실제로 어떻게 작동하는지 구체적으로 살펴보겠습니다.
LLaVA의 동작 과정은 다음과 같이 요약할 수 있습니다: 이미지를 입력받아 시각 정보를 추출하고, 이를 언어 모델이 처리할 수 있는 형태로 변환한 후, 텍스트 응답을 생성합니다.
사용자 입력: "이 사진에서 몇 명이 서 있나요?" + 📷
📷
↓
[CLIP 비전 인코더] → 시각 특징 추출
↓
[선형 프로젝션 레이어] → 언어 모델 임베딩 공간으로 변환
↓
변환된 시각 정보 + 텍스트 질문 → [Vicuna 언어 모델] → "3명이 서 있습니다"
생소할 수 있는 용어들은 이해를 돕기위해 모아두었습니다. 가장 하단의 용어카드를 참고해주세요.
LLaVA는 기존의 검증된 모델들을 조합하는 방식을 택했습니다. 복잡한 새로운 아키텍처를 개발하는 대신, 각 분야에서 성능이 입증된 모델들을 연결하는 구조를 설계했습니다.
CLIP 비전 인코더: 시각 정보 처리
선형 프로젝션 레이어: 모달리티 간 변환
Vicuna 언어 모델: 텍스트 생성
LLaVA는 정렬 → 지시튜닝의 2-Stage 단계적 학습 전략을 사용합니다. 복잡한 능력을 한 번에 학습시키는 대신, Stage 1의 ‘정렬(Alignment)’로 토대를 세우고, Stage 2에서 대화 능력을 개발하는 방식입니다.
멀티모달 대화로 가기 전에, 먼저 이미지에서 뽑은 특징을 LLM이 읽을 수 있는 언어 임베딩으로 정확히 맞추는 단계입니다. 요지는 간단합니다: CLIP이 본 것을, Vicuna가 ‘단어처럼’ 읽게 만든다.
무엇을 배우나?
어떤 파라미터를 학습하나?
어떤 데이터를 쓰나?
CC-595K: CC3M에서 명사구 빈도 기반 균형 필터링으로 고른 약 595K (이미지, 캡션) 쌍
포맷: (이미지, 캡션)을 간단 지시-응답으로 재구성
예) [USER] 이 이미지를 한 줄로 설명해줘. + <image> → [ASSISTANT] <캡션>
왜 595K인가?
학습 설정(레시피)
Z_v (고정)Z_v → 선형 프로젝터 W → 시각 토큰 H_v[USER](q*) + H_v를 컨텍스트로 두고 정답 캡션 토큰을 순차 예측W를 업데이트즉, 복잡한 대화보다는 먼저 "이미지에서 무엇을 보았는지"를 정확히 표현하는 능력부터 학습합니다.
Phase 1에서 시각→언어 정렬이 끝났다면, 이제는 실제 대화 상황에서 지시를 따르고 추론하는 습관을 몸에 익힙니다. 목표는 이미지를 근거로, 지시에 맞는 답을 안정적으로 생성하도록 만드는 것입니다.
무엇을 배우나?
어떤 파라미터를 학습하나?
어떤 데이터를 쓰나?
LLaVA-Instruct-158K (세 유형 혼합)
어떻게 만들었나?
학습 설정(레시피)
Z_vZ_v → W → H_v[SYSTEM/USER(지시 + H_v)]를 컨텍스트로 두고[ASSISTANT] 정답 토큰을 오토리그레시브(다음 토큰 예측) 로 생성하도록 Cross-Entropy로 학습[ASSISTANT] 구간(+<STOP>/EOS)만 집계해 대화 포맷·종료 규칙을 안정화대화 포맷(권장 템플릿)
[SYSTEM] 너는 유용하고 안전한 멀티모달 도우미야.
[USER] <image_tokens> + 지시/질문
[ASSISTANT] 정답 ... <STOP>
<STOP>/EOS까지 실제로 예측하게 학습해야 중단이 자연스러움.비용 최적화 팁
전환 리마인더 (Phase 1 → Phase 2)
한 문장 요약
CLIP은 고정,
W+Vicuna를 지시-응답 데이터로 SFT하여, 챗봇 문법과 이미지-의존 추론 습관을 장착한다.
LLaVA의 주요 특징 중 하나는 GPT-4를 Teacher 로써 활용한 자동화된 데이터 생성 시스템입니다.
기존의 이미지-텍스트 데이터셋들은 주로 다음과 같은 형태였습니다:
[고양이 사진] → "A cat sitting on a wooden chair"
하지만 대화형 AI를 위해서는 다음과 같은 구조화된 상호작용 데이터가 필요했습니다:
이미지: [고양이 사진]
Human: "이 동물의 행동을 설명해주세요"
Assistant: "이 사진에는 고양이가 나무 의자에 편안하게 앉아 있습니다.
고양이의 자세는 매우 안정적이고 편안해 보입니다..."
3가지 유형의 데이터 생성:
1. Conversation 데이터 (58K)
2. Detailed Description 데이터 (23K)
3. Complex Reasoning 데이터 (77K)
입력:
- 이미지 캡션: "A living room with a sofa and coffee table"
- 바운딩 박스: "sofa: [0.1, 0.2, 0.8, 0.6]"
GPT-4 프롬프트:
"위 정보를 바탕으로 다양한 유형의 질문과 답변을 생성해주세요.
단, 이미지에서 확인할 수 없는 정보는 추측하지 마세요."
출력:
Q: "거실에 몇 개의 가구가 있나요?"
A: "소파와 커피 테이블, 총 2개의 가구가 있습니다."
Q: "이 공간의 분위기는 어떤가요?"
A: "편안하고 아늑한 거실 분위기입니다."
사용자가 "이 음식의 칼로리는 얼마나 될까요?"라고 피자 사진과 함께 질문했을 때의 처리 과정을 살펴보겠습니다.
입력 이미지 (224×224×3)
↓
CLIP Vision Encoder
↓
시각 특징 벡터 (256×1024)
CLIP은 피자의 형태, 토핑, 크기, 두께 등의 시각적 정보를 고차원 특징 벡터로 압축합니다.
※ 해상도/아키텍처에 따라 토큰 수는 달라질 수 있으나, ViT-L/14 @224 기준 ≈256 patch + CLS 구조가 일반적.
시각 특징 벡터 (256×1024)
↓
선형 프로젝션 레이어 (W: 1024×4096) # W ∈ ℝ(1024×d_model)
↓
언어 임베딩 (256×4096) (L×d_model) # Vicuna의 d_model로 정렬
이 단계에서 시각 정보가 언어 모델이 처리할 수 있는 토큰 형태로 변환됩니다.
최종 입력 시퀀스:
[시각 토큰들] + [BOS] + "Human: 이 음식의 칼로리는 얼마나 될까요?" + [EOS] + "Assistant:"
Vicuna가 시각 단서(토핑·크기·도우 등)와 텍스트 질문을 결합해 합리적 범위의 칼로리를 제시하고, 불확실성·가정 조건을 자연어로 보완합니다.
"이 피자는 페퍼로니 피자로 보입니다. 일반적으로 중간 크기 피자 한 조각(1/8)은
약 250-300칼로리 정도입니다. 치즈와 페퍼로니의 양, 도우의 두께에 따라
차이가 있을 수 있습니다."
계산 효율: O(d₁×d₂)로 가볍고 빠름
학습 안정성: 비선형 깊은 결합부 대비 수렴 안정
해석 가능성: 투사 행렬로 모달 정렬을 직관적으로 파악
일반화: 과파라미터 복잡 결합부 대비 오버피팅 위험↓
실무 팁: Stage 2에서 Vicuna는 (Q)LoRA, 프로젝션 W는 직접 학습, CLIP은 고정이 보편적 시작점. 성능 한계가 보이면 부분 언프리즈(상위 몇 층)를 제한적으로 시도한다고 합니다.
LLaVA는 **“새로운 초복잡 구조” 대신, 정렬(Alignment)과 포맷(Template)이라는 핵심 토대를 정교하게 다듬어 단순함으로 성능을 끌어올린 연구 사례입니다.
새로운 아키텍처를 처음부터 개발하는 대신, 기존의 검증된 구성요소들을 조합했습니다. GPT-4를 활용한 데이터 생성으로 인간의 수작업을 줄였고, 2단계 학습을 통해 복잡한 능력을 체계적으로 습득하도록 했습니다.
주요 특징:
1. 모듈화 설계: CLIP(표현)–W(정렬)–LLM(생성)의 역할 분리
2. 단계적 학습: Stage 1 정렬 → Stage 2 지시튜닝
3. 데이터 생성 자동화: GPT-4를 텍스트 교사로 활용해 158K 멀티모달 SFT 세트 구축
4. 챗 템플릿 정규화: SYSTEM/USER/ASSISTANT + STOP으로 출력 안정화
5. 오픈소스 공개: 연구 재현성과 확장성 확보
LLaVA의 접근법은 현재 사용되는 멀티모달 AI 서비스들의 설계 패턴에 큰 영향을 미쳤고, 다수의 오픈소스, 상용 모델에서 중요한 참조점 역할을 하고 있습니다.
Interleaved 데이터(이미지·텍스트 교차 시퀀스)LLaVA의 Stage 1은 CLIP이 이미 학습해둔 표현 위에, 선형
W투사로 시각→언어 임베딩 정렬을 수행하는 단계입니다(ITC/ITM을 새로 학습하지는 않지만, 배경으로 알아두면 이해가 쉬움).
[IMG1] 토끼가 있고, [IMG2] 옆에는 당근이 있어. W는 직접 학습, CLIP은 고정.Next: 다음 글에서는 LLaVA 의 학습 원리에 대해서 더 깊게 파고들어 보겠습니다. 궁금한 점이나 다루어보길 원하는 주제가 있다면 댓글로 말씀해주세요!
Vision-Language Navigation(VLN) : https://arxiv.org/abs/1711.07280, https://arxiv.org/abs/2002.10638