핵심 요약

LLaVA (Large Language and Vision Assistant): Vision Encoder + LLM을 연결하여 이미지를 이해하고 자연어로 대화할 수 있는 멀티모달 LLM. GPT-4를 활용해 COCO 데이터셋을 instruction-following 형태로 확장하여 학습.

B) 배경: Multimodal LLM 구조

B.1) 핵심 구성 요소

flowchart TD
    Image["이미지 입력"]
    Image --> VE["Vision Encoder
    (CLIP ViT 등)"]
    VE --> Proj["Projection Layer
    (Connector)"]
    Proj --> LLM["LLM
    (Vicuna, LLaMA 등)"]

    Text["텍스트 입력"] --> LLM
    LLM --> Output["텍스트 출력"]

    style Proj fill:#fff3e0
구성 요소역할크기 (예시)
Vision Encoder이미지 → 시각적 feature 추출~300M
Connector (Projection)시각 feature를 LLM 임베딩 공간에 정렬~50M
LLM언어 이해 및 생성7B ~ 34B

B.2) 2단계 학습 프로토콜

flowchart TD
    subgraph Stage1["Stage 1: Vision-Language Alignment"]
        D1["Image-Text Pairs
        (600K ~ 1.4B)"]
        D1 --> T1["Connector만 학습"]
        T1 --> G1["시각 feature를 LLM 임베딩 공간에 정렬"]
    end

    Stage1 --> Stage2

    subgraph Stage2["Stage 2: Visual Instruction Tuning"]
        D2["Visual Instruction 데이터"]
        D2 --> T2["전체 모델 Fine-tuning"]
        T2 --> G2["사용자의 다양한 요청에 응답"]
    end

    style Stage1 fill:#e3f2fd
    style Stage2 fill:#e8f5e9
Stage데이터학습 대상목표
1. AlignmentImage-Text Pairs (600K~1.4B)Connector만시각-언어 공간 정렬
2. Instruction TuningVisual Instructions전체 모델사용자 요청 수행

C) LLaVA (v1)

C.1) 데이터 생성 방식

GPT-4 (text-only)를 활용하여 COCO 데이터셋 확장:

데이터 타입설명
Conversational QA대화형 질의응답
Detailed Description이미지 상세 설명
Complex Reasoning복잡한 추론

C.2) 아키텍처

LLaVA Architecture

C.3) Response Formatting 문제

InstructBLIP 등 기존 모델이 짧은/긴 답변 밸런스를 못 맞추는 이유:

문제설명
프롬프트 모호성응답 포맷 프롬프트가 모호하면 짧은 답변에 과적합
제한된 튜닝InstructBLIP은 Q-Former만 튜닝, LLM은 동결

D) LLaVA-NeXT (v1.5+)

개선 목표: Reasoning, OCR, World Knowledge 향상

D.1) Dynamic High Resolution (AnyRes)

flowchart TD
    Input["고해상도 이미지 입력"]
    Input --> Ratio{"이미지 비율?"}

    Ratio -->|"정사각형"| G1["2×2 그리드 선택"]
    Ratio -->|"가로로 긴 이미지"| G2["1×2 / 1×3 / 1×4 선택"]
    Ratio -->|"세로로 긴 이미지"| G3["2×1 / 3×1 / 4×1 선택"]

    G1 --> Split["이미지를 패치로 분할"]
    G2 --> Split
    G3 --> Split

    Split --> Encode["각 패치 → Vision Encoder"]
    Split --> Thumb["전체 썸네일도 인코딩
    (global context)"]

    Encode --> Concat["Feature 결합"]
    Thumb --> Concat

    Concat --> LLM["LLM 입력"]

    style Ratio fill:#fff3e0
    style Concat fill:#90EE90

왜 필요한가?

  • 해상도 높을수록 → 복잡한 디테일 감지 능력 향상
  • 저해상도일 때 모델이 “상상”으로 채우는 hallucination 감소

그리드 구성:

이미지 비율에 따라 동적으로 그리드 선택 (가로로 긴 이미지 → 1×3 등)

Dynamic Resolution

D.2) Data Mixture 개선

D.2.1) 고품질 User Instruction 데이터

고품질 기준:

  1. 실제 사용자 시나리오 대응 가능한 다양한 응답
  2. 사용자 선호 피드백이 있는 응답

사용 데이터:

데이터소스설명
LAION-GPT-VGPT-4V 기반 데이터
ShareGPT-4VGPT-4V 기반 데이터
LLaVA Demo 수집실제 사용자 요청 15K (필터링 후 GPT-4V로 응답 생성)

D.2.2) OCR/문서 이해 데이터

변경 사항이유
TextCaps 제거TextVQA와 학습 이미지 겹침 → Zero-shot OCR 성능 향상
DocVQA, SynDog-EN 추가OCR 능력 강화
ChartQA, DVQA, AI2D 추가차트/다이어그램 이해 강화 (Qwen-VL 영감)

D.3) LLM Backbone 확장

LLM크기특징
Vicuna-1.57B, 13B기본
Nous-Hermes-2-Yi34B최대 크기
Mistral7B효율적

E) Model Card

E.1) 모델 스펙 (2024년 2월 기준)

항목규모
LLM 라인업7B, 13B, 34B
Vision Encoder~300M
Connector~50M

E.2) 학습 데이터

Stage데이터 크기용도
Stage 1558KConnector 학습
Stage 2760K전체 모델 학습
총합1,318K-

E.3) 학습 비용

항목스펙
하드웨어A100 × 32
시간~30시간 (34B 기준)

F) Related

G) References