굴러가는 분석가의 일상

[논문리뷰] Visual Instruction Tuning (LLaVA) 본문

논문리뷰

[논문리뷰] Visual Instruction Tuning (LLaVA)

G3LU 2024. 4. 28. 17:31
LLaVA : Large Language and Vision Assistant 
Paper | Github | Demo | Project Page  

 

💡 Introduction

 

최근 GPT-4, Vicuna, FLAN-T5 등 다양한 거대 언어 모델(LLM, Large Language Model)에 대한 멀티모달 연구가 활발히 이루어지고 있으며, 성능이 점진적으로 발전하여 다양한 분야에서 활용되고 있습니다. 하지만 기존 멀티모달 테스크에서 이미지-텍스트 쌍의 데이터는 단순히 텍스트가 이미지에 대한 설명으로 이루어진 경우가 대부분입니다. 이러한 데이터를 사용할 경우 모델이 이미지를 단순히 설명하는 방식으로 주로 학습이 진행되기 때문에, 이미지에 대해 질의응답을 하고 대화를 하는데 한계가 있습니다.

이에 논문의 저자들은 LLM과 Visual Encoder를 결합하여 Image 기반의 질의응답이 가능한 Visual Instruction Tuning을 제시하였으며, 본 논문의 Contribution은 아래와 같습니다. 

 

  1. Multimodal istruction-following data : 이미지-텍스트 Instruction-following 데이터가 부족한 것이 핵심적인 문제이었습니다. 이러한 문제점을 해결하기 위해 ChatGPT/GPT4를 사용하여 데이터 Reformation Perspective 및 파이프라인을 제시하였고, 이를 토대로 이미지-텍스트 쌍을 적절한 instruction-following 형식으로 변환하였습니다. 

  2. Large multimodel models : CLIP의 Visual Encoder와  Language Decoder LLaMA(or Vicuna)를 결합하였으며, 생성한 Instructional vision-language 데이터로 end-to-end fine tuning이 가능한 LLM을 개발하였습니다. 

💡 GPT-assisted Visual Instruction Data Generation 

이미지-텍스트 쌍의 데이터들은 기존의 멀티모달 분야에서 지속적으로 사용되었으며, 이에 따른 데이터의 양이 급증하였습니다. 하지만 이와 같은 CC~LAION 데이터는 Instrucion following 형식이 아니였습니다. 따라서 사람이 직접적으로 annotation한 다는 것은 시간적/비용적/질적인 문제점이 존재했습니다. 그런데 최근 LLM 도메인에서 ChatGPT로 text-annotation를 수행하는 연구가 성공적으로 개발되었으며, 인간의 개입 없이 고품질의 데이터 생성이 가능해졌습니다. 이에 본 눈문의 저자들은 Language-only GPT-4/ChatGPT를 leverage 해서 기존의 image-text pair 데이터로 부터 멀티모달 instruction-following data 생성이 가능한 Data Reformation Pipeline를 제안하였습니다.

 

여기에서 주목해야할점은 이미지를 INPUT으로 사용하지 않고, 이미지와 관련된 캡션 및 Bounding Box 값들만 이용해 질문과 대화 셋을 만들게 됩니다

 

Caption and Bounding Box used to prompt GPT; IMAGE AS A REFERENCE

 

이때 사용되는 Symbolic Representation은 다음과 같은 역할을 수행합니다.  (i) Caption은 일반적으로 다양한 관점에서 이미지의 시각적인 장면을 설명합니다. 또한, (ii) Bounding Box는 각 객체를 localize하며, 공간상의 위치 정보를 인코딩합니다. 이러한 접근을 통해 이미지를 LLM이 인식 가능한 시퀸스로 인코딩할 수 있게 되는 것입니다. 

 

 

위의 Symbolic representation Contents를 아래의 사진과 같은 prompt에 입력을 합니다. 이러한 과정을 통해 본 논문의 저자들은 COCO 데이터 셋을 활용하였으며, 3가지 타입의 Instruction-following data를 생성하였습니다. 각 타입에 대해서 소수의 예시를 설계하였고, 이를 GPT-4의 in-context-learning에 활용하였습니다. 3가지 타입은 아래와 같습니다.

 



  1. Conversation : 이미지에 대해 사람과 Assistant가 대화하는 형식으로 디자인을 하였습니다. 대답은 Assistant가 직접 이미지를 보고 질문에 대답하는 어조로 구성이 되어있으며, 구체적인 시각적 정보에 대해 질문할 수 있게 설계하였습니다. 

  2. Detailed Description: 이미지의 대한 rich & comprehensive decription을 포함하기 위해 여러 프롬프트를 만든 뒤 그중 하나를 샘플해 답을 생성하게 하였습니다. 

  3. Complex Reasoning : 시각적 컨텐츠에 중점을 두었으며, 이를 기반으로 심층 추론 질문이 가능하게 설계하였습니다.

