Paper Review

[Paper Review] LLaVA : Large Language and Vision Assistant (Visual Instruction Tuning)

cherie-ssom 2024. 9. 20. 11:45

최근 ChatGPT 및 LLaMA와 같은 대규모 언어 모델(LLM, Large Language Models) 이 많은 주목을 받고 있다. 

그러면서 언어뿐만 아니라 시각적인 요소를 포함한 복잡한 정보들을 함께 활용할 수 있는 대형 멀티 모달 모델들(LMM, Large Multimodal Model)이 등장하고 있다. 오늘은 그중에서도 LLaVA(Large Language and Vision Assistant) 모델에 대해서 정리해보고자 한다.

1. Overview

이전에도 Flamingo, BLIP-2 등 시각 정보를 인식해 관련 질문에 답을 할 수 있는 멀티 모달 연구들이 있었지만, 해당 연구들은 학습 시 데이터셋의 형식이 단순한 image-text pair로 이루어져 있었다. 즉, 단순히 텍스트가 이미지에 대한 설명으로 이루어져있어서 이미지에 대해서 질의응답을 하고 대화를 하는 데 한계가 있었다.  

 

하지만 LLaVA는 이미지를 포함한 지시문 데이터 형식인 visual instruction-following data를 새롭게 제안했다.  

그 전에 Instruction Tuning이 뭔지 짚어보고 가겠다.

 

Instruction Tuning 이란?

기존 GPT-3 등의 챗봇에서는 할루시네이션 문제가 거론이 되었다. 즉, 질문과 대답이 "Aligning"이 잘 되는지 판단해 볼 때의도와는 다른 답변을 주는 경우가 많았다.  

이러한 문제를 해결하기 위한 하나의 방법으로 Instruction Tuning이 나왔다.

단순하게 말하자면 모델에게 지시사항(Instruction)과 답변(Output) 쌍의 데이터를 주고 Fine-tuning 하는 기법이다. 

즉, Pre-trained 모델에 Fine-tuning을 진행하되 Prompt 형식 (Instruction)으로 변환하여, Prompt+Completion 쌍의 데이터를 넣어서 Supervised Learning을 수행하는 것이다.

(이때, Instruction Tuning은 Supervised Learning을 진행하면서 전체 Weight를 업데이트하기 때문에 Fine-tuning의 일종임)

 

조금 더 직관적으로 표현하자면, 단순히 너 이름이 뭐야? 라고 묻는 것이 아니라, 너 이름이 뭐야?라는 말을 영어로 번역해줘 라는 지시문을 추가하는 것을 의미한다. 

 

출처 : FLAN(Finetuned Language Models Are Zero-Shot Learners)

 

대표적으로 T5모델에 Instruction Tuning을 진행한 것이 FLAN-T5, LLaMA 모델에 Instruction Tuning을 진행한 것이 Vicuna 모델이다. Instruction Tuning이라는 개념은 구글의 FLAN이라는 논문에서 처음 나온 개념이다. 

 

이러한 Instruction Tuning은 Fine-tuning을 진행하지만 Prompt 형식으로 많은 task를 모델이 학습할 수 있기 때문에 모델의 성능이 조금 더 좋아질 수 있다는 것이 장점이다.  

 

2. Methodologies 

2-1. Instruncting-Following Dataset

 

.LLaVA는 Instruction Tuning을 진행하고 있기 때문에, 기존의 prompt에 Instruction을 추가하는 과정이 필요하다. 

하지만 LLaVA의 저자들은 멀티모달로 Instructuin tuning을 확장하고 있기 때문에 먼저 기존에 단순히 이미지-텍스트 캡셔닝 데이터를 보완하기 위해서 Instruction-following 데이터를 생성했다. 

(구체적으로는 Image와 그에 해당하는 Caption이 있는 경우 이미지를 서술해달라는 내용을 질문한(Question) 데이터 셋 생성)

 

하지만, 사람이 하게되면 시간과 비용의 문제가 발생하기 때문에 Chat-GPT / GPT-4를 활용하여 Instruction-Following 데이터 셋을 생성하였다. 

 

하지만 이때 주의해야할 사항으로 이미지는 input으로 사용하지 않고, 이미지와 관련된 Captions와 bounding box 값들만 이용해서 질문과 대화 셋을 만든다.  

*여기서 캡션은 시각적으로 다양한 관점에서 바라본 image scene을 말한다. Bounding box의 경우 object의 위치를 나타낸 값

 

예를 들어, 위의 이미지에서 images, captions, boxes 정보들이 있을 때, 이를 아래 prompt의 'context'에 넣어준다. 

아래의 그림에서 보이듯이 prompt에 이미지 내의 시각적 요소 자체에 대한 질문을 포함해서 다양한 질문고 답을 생성해 달라고 한다. 

 

이뿐만 아니라 다른 prompt들을 사용해서  Detailed Description과 Complex Reasoning 데이터도 생성할 수 있다고 한다.

Detailed Description의 경우 매우 많은 Prompt 중에 Randomly select 해서 자세한 설명을 하는 output을 만들고,

