direcf / Multimodal AI / VLM과 Fine-tuning: LLaVA, LoRA, LLaMA Adapter
GitHub ↗
STUDY NOTE · 2024-08 · Part 2

VLM과 Fine-tuning: LLaVA, LoRA, LLaMA Adapter v2

개인 리서치 노트 — DEVOCEAN 기고 (2024) · 1편 보기 →
핵심 모델LLaVA, LoRA, LLaMA Adapter v2
주제VLM 구조 · PEFT
시리즈Part 2 / 멀티모달 LLM 시리즈

1편에서 LLM 발전과정의 핵심인 CLIP·Flamingo·LLaMA·Alpaca·Vicuna를 살펴봤다면, 이번 편의 핵심은 아래 한 장의 그림을 완전히 이해하는 것입니다. LLM이 확장되어 vision(image) 정보까지 입력으로 받아 결과를 출력하는 모델 구조 — 바로 VLM(Vision-Language Model)입니다.

STEP 3 · VLM (Vision-Language Model)
VLM 전체 구조
VLM 전체 구조 — LLM + Vision Encoder + Alignment

VLM의 3가지 구성요소

구성요소 1

LLM

VLM에서 가장 큰 model complexity를 가지는 핵심 부분. output이 text 형태이므로 LLM의 성능이 전체 VLM 성능을 좌지우지합니다. fine-tuning에도 가장 많은 resource가 필요합니다.

구성요소 2

Vision Encoder

이미지를 입력받아 핵심 정보를 추출하는 역할. 1편에서 다룬 CLIP처럼 대량의 데이터로 image를 압축하는 pretraining이 완료된 모델을 사용하는 것이 바람직합니다.

구성요소 3

Alignment

시각 정보(vision)와 텍스트 정보(language)는 서로 다른 feature space에 존재합니다. Alignment는 두 modality를 동일한 feature space로 맞춰주는 역할을 합니다.

Feature space alignment 시각화
Feature space alignment — 이미지와 텍스트를 같은 공간으로 정렬
💡 Alignment를 쉽게 이해하기: 자동차 사진과 "자동차"라는 텍스트는 각자 다른 방식으로 3차원(또는 N차원) 공간에 놓여있습니다. Alignment 레이어는 이 둘을 같은 지점 근처로 끌어당겨 "이 이미지 = 이 단어"라는 연결을 만들어줍니다.

이 3가지 구성요소는 초기 VLM인 Flamingo부터 BLIP2, PandaGPT까지 거의 모든 VLM 모델에서 공통적으로 발견됩니다.

Flamingo, BLIP2, PandaGPT 구조 비교
Flamingo · BLIP2 · PandaGPT — 모두 동일한 3구성요소를 가짐
Microsoft

LLaVA — VLM 발전의 상징

마이크로소프트에서 내놓은 LLaVA는 VLM 발전을 가장 크게 상징하는 모델입니다. 구성은 단순합니다. 1편에서 배운 Vicuna를 LLM 백본으로, CLIP을 Vision Encoder로, MLP를 Projection(Alignment)으로 사용했습니다.

LLaVA 아키텍처
LLaVA 아키텍처 — Vicuna + CLIP + MLP Projection
특징내용
의의Image·text 모두 활용한 대규모 오픈소스 foundation model의 등장
특징 1멀티모달 instruction following data를 GPT-4로 자동 생산
특징 2Large multi-modal model을 LLM으로 개발
결과~80K instruction data만으로 multi-modal GPT-4와 유사한 성능

LLaVA의 핵심: Instruction Following Data 생성 방식

LLaVA에서 가장 주목할 부분은 학습 데이터 생성 방식입니다. 기존 방식과 LLaVA의 방식을 비교해보겠습니다.

기존 방식
Simple Generation — 이미지와 함께 단순 프롬프트를 활용
예: "이미지를 간결하게 묘사하세요" / "보여진 그림에 대해 짧게 서술하세요"
LLaVA 방식
Instruction Following Generation이미지를 직접 활용하지 않는다!
이미지 → caption/localization 텍스트 추출 → 이 텍스트만 GPT-4에 입력 → instruction following data 생성
LLaVA 데이터 생성 파이프라인
LLaVA 데이터 생성 파이프라인 — image → text → GPT-4 → 3가지 질문 유형

