본문 바로가기

인공지능/논문 리뷰

[논문 리뷰] LLaVA: Visual Instruction Tuning

728x90

Visual Instruction Tuning


https://arxiv.org/abs/2304.08485

 

Visual Instruction Tuning

Instruction tuning large language models (LLMs) using machine-generated instruction-following data has improved zero-shot capabilities on new tasks, but the idea is less explored in the multimodal field. In this paper, we present the first attempt to use l

arxiv.org

Liu, H., Li, C., Wu, Q., & Lee, Y. J. (2023). Visual instruction tuning. Advances in neural information processing systems, 36, 34892-34916.


 

1. Introduction

  • 인공지능의 주요 목표 중 하나는 사람처럼 시각과 언어를 함께 활용해 실세계의 지시를 이해하고 따를 수 있는 범용 도우미를 만드는 것
  • 최근에는 오픈월드 시각 이해를 위한 대규모 비전 모델들이 개발되어 다양한 작업(분류, 탐지 등)을 언어로 기술할 수 있게 되었지만, 여전히 언어는 부가적인 설명 도구로만 제한적 사용
  • 반면, 대형 언어 모델(LLM)은 언어 자체를 범용 인터페이스로 활용해 다양한 작업을 전환하며 수행할 수 있다는 가능성 제시
  • GPT-4 및 ChatGPT의 성공 이후, LLaMA, Alpaca, Vicuna 등의 오픈소스 LLM들도 등장했으며 이들은 대부분 텍스트 기반 지시 학습에 집중
  • 하지만 이러한 연구들은 텍스트 중심이며, 시각-언어(multimodal) 지시 학습에는 거의 확장되지 못해 필요성 대두
  • 본 연구는 이러한 한계를 극복하고자, 멀티모달 지시 학습(visual instruction tuning)을 최초로 제안하여 범용 시각 도우미 개발을 위한 길을 제시

2. GPT-assisted Visual Instruction Data Generation

  • 이미지-텍스트 공공 데이터셋은 무수히 증가
  • 그러나 멀티모달 instruction-following 데이터는 매우 부족
    (이는 데이터를 생성하는데 오래 걸리고 작업자가 많이 필요하기 때문)
    • instruction-following 데이터: 사용자의 지시에 대해 모델이 적절한 응답을 학습하도록 구성된 데이터
      ex) 인간<지시>: 이 이미지에 보이는 물체는? -> 어시스턴스<응답>: 주차되어 있는 차와 두 명의 사람이 서있습니다.
  • 이미지 $X_\textrm{v}$, 캡션 $ X_\textrm{c}$, 질문 $ X_\textrm{q}$
  • 이미지-텍스트 쌍을 지시를 따르는 버전으로 확장하는 간단한 방법
    Human: $X_\textrm{q} X_\textrm{v}$ <STOP> $Assistant: X_\textrm{c}$ <STOP>
  • 해당 논문에서는 텍스트 기반 GPT-4 / ChatGPT를 활용해 기존 image-text pair를 instruction-response 형식의 학습 데이터 생성
  • 이미지 자체는 입력하지 않고, 이미지 설명(captions)과 물체 박스 정보(bounding boxes)를 텍스트로 GPT에게 제공해 시각적 맥락을 전달
    • (i) Captions는 일반적으로 다양한 관 점에서 시각적 장면을 설명
    • (ii) Bounding boxes는 보통 장면 내의 객체를 위치시키며, 각 상자는 객체 개념과 그 공간적 위치를 인코딩
  • COCO 이미지 데이터셋을 활용하여 총 158K개의 instruction-following 샘플 수집
    (Conversation: 58K, Description: 23K, Reasoning: 77K)
  • 데이터셋에 대해 세가지 유형으로 데이터 생성 및 수집
    1. Conversation: 질의응답 형식의 대화 (예: 무엇이 보이는가, 몇 개 있는가 등)
    2. Detailed Description: 이미지를 자세히 설명하는 단락형 응답
    3. Complex Reasoning: 복잡한 논리적 추론을 요구하는 질문과 답변

3. Visual Instruction Tuning

3.1 Architecture

  • Vision Encoder: CLIP ViT-L/14
  • Language Model: Vicuna (LLaMA 기반 instruction-tuned LLM)
    Vicuna: ShareGPT에서 수집한 사용자 대화에서 LLaMA를 fine-tuning하여 학습시킨 오픈 소스 챗봇
    https://lmsys.org/blog/2023-03-30-vicuna/
 

Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality | LMSYS Org

<p>We introduce Vicuna-13B, an open-source chatbot trained by fine-tuning LLaMA on user-shared conversations collected from ShareGPT. Preliminary evaluation ...

