VLM과 Fine-tuning: LLaVA, LoRA, LLaMA Adapter v2
1편에서 LLM 발전과정의 핵심인 CLIP·Flamingo·LLaMA·Alpaca·Vicuna를 살펴봤다면, 이번 편의 핵심은 아래 한 장의 그림을 완전히 이해하는 것입니다. LLM이 확장되어 vision(image) 정보까지 입력으로 받아 결과를 출력하는 모델 구조 — 바로 VLM(Vision-Language Model)입니다.
VLM의 3가지 구성요소
LLM
VLM에서 가장 큰 model complexity를 가지는 핵심 부분. output이 text 형태이므로 LLM의 성능이 전체 VLM 성능을 좌지우지합니다. fine-tuning에도 가장 많은 resource가 필요합니다.
Vision Encoder
이미지를 입력받아 핵심 정보를 추출하는 역할. 1편에서 다룬 CLIP처럼 대량의 데이터로 image를 압축하는 pretraining이 완료된 모델을 사용하는 것이 바람직합니다.
Alignment
시각 정보(vision)와 텍스트 정보(language)는 서로 다른 feature space에 존재합니다. Alignment는 두 modality를 동일한 feature space로 맞춰주는 역할을 합니다.
이 3가지 구성요소는 초기 VLM인 Flamingo부터 BLIP2, PandaGPT까지 거의 모든 VLM 모델에서 공통적으로 발견됩니다.
LLaVA — VLM 발전의 상징
마이크로소프트에서 내놓은 LLaVA는 VLM 발전을 가장 크게 상징하는 모델입니다. 구성은 단순합니다. 1편에서 배운 Vicuna를 LLM 백본으로, CLIP을 Vision Encoder로, MLP를 Projection(Alignment)으로 사용했습니다.
| 특징 | 내용 |
|---|---|
| 의의 | Image·text 모두 활용한 대규모 오픈소스 foundation model의 등장 |
| 특징 1 | 멀티모달 instruction following data를 GPT-4로 자동 생산 |
| 특징 2 | Large multi-modal model을 LLM으로 개발 |
| 결과 | ~80K instruction data만으로 multi-modal GPT-4와 유사한 성능 |
LLaVA의 핵심: Instruction Following Data 생성 방식
LLaVA에서 가장 주목할 부분은 학습 데이터 생성 방식입니다. 기존 방식과 LLaVA의 방식을 비교해보겠습니다.
예: "이미지를 간결하게 묘사하세요" / "보여진 그림에 대해 짧게 서술하세요"
이미지 → caption/localization 텍스트 추출 → 이 텍스트만 GPT-4에 입력 → instruction following data 생성
GPT-4에 각 context가 sample['context']로 들어가며, 이후 3가지 질문 type으로 질문-답변 형식의 데이터를 취득합니다.
- Conversation — 대화형 Q&A
- Detailed description — 상세 설명 생성
- Complex reasoning — 복합 추론 질문
GPT Annotation이 사람보다 훌륭하다고 주장하는 논문(ChatGPT outperforms crowd-workers for text annotation tasks)의 발견을 적극 활용한 접근입니다.
LLaVA 학습 전략 (2-Stage)
Visual Encoder ❄️ freeze LLM ❄️ freeze Projection layer 🔥 training
두 modality의 feature space를 먼저 정렬. 가장 작은 부분만 학습.
Visual Encoder ❄️ freeze Projection layer 🔥 training LLM 🔥 training
Alignment가 완료된 상태에서 LLM을 함께 fine-tuning.
왜 Fine-tuning이 중요한가 — PEFT의 등장
LLM/VLM 전체를 처음부터 학습시키는 것은 수백만 달러의 컴퓨팅 비용이 필요합니다. 대부분의 기업과 연구자에게는 현실적으로 불가능합니다. 이 문제를 해결하기 위해 등장한 것이 PEFT(Parameter Efficient Fine-Tuning)입니다.
LoRA — Low-Rank Adaptation
LoRA를 간단하게 설명하면, low rank(낮은 dimension)라는 작은 크기의 데이터 변형만으로 전체 결과에 유의미한 영향을 미치는 방법입니다.
Plug-in 형태
FC 2 layer 정도로 몹시 간단한 구조. 기존 모델에 끼워 넣는(plug-in) 방식으로 자유도가 높습니다.
적은 파라미터, 큰 효과
몇 개의 파라미터만 추가됐음에도 전체 결과가 유의미한 방향으로 tuning되는 것을 확인할 수 있습니다.
LLaMA Adapter v2 — 멀티모달 fine-tuning 특화
LoRA와 달리, 멀티모달 모델의 fine-tuning에 적합한 방법론입니다. 상위 transformer 계층에 학습 가능한 적응형 프롬프트를 입력하여 결과를 도출합니다.
시각 정보를 언어 공간으로 매핑하는 방법을 학습
지시사항을 따르는 고수준 reasoning 능력 학습
| 방법론 | 대상 | 학습 파라미터 | 특징 |
|---|---|---|---|
| Full Fine-tuning | 모든 모델 | 100% | 최고 성능, 극도로 높은 비용 |
| LoRA | LLM | 0.1~1% | Plug-in 형태, 언어 모델 튜닝에 최적 |
| LLaMA Adapter v2 | VLM | 극소 | 멀티모달 특화, 계층별 분리 학습 |