LLaVA의 Visual Instruction Tuning을 데이터와 Loss Mask 관점에서 이해하기
요약
본 글은 LLaVA의 Visual Instruction Tuning 과정을 데이터, 파라미터, 레이블 계약(contract) 관점에서 심층 분석합니다. 특히 GPT-4가 이미지를 픽셀이 아닌 캡션과 바운딩 박스로 직렬화하여 사용하며, 다양한 유형의 데이터를 혼합하는 것이 모델 학습에 중요함을 강조합니다.
핵심 포인트
- LLaVA는 이미지 픽셀 대신 텍스트로 변환된 정보를 활용한다.
- 데이터셋 구성 시 대화적 답변, 설명, 추론 등 여러 동작을 균형 있게 학습해야 한다.
- 단순히 샘플 수뿐 아니라 질문 유형, 답변 길이 등을 고려한 데이터 혼합이 중요하다.
LLaVA 학습 과정을 살펴볼 때, 모델 아키텍처만을 추적하면 Visual Instruction Tuning의 역할을 놓치기 쉽습니다.
구현적인 측면에서는 다음 세 가지 계약(component 간의 입출력 규약)으로 나누어 정리할 수 있습니다.
- Data contract:
image + instruction + answer를 어떻게 구성할 것인가 - Parameter contract: 스테이지별로 어떤 파라미터에 gradient를 흘릴 것인가
- Label contract: 토큰 시퀀스의 어느 부분을 loss 대상으로 할 것인가
본문에서는 Visual Instruction Tuning의 오리지널 LLaVA를 중심으로 데이터셋, 2단계 학습(two-stage training), 그리고 answer-only loss mask를 코드와 연결하여 설명합니다.
LLaVA의 배경, 아키텍처, 학습 데이터 생성 방식에 대한 도식화 자료는 'LLaVA란? 이미지 대화 AI 제작 방법'에서 확인하실 수 있습니다.
텍스트 전용 GPT-4에게 전달되는 것은 픽셀이 아니다
오리지널 LLaVA의 instruction 데이터를 생성할 때, 교사 모델(teacher)인 GPT-4는 이미지 픽셀을 직접 입력으로 사용하지 않습니다. COCO 이미지에 첨부된 캡션과 바운딩 박스를 텍스트로 직렬화하여 전달합니다.

이미지를
instruction
따라서, 데이터 생성 파이프라인의 상한선은 교사 모델의 문장 생성 능력만으로는 결정되지 않습니다. 캡션에 없는 속성, 박스에 없는 관계, 작은 글자는 교사에게 전달되기 전에 누락됩니다.
여기서 중요한 것은 'GPT-4가 이미지를 이해하고 주석을 달았는지'와 '캡션과 박스로부터 이미지에 관한 대화를 생성했는지'를 구분하는 지점입니다.
3가지 종류의 데이터는 타겟 동작(target behavior)이 다르다
오리지널 논문의 158K 샘플은 세 가지 유형으로 나뉩니다.