💡 Architecture

 

본 논문의 주요 목표는 사전 훈련된 text-only LLM과 비전 모델의 능력을 극대화하는 것입니다. Language Model은 LLaMA를 기반으로 fine-tuning한 Vicuna를 사용하며, 이미지 입력을 받는 Vision Encoder는 CLIP의 ViT-L/14를 사용하였습니다. Xv(Image)와 Xq(Insturction)이 Language Model에 삽입되기 위해서는 동일한 차원의 embedding space을 가져야합니다. 이때 Vision Encoder를 통해서 도출된 Xv(Image)의 인코딩 형태인 Zv에 간단한 Linear Layer(Projection W)를 추가하였습니다. 

💡 Training

 

각각의 Xv(Image)에 대해  Multi-turn conversation data를 생성하였으며, t번째 Instruction은 다음과 같이 지정하였습니다.

 

첫번째 turn 같은 경우, Xv(Image)에 대한 정보를 추가해야 했기 떄문에, Xq(Instruction)을 순서에 상관없이 앞에 둘것인지 뒤에 둘것인지 랜덤으로 결정했어야 했습니다. 이를 통해 일관된 형태로 Multimodl Instruction-following sequence를 처리할 수 있게 되었습니다.

 

또한, 학습을 위해 Instruction tuning을 진행하였으며, 기존의 많은 언어 모델에서 사용되는 Auto-regressive training objective를 사용했습니다. 이는 이전의 나온 단어들을 기반으로 다음에 나올 단어를 예측하는 Task이며, 이미지 feature를 함께 사용한다는 것이 기존의 방식과 차별화된 포인트입니다.

 

위의 수식을 보면 Xi 값만 초록색인걸 확인하실 수 있습니다. 이는 Instrction-tuning이 Auto-regressive trianing objective에 의해 학습이 이루어질때  초록색 부분의 Sequence/Tokenaks loss 계산에 반영이 됩니다. 이렇게 하는 이유는 단순합니다. 시스템 차원에서 주는 제너럴한 컨셉의 행동강령(System-Message), 유저의 Prompt(Instruction), Assistant의 답변(Answer)을 어느 구간에서 멈출지 구분하기 위해서 입니다. 

 

아래와 같이 두 단계의 Instruction-tuning 절차를 거쳐 LLaVA Model Training을 진행하게 됩니다. 

📌Stage 1:  Pre-training for Feature Alignment 

저자들은 concept coverage와 학습의 효율성 사이의 균형을 맞추기 위해 595,000 개의 CC3M 데이터를 Image-text pair으로 필터링을 하였으며, Naive한 방식의 Data Reformation을 통해 Instruction-following data로 변환하였습니다. 하지만 이전과 다르게 multi-turn 형식의 대화가 아닌 single-turn 대화로 만들었으며, 이미지를 간단하게 요약할 수 있는 여러가지의 Instruction 중 하나를 샘플링하여, 기존의 실제 캡션을 대답으로 사용하였습니다. 

 

Pre-training할때는 Visual Encoder와 LLM의 Weight를 Frozen한 상태로 trainable parather(theta)와 Projection Matrix(W)를 통해 유사도를 극대화 하였습니다. 이러한 과정을 통해 Image Feature와 Pre-trained된 LLM의 word embedding과 동일한 차원을 갖도록 만들어주었습니다. 즉 쉽게 말하자면, LLM에 대해 호환 가능한 Visual Tokenizer의 training 과정이라고 이해하시면 될거 같습니다. 

📌 Stage 2: Fine-Tuning End to End 

Visual Encoder의 weight은 항상 frozen 하였으며, projection layer과 LLM의 weight는 점진적으로 업데이트 하였습니다. 저자들은 두가지의 시나리오에 대해 고려하였습니다. 

  1. Multimodal Chatbot : 158,000 개의 language-image instrction-following data을 fine-tuning하여 Chatbot를 구성하였습니다. 3가지 Responses 중 conversation은 multi-turn 대화 형식이였으며, 나머지 두개는 single-turn 대화 형식입니다. 이러한 종류들은 훈련과정에서 Uniform하게 샘플되어 학습에 사용되었습니다. 

  2. Science QA : Science QA benchmark를 통해 고안된 방법입니다.  각각의 질문은 NLP 형태 혹은 이미지로 이루어진 context가 주어지면 모델은 객관식의 답을 선택하게 만들었습니다.