lmsys.org

  • 입력 이미지 $\textrm{X}_\textrm{v}$는 CLIP 비주얼 인코더에 의해 시각적 특징 $\textrm{Z}_\textrm{v} = g(\textrm{X}_\textrm{v})$으로 변형
  • 이를 단어 임베딩과 연결을 위해 간단한 선형 투영을 고려함
    (CLIP 방식의 단순 유사도 비교가 아닌 이미지 임베딩을 단어 임베딩과 결합하는 방식)
  • 학습 가능한 투영 행렬 $\textrm{W}$에 대해 시각적 특징 $Z_\textrm{v}$를 언어 임베딩 토큰 $H_\textrm{v}$로 변환
    $$\textrm{H}_\textrm{v} = \textrm{W}\cdot \textrm{Z}_\textrm{v}$$
  • 변환된 시각 토큰 $\textrm{H}_\textrm{v}$와 사용자 지시문 $\textrm{X}_\textrm{q}$를 언어 모델의 입력으로 하여 텍스트 응답 $\textrm{X}_\textrm{a}$를 생성하는 방식(auto-regressive)

3.2 Training

  • 각 입력 이미지 $\textrm{X}_\textrm{v}$에 대해, 총 턴수 $T$일 때 다중 턴 대화 $(X_{\text{q}}^1, X_{\text{a}}^1, \cdots, X_{\text{q}}^T, X_{\text{a}}^T)$ 생성
  • 이후 모든 답변은 어시스턴스 응답으로 간주, $t$번째 턴에서의 지시 $X_{\text{instruct}}^t$를 다음과 같은 시퀀스로 처리
    $$X_{\text{instruct}}^t = 
    \begin{cases}
    \text{Randomly choose } [X_{\text{q}}^1, X_{\text{v}}] \text{ or } [X_{\text{v}}, X_{\text{q}}^1], & \text{the first turn } t = 1 \\
    X_{\text{q}}^t, & \text{the remaining turns } t > 1
    \end{cases}$$
  • 길이가 $L$인 시퀀스에 대해, 목표 답변 $\textrm{X}_{a}$의 확률을 계산
    $$p(X_{\text{a}} \mid X_{\text{v}}, X_{\text{instruct}}) = \prod_{i=1}^{L} p_\theta(x_i \mid X_{\text{v}}, X_{\text{instruct}}, <i, X_{\text{a},<i})$$
  • 이전 토큰들을 기반으로 다음 응답 토큰 $x_i$를 auto-regressive 방식으로 예측
  1. Stage 1: Pre-training for Feature Alignment
    • 이미지 피처 를 언어 임베딩 공간과 정렬시키는 시각 토크나이저 역할의 학습
      (이미지를 단어처럼 취급할 수 있는 토큰으로 변환)
    • 이를 위해 CC3M 데이터셋에서 595K 이미지-텍스트 쌍으로 필터링
    • GPT-assist 방식으로 단일 instruction으로 변환하여 학습
    • 비전 인코더와 Vicuna는 고정(freeze), projection matrix $\textrm{W}$만 학습
  2. Stage 2: Fine-tuning End-to-End
    • 모델이 복잡한 지시를 따라 멀티모달 대화 및 QA를 수행하도록 학습
    • 스테이지 1에서 학습한 $\textrm{W}$를 유지하며, Vicuna도 학습
    • 학습 가능한 파라미터 $\theta = \left\{ \textrm{W}, \phi \right\}$
    • Use case 시나리오(적용 사례)
      • Multimodal Chatbot
        • Section 3의 158K 멀티모달 instruction-following 데이터로 학습
        • 다중 턴 대화(conversation), 단일 턴 설명(description), 복잡 추론(reasoning) 데이터를 균일하게 샘플링
      • Science QA
        • multimodal reasoning을 요구하는 과학 문제(벤치마크 데이터셋)
        • 질문&문맥: $\textrm{X}_{instruct}$, 추론&답변: $\textrm{X}_a$

4. Experiments

4.1 Multimodal Chatbot

  • 이미지 기반 질문에 대해 얼마나 정확하고 유연하게 응답할 수 있는지 평가
  • LLaVA는 질문을 따라가는 응답을 생성하며, 단순한 이미지 설명에 그치지 않고 추론까지 수행
  • BLIP-2와 OpenFlamingo는 질문을 무시하고 이미지 설명만 반복하는 경향
  • LLaVA-Bench (COCO, In-the-Wild)라는 자체 벤치마크 구성
  • GPT-4를 평가자로 사용하여 모델 응답을 비교 (helpfulness, relevance, accuracy 등 1~10점)
  • LLaVA는 BLIP-2 대비 +29%, OpenFlamingo 대비 +48% 개선
  • Instruction-tuning이 없을 경우 성능 급락 (21.5점 수준)

4.2 ScienceQA

  • 이미지와 지문을 활용해 정답을 선택하는 멀티모달 reasoning 능력 평가
  • GPT-4 단독 성능은 82.69%로 제한됨
  • LLaVA + GPT-4 결합 전략:
    1. GPT-4 보완(complement): GPT-4가 답을 못 할 때 LLaVA 응답 사용 → 90.97%
    2. GPT-4 판별(judge): 둘이 다를 때 GPT-4에게 판정 요청 → 92.53% (최고 성능)
  • Chain-of-Thought reasoning → 빠른 수렴에는 도움되지만, 최종 정확도는 동일
  • CLIP의 마지막 layer 피처 vs. 그 전 layer 비교 → 전 layer 성능 더 좋음
  • 7B vs 13B 모델 → 13B가 1% 이상 더 정확

 

728x90