| Type | Samples | Target behavior |
|---|---|---|
| Conversation | 58K | object, count, action, location에 대한 대화적 답변 |
| ... | ||
같은 image 필드를 가진 JSON이라도 answer distribution은 다릅니다. 짧은 VQA(Visual Question Answering)에만 치우치게 학습시키면 포괄적인 설명이나 근거 설명은 배우기 어려워집니다. 반대로 장문 설명에만 집중하면, 예/아니오 또는 카운팅과 같이 간결하게 답변하는 동작이 약해질 수 있습니다. |
데이터 믹스처(Data mixture)를 설계할 때는 샘플 수뿐만 아니라 다음 항목들을 집계하는 것이 구현적으로 유용합니다.
- instruction category (지시어 범주)
- answer token length (답변 토큰 길이)
- single-turn / multi-turn (단일 턴/다중 턴)
- imageごとのconversation数 (이미지별 대화 횟수)
- OCR, counting, spatial relation 등의 task slice (작업 분할)
- answer가 이미지만으로 검증 가능한지 여부
Dataset schema는 토큰화 이전의 입구에 불과하다
공식 커스텀 데이터 문서에서는 각 샘플에 id, image, conversations를 포함합니다.
{
원래 LLaVA는 CLIP ViT-L/14, linear Projector, Vicuna를 연결합니다. 2단계 트레이닝의 차이는 optimizer에 전달되는 parameter 집합으로 읽으면 명확합니다.

### Stage 1: Feature Alignment
- Vision Encoder: frozen
- Projector: trainable
- LLM: frozen
- Data: filtered CC3M 595K image-caption pairs
Stage 1에서는 visual feature를 frozen LLM이 사용할 수 있는 embedding으로 매핑하는 입구(entry)를 학습합니다. LLM 본체를 업데이트하지 않기 때문에, 여기서만으로는 다양한 이미지 instruction에 대한 동작(behavior)이 완성되는 것은 아닙니다.
### Stage 2: Visual Instruction Tuning
- Vision Encoder: frozen
- Projector: trainable
- LLM: trainable
- Data: LLaVA-Instruct 158K
'End-to-End Fine-tuning'이라는 표현으로도, original LLaVA는 Vision Encoder를 동결(freeze)합니다. 입력 이미지부터 answer까지 하나의 objective로 학습하는 것과 모든 parameter를 업데이트하는 것은 동일하지 않습니다.
구현에서는 `requires_grad`뿐만 아니라 optimizer에 등록된 parameter names도 출력하면 설정 누락을 찾기 쉽습니다.
## answer-only label mask 최소 구현하기
Model에 들어가는 sequence는 개념적으로 다음 순서입니다.
[visual embeddings] [user instruction] [assistant answer]
answer

1차원 토큰 리스트에서, answer 시작 위치 이전 부분을 `IGNORE_INDEX`로 대체하는 최소 예시입니다.
import logging
from torch import Tensor
logger = logging.getLogger(name)
...
실제 multi-turn data에서는 assistant span이 여러 개 있습니다. 처음부터 일괄적으로 mask하는 것이 아니라, 각 role span을 토큰화된 offset에 대응시키고 assistant가 아닌 부분을 `-100`으로 만듭니다.
QA용 sanity check에서는 batch에서 1건을 디코드하고 다음 대응을 색상별로 표시하면 유효합니다.
| Token 범위 | 입력 포함 여부 | Loss 대상 여부 |
|---|---|---|
| Visual placeholder / embeddings | Yes | No |
| ... |
## 158K・595K・665K를 섞지 마세요
LLaVA의 README와 paper를 오가며 보면, dataset 규모가 여러 개 나옵니다.
| 숫자 | Version / Stage | 의미 |
|---|---|---|
| 595K | original Stage 1 | filtered CC3M image-caption pairs |
| ... |
Improved Baselines with Visual Instruction Tuning에서는 LLaVA 1.5가 336px의 CLIP ViT-L, 2-layer MLP connector, academic-task-oriented VQA data를 이용했다고 설명되어 있습니다.
따라서, original paper의 linear Projector와 현재 repository의 `mlp2x_gelu`를 같은 구성(configuration)으로 취급할 수 없습니다. Pretrained Projector를 재사용할 때는 최소한 다음을 한 세트로 고정해야 합니다.
- base LLM
- Vision Encoder 및 selected layer
- Projector type과 checkpoint
- image processor와 resolution
- conversation template
- image placeholder 전개 방법
Shape이 일치하더라도, semantic alignment와 training recipe는 일치하지 않습니다.
## 85.1%를 정확도(accuracy)로 읽지 마세요
Original paper의 LLaVA-Bench (COCO)는 30개의 이미지에 3가지 종류의 질문을 만들어 총 90개의 질문으로 평가합니다.

평가에는 세 주체가 등장합니다.
- LLaVA: image + question으로부터 candidate answer를 생성
- text-only GPT-4: ground-truth caption + bounding box + question으로부터 reference answer를 생성
- GPT-4 judge: 두 개의 answer를 helpfulness, relevance, accuracy, detail로 비교
전체 데이터의 85.1%는 reference 측에 대한 relative score입니다. 이는 90문제 중 정답률이 아니며, 인간 평가에서의 GPT-4 비교 점수도 아닙니다.
No Instruction Tuning의 ablation 결과가 종합 21.5, full data가 85.1이라는 것은 동일한 평가 파이프라인 내에서 instruction 데이터의 기여도를 볼 수 있는 자료가 됩니다. 한편, teacher, reference, judge에 GPT-4를 사용하는 evaluation coupling은 결과를 해석할 때 고려해야 할 조건으로 남습니다.
## 학습 전에 확인해야 할 항목

학습 시작 전 검토에서는 설정 파일의 존재 여부보다 1개의 샘플이 통과하는 end-to-end trace를 우선합니다.
raw image
-> 이미지 프로세서(image processor) 이후의 shape / dtype / range
-> Vision Encoder 출력 shape
...
더불어, 데이터셋 전체에서는 다음 항목들을 나누어 측정합니다.
- 누락된 이미지(missing image), 손상된 이미지(broken image), 중복 이미지(duplicate image)
- answer 길이와 instruction 카테고리의 분포
- 이미지 증거에 없는 고유명사나 수치
- OCR, counting, spatial relation, abstention별 held-out score
- 원본 이미지, 어노테이션(annotation), teacher service, base model의 사용 조건
LLaVA repository의 Apache-2.0은 repository 코드에 대한 라이선스입니다. LLaVA-Instruct-150K의 dataset card에 있는 CC BY 4.0을 구성원 이미지나 base model weight에 일괄 적용할 수는 없습니다.
## 요약
LLaVA의 Visual Instruction Tuning은 `image + instruction + answer`를 모델로 흘려보내는 단순한 작업이 아닙니다.
- caption과 bounding box를 text-only teacher에게 전달하여 목표 행동(target behavior)이 다른 3가지 종류의 데이터를 만듭니다.
- Stage 1은 Projector만, Stage 2는 Projector와 LLM을 최적화 대상(optimizer)으로 합니다.
- visual/user tokens는 context로, assistant tokens는 supervision으로서 label mask를 구성합니다.
- 데이터셋 규모와 커넥터(connector)는 original LLaVA와 LLaVA 1.5에서 구분합니다.
- 벤치마크 점수는 candidate, reference, judge의 구성을 포함하여 읽어야 합니다.
데이터셋 스키마(Dataset schema), 학습 가능한 파라미터(trainable parameters), 레이블 마스크(label mask) 세 가지 지점을 샘플 단위로 시각화하면, 학습은 진행되고 있지만 instruction-following 능력이 향상되지 않는 문제를 구분하기 쉬워집니다.
## 참고 문헌
### 논의(Discussion)

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn ML의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기