GPT-4에 각 context가 sample['context']로 들어가며, 이후 3가지 질문 type으로 질문-답변 형식의 데이터를 취득합니다.

  1. Conversation — 대화형 Q&A
  2. Detailed description — 상세 설명 생성
  3. Complex reasoning — 복합 추론 질문

GPT Annotation이 사람보다 훌륭하다고 주장하는 논문(ChatGPT outperforms crowd-workers for text annotation tasks)의 발견을 적극 활용한 접근입니다.

LLaVA 학습 전략 (2-Stage)

Stage 1
Image embedding ↔ Word embedding Alignment
Visual Encoder ❄️ freeze LLM ❄️ freeze Projection layer 🔥 training
두 modality의 feature space를 먼저 정렬. 가장 작은 부분만 학습.
Stage 2
Instruction data로 VLM Distillation
Visual Encoder ❄️ freeze Projection layer 🔥 training LLM 🔥 training
Alignment가 완료된 상태에서 LLM을 함께 fine-tuning.
🔑 핵심 결과: 비교적 적은 instruction following dataset (~80K)만으로 multi-modal GPT-4와 유사한 성능을 달성했습니다. 이는 데이터 생성 방식의 혁신 덕분입니다.
STEP 4 · VLM Training & Fine-tuning
VLM Fine-tuning 방법론 개요
VLM Training & Fine-tuning 방법론 전경

왜 Fine-tuning이 중요한가 — PEFT의 등장

LLM/VLM 전체를 처음부터 학습시키는 것은 수백만 달러의 컴퓨팅 비용이 필요합니다. 대부분의 기업과 연구자에게는 현실적으로 불가능합니다. 이 문제를 해결하기 위해 등장한 것이 PEFT(Parameter Efficient Fine-Tuning)입니다.

PEFT란? 대부분의 파라미터는 freeze하고, 일부 파라미터만 학습하는 방법입니다. 전체 모델 성능을 유지하면서 컴퓨팅 resource를 최대한 절약할 수 있습니다.
LoRA

LoRA — Low-Rank Adaptation

LoRA를 간단하게 설명하면, low rank(낮은 dimension)라는 작은 크기의 데이터 변형만으로 전체 결과에 유의미한 영향을 미치는 방법입니다.

특징 1

Plug-in 형태

FC 2 layer 정도로 몹시 간단한 구조. 기존 모델에 끼워 넣는(plug-in) 방식으로 자유도가 높습니다.

특징 2

적은 파라미터, 큰 효과

몇 개의 파라미터만 추가됐음에도 전체 결과가 유의미한 방향으로 tuning되는 것을 확인할 수 있습니다.

LoRA 구조 다이어그램
LoRA — 원래 weight W는 freeze, 작은 A·B 행렬만 학습 (W' = W + BA)
W (frozen) d × d ❄️ freeze + A d × r × B r × d 🔥 training (r ≪ d) = W + BA updated
LoRA: W(freeze) + B×A(train) = 업데이트된 weight. r ≪ d 이므로 파라미터 수가 극히 적음
PEFT

LLaMA Adapter v2 — 멀티모달 fine-tuning 특화

LoRA와 달리, 멀티모달 모델의 fine-tuning에 적합한 방법론입니다. 상위 transformer 계층에 학습 가능한 적응형 프롬프트를 입력하여 결과를 도출합니다.

초기 Layer
Visual projection과 attention module들이 image-text caption data에 대해 훈련 🔥
시각 정보를 언어 공간으로 매핑하는 방법을 학습
후기 Layer
LLaMA 파라미터들이 instruction data로 훈련 🔥
지시사항을 따르는 고수준 reasoning 능력 학습
LLaMA Adapter v2 구조
LLaMA Adapter v2 — 계층별 분리 학습 전략
방법론대상학습 파라미터특징
Full Fine-tuning모든 모델100%최고 성능, 극도로 높은 비용
LoRALLM0.1~1%Plug-in 형태, 언어 모델 튜닝에 최적
LLaMA Adapter v2VLM극소멀티모달 특화, 계층별 분리 학습
🔗 다음 편: 더 실전적인 개념과 최근 이슈 키워드 위주의 글로 돌아올 예정입니다. VLM의 실제 적용 사례와 최신 연구 동향을 다룰 예정입니다.