Complex Reasoning의 경우 단계별로 엄격한 논리가 포함된 이유를 함께 요구하는 prompt를 통해서 output을 만들었다고 한다.

 

2-2. Model Architecture & Training

목표 :  Pre-trained LLM과 Pre-trained Visual Model을 효과적으로 활용하는 것으로(각 모달에 대한 능력을 효과적으로 leverage 하는 것) LLM의 경우 Vicuna를 활용, Vision Encoder는 Pre-trained CLIP Visual Encoder인 ViT-L/14를 활용했다.  

 

Training 과정

 

먼저 각 image에 대해 Multi-Turn conversation data(지시, 답변)를 확보한다. 각 대화의 답변을 assistant의 답변으로 간주한다. 

 

입력값으로 실제이미지(Xv)와 유저의 질문(Xq)이 주어지면 앞에서 생성한 instruction-following data의 출력값이 여기서 정답값(Xa)이 된다. 

 

이때, t번째 instruction은 아래와 같이 지정한다.

첫번째 turn에서만 이미지를 넣어주어야 하기 때문에 쿼리와 이미지에 대해서 순서에 상관없이 넣어줌. 

 

이렇게 한 결과 일관된 형태로  Multimodal instruction-following sequence 형성 가능 

 

 

이때, 앞에서 machine-generated instruction-following data의 caption과 box는 이렇게 이미지를 이해하고 이에 대해 출력한 caption을 얻기 위해서 적용되었고 실제 학습에는 이미지가 입력되는 것이 LLaVA의 핵심이다.

 

 

Probability 계산

 

Sequence의 길이가 L일 때, 정답 Xa에 대한 확률은 아래와 같이 계산한다.

* Xinstruct,<i : 현재 예측 토큰인 Xi 이전 모든 Tutns에 대한 Instruction Tokens

* Xai : 현재 예측 토큰인 Xi 이전의 모든 Turns에 대한 Answer Tokens

 

즉, 이미지와 쿼리에 대해서 answer가 나올 확률을 계산할 때는 이미지, instruction, answer에 대한 모든 토큰을 집어넣고 이를 다 곱해서 정답에 대한 확률을 계산

 

Instruction Tuning

 

LLaVA 모델은 두 단계의 Instruction tuning 으로 학습한다.

 

이미지 feature와 language instruction을 llm에 전달하기 위해 projection W를 통해 alignment를 수행.

즉, Xv라는 이미지를 넣었을 때, Vision Encoder를 활용해서 이미지를 Feature화 하고, Language model의 Word Embedding Space와 동일한 차원을 갖도록 간단한 linear layer(Projection Matrix인 W)를 통해 project 함.

 

* 서로 다른 modality를 grounding 할 때,  단순한 linear layer를 많이 사용하는데, 이렇게 해줌으로 이를 loss로 활용할 수 있다. 

 

첫 번째로 Pre-traing 할 때는 visual encoder와 llm의 weight는 Freeze 한 채로 앞서 말한 Projection W만 학습한다. 이 단계에서 CC3M to 595K image-text pairs 데이터를 사용해서 image describe을 breifly 답변하도록 학습했다.

위의 instruction list 를 랜덤 하게 뽑아 instruction language를 CC3M image와 함께 LLM의 입력값으로 넣은 후 출력 caption 답변을 CC3M text 정답과 loss를 계산하여 학습한다.

 

이는 이미지 feature와 llm의 alignment으로 llm에 대해 호환 가능한 visual tokenizer의 training의 과정이다. 

 

두번째로 Fine-tuning 과정은 visual encoder는 weight은 고정하고 projection layer와 llm 모델의 weight를 업데이트한다. 

일단 두 가지 시나리오를 위한 fine-tuning을 진행했는데, 멀티모달 챗봇과 science QA다. 

 

멀티모달 챗봇의 경우 아까 앞서 생성한 158K 개의 데이터 셋을 활용해서 Fine-tuning 수행하고,

Science QA의 경우 질문과 문맥설명을 instruct로, reasoning(이유)와 answer(답변)을 Xa로 정하여 학습을 수행

 

3. Experiment

LLaVa는 80K 정도로 적은 수의 image를 학습했지만, 새로운 Image에 대해서도 GPT-4와 매우 유사한 답변을 낸다고 한다. 아래의 정량 평가에서도 학습되지 않은 다양한 종류의 데이터셋에 대해서도 BLIP-2, OpenLamingo보다 우수한 성능을 보였다. 

 

 

Science QA도 LLaVA 모델만 이용한 결과 90.92%로 SoTA에 근접한 성능을 냈다. 

 

4. Conclusion

Multimodal Instructuon Following Capabiity를 연구하기 위한 최초의 벤치마크를 제안했다.

Vision Encoder로는 CLIP, Language Decoder로는 Vicuna를 결합하여 vision 및 langugage가 통합된 LLaVA를 개발했다. 

Language만을 이해하는 GPT-4를 사용해서 instruction-following이라는 새로운 데이터셋을 생성함으로 multi-modal 학습 데이터를 만들어내어 모델이 더 정교하게 시각적 상황을 이해할 수 있다.