ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] LLaVA: Large Language and Vision Assistant (Visual Instruction Tuning)
    Machine Learning/Multimodal Learning 2023. 5. 7. 00:54
    728x90

     

      최근 ChatGPT, LLaMA와 같은 거대 언어 모델(LLM, Large Lanuage Models)이 많은 주목을 받고 있습니다. 하지만, 실제 세계는 언어뿐만 아니라 시각적인 요소를 포함한 복합적인 정보(멀티모달)들로 이루어져 있습니다. 이전에도 Flamingo, BLIP-2 등 시각 정보를 인식해 관련 질문에 답을 하고 채팅을 이어가는 멀티모달 연구들이 있었는데요. 해당 연구들은 학습 시 데이터셋의 형식이 단순한 image-text pair(이미지와 이를 설명하는 텍스트)로 이루어져 있었습니다.

    하지만, 이번에 소개할 LLaVA는 이미지를 포함한 지시문 데이터 형식인 visual instruction-following data를 새롭게 제안합니다. 또한, 학습된 LLM인 Vicuna 모델로 파라미터를 초기화 하고 이를 CLIP vision encoder와 연결하는데, 그 덕분에 기존 LLM 모델의 언어능력을 충분히 leverage 하면서 이미지 정보를 잘 이해하고 대화를 이어가는 모델을 만들었습니다. 이러한 이미지 기반 챗봇 형식의 대화가 가능한 멀티모달 모델 LLaVA에 대해 자세히 설명하겠습니다.


    [ 
    Paper | Github | Demo | Project Page ]

     

    LLaVA

    Based on the COCO dataset, we interact with langauge-only GPT-4, and collect 158K unique language-image instruction-following samples in total, including 58K in conversations, 23K in detailed description, and 77k in complex reasoning, respectively. Please

    llava-vl.github.io

     

    타이타닉의 한 장면을 이미지 인풋으로 주고 영화의 엔딩에 대해 질문하자, 실제 타이타닉의 결말에 대해 알려준다.

     

     

    Abstract

       최근 GPT-4와 같은 언어 모델로 instruction-following data를 생성하여(machine-generated) LLM 모델을 instruction tuning 하는 연구들이 이루어지고 있는데요. 하지만, 이러한 방법이 이미지-텍스트와 같은 멀티모달 테스크에서는 상대적으로 연구가 덜 이루어졌습니다. 이 논문에서는 언어만을 인풋으로 받는 GPT-4를 사용하여 멀티모달 언어-이미지 instruction-following 데이터를 생성하고(이 방법은 뒤에 설명합니다), 이를 이용하여 LLaVA라는 대규모 멀티모달 모델을 만들었습니다. LLaVA는 시각 인코더(vision encoder)와 LLM을 연결하여 시각 및 언어 이해가 가능한 모델이며, 초기 실험 결과 멀티모달 GPT-4와 유사한(85.1%) 이미지-언어 이해 능력을 보여주었습니다. 또한 Science QA에서 finetuning 한 결과, LLaVA와 GPT-4의 시너지로 92.53%의 새로운 SOTA를 달성했다고 합니다.

     

    1. Introduction

      인간은 시각과 언어와 같은 여러 채널을 통해 세상과 상호작용합니다. 각 채널마다 고유한 장점이 있어 특정 개념을 표현하고 전달하는 데 도움이 되며, 이를 통해 세상을 더 잘 이해할 수 있습니다. 인공지능의 핵심 목표 중 하나는 일반적인 테스크를 수행할 수 있는 어시스턴트(general-purpose assistant)를 개발하여 인간의 의도에 맞게 다양한 현실 세계의 작업에 도움을 주는 것입니다.

      하지만, 기존 멀티모달 테스크에서 이미지-텍스트 쌍의 데이터는 단순히 텍스트가 이미지에 대한 설명으로 이루어진 경우가 많았습니다. 이러한 데이터를 사용할 경우 모델이 이미지를 단순히 설명하는 방식으로 주로 학습이 이루어지기 때문에, 이미지에 대해 질의응답을 하고 대화를 하는데 한계가 있습니다.

     

    COCO dataset 예시 - https://cocodataset.org/#explore

     

      멀티모달 테스크와 달리, 대형 언어 모델(LLM)은 언어가 더 넓고 다양한 역할을 할 수 있다는 것을 보여주었습니다. 최근 ChatGPT 및 GPT-4의 성공은 LLM의 강력한 성능을 보여주었고, LLM 개발에 큰 관심을 불러일으켰습니다. 그중 Meta에서 공개한 LLaMA는 GPT-3의 성능과 일치하는 오픈 소스 LLM이며 이를 finetune 한 Alpaca, Vicuna, GPT-4-LLM은 다양한 machine-generated 고품질 지시문(instruction-following samples)을 활용하여 LLM의 alignment 능력을 개선할 수 있음을 보여주었습니다.

      이러한 연구에 영감을 받아 LLaVA의 저자들은 멀티모달로 instruction-tuning을 확장한 첫 번째 시도인 visual instruction-tuning을 제안합니다. 이는 general-purpose visual assistant를 구축하는 하나의 방향을 제시했다고 볼 수 있습니다. 이 논문의 contribution을 요약하면 아래와 같습니다.

    1. 멀티모달 instruction-following 데이터
     - 핵심적인 문제 중 하나는 이미지-텍스트 instruction-following 데이터의 부족입니다. 저자들은 ChatGPT/GPT-4를 사용하여 이미지-텍스트 쌍을 적절한 instruction-following 형식으로 변환하기 위한 데이터 reformation perspective 및 파이프라인을 제시합니다.

    2. 대형 멀티모달 모델
    - 저자들은 CLIP의 시각 인코더와 언어 디코더 LLaMA(or Vicuna)를 연결하여, 생성한 instructional vision-language 데이터를 end-to-end로 fine-tuning하는 대형 멀티모달 모델(Large Multimodal Model, LMM)을 개발합니다. 실험 결과를 통해 생성한 데이터를 사용하여 LMM instruction-tuning에 효과적으로 사용할 수 있음을 검증하고, 일반적인 instruction-following 시각 에이전트를 구축하는 실용적인 팁을 제시합니다. GPT-4를 사용하여 Science QA 멀티모달 추론 데이터셋에서 SOTA 성능을 달성했습니다.

    3. 오픈 소스
    - 저자들은 다음과 같은 것들을 오픈소스로 공개합니다. 1)생성된 멀티모달 instruction-following 데이터, 2)데이터 생성 및 모델 훈련을 위한 코드베이스, 3)모델 체크포인트(weights) 및 4)이미지와 텍스트를 함께 이용할 수 있는 채팅 데모. 

     

     

    2. GPT-assisted Visual Instruction Data Generation

      기존 멀티모달 분야에서 주로 쓰이던 CC, LAION과 같은 이미지-텍스트 쌍 데이터들은 instruction-following 형식의 데이터가 아닙니다. 따라서 사람이 직접 annotation하여 이러한 형식의 대규모 데이터를 만든다면 매우 비싼 cost가 필요합니다. 그런데 LLM domain에서는 최근 [ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks] 에서 ChatGPT로 Text-Annotation을 수행해 사람들(crowd-workers)이 직접 작업한 것보다 좋은 품질의 데이터를 생성했습니다. 여기에서 영감을 받아, 저자들은 ChatGPT/GPT-4를 leverage 해서 기존의 image-text pair 데이터로부터 멀티모달 instruction-following data를 만드는 방법을 제안합니다.

      저자들은 특정 prompt를 ChatGPT/GPT-4의 input으로 사용합니다. 이때 주의해야할 것은 이미지는 input으로 사용하지 않고, 이미지와 관련된 캡션 및 Bounding box 값들만 이용해 질문 및 대화 셋을 만듭니다. 

    캡션, Bounding box 정보, 이미지 예시. GPT-4로 데이터셋을 생성할 때 이미지는 인풋으로 사용하지 않음

     

    예를 들면, 위와 같이 이미지, 캡션, Boxes 정보들이 있을 때, 이를 아래 prompt의 'context'에 넣어줍니다. 

    데이터셋 생성을 위한 prompt

     

      그러면 ChatGPT를 이용해 질문하고 답하는 대화 형식(type1: conversation)의 데이터를 생성합니다. 이와 유사하지만 다른 prompt를 사용해, 더 자세한 설명(type2: detailed description) 혹은 복잡한 추론(type3: complex reasoning) 데이터를 생성할 수 있습니다. 아래는 그 예시입니다.

     

      이때 context로 주는 두 가지 타입의 상징적 표현(symbolic representation)인 캡션과 Bounding box는 다음과 같은 역할을 합니다. 1)캡션은 일반적으로 다양한 관점에서 이미지의 시각적 장면을 설명합니다. 그리고 2)Bounding box는 보통 장면 내 객체를 localize 하고, 각 객체의 concept과 spatial location(공간상의 위치)의 정보를 인코딩합니다. 이러한 symbolic representation을 통해 이미지를 LLM이 인식 가능한 시퀀스로 인코딩할 수 있습니다.

      저자들은 COCO 데이터셋을 총 3가지 타입의 instruction-following data를 만들었습니다. 각 타입에 대해 먼저 몇 가지 예시를 사람이 직접 설계한 후 이 seed 예제를 GPT-4의 in-context-learning에 사용했습니다. 3가지 타입을 정리하면 아래와 같습니다.

    1. Conversation
     - 사진에 대해 질문하는 사람과 이에 답하는 Assistant 사이의 대화 형식으로 디자인합니다. 대답은 Assistant가 이미지를 보고 질문에 대답하는 것과 같은 어조이며, 이미지의 시각적인 정보(객체의 유형, 수, 행동, 위치, 객체간의 상대적인 위치 등)에 대해 다양한 질문을 합니다. 또한 명확하게 답변이 있는 질문만 고려합니다.

    2. Detailed description
     - 이미지에 대한 풍부하고 포괄적인 설명을 내포하게 디자인 했습니다. 이러한 자세한 설명을 요구하는 여러 promt 리스트를 만든 뒤 그중 하나를 샘플해 답을 생성하게 했습니다.

    3. Complex reasoning
     - 위의 두 가지 유형은 시각적 content 자체에 중점을 두며, 이를 기반으로 심층 추론 질문을 추가로 생성합니다. 답변은 일반적으로 엄격한 논리를 따르는 단계별 추론 프로세스를 요구합니다.

     

    총 158K(약 15만)개의 intruction-following 데이터를 생성했으며, 각 타입 별 데이터 개수는 아래 표와 같습니다. 이렇게 생성한 데이터는 모두 공개했으며, Github에서 다운받을 수 있습니다.

    Multimodal Instruction-Following Data

     

     

    3. Visual Instruction Tuning

    3.1) Architecture

      이 연구의 주요 목표는 사전 훈련된 LLM과 vision 모델의 각 모달에 대한 능력(capability)을 효과적으로 leverage 하는 것입니다. 아래 이미지에서 LLM에 해당하는 fφ(·)는 LLaMA를 기반으로 finetuning한 Vicuna를 사용합니다. 그리고 이미지를 입력으로 받는 Vision Encoder는 CLIP visual encoder ViT-L/14를 사용합니다. 이때 기존 last layer를 제거하고, 이미지 feature를 word embedding space에 연결하기 위해 간단한 linear layer(Projection W)를 추가했습니다. linear layer의 output dimension은 언어 모델의 word embedding space와 같게 설정합니다. 

     

      linear layer를 거친 sequence of visual tokens(위의 그림에서 Hv)을 얻을 수 있으며, 이는 lightweight인 동시에 데이터 중심의 실험을 빠르게 반복할 수 있는 cost-effective한 scheme 입니다. 

     

    3.2) Training

      각 이미지에 대해 아래와 같은 multi-turn conversation data를 만들었습니다. 이때 T는 전체 turn의 횟수입니다.

      첫 번째 turn의 경우 이미지 feature를 질문 앞에 둘 것인지 뒤에 둘 것인지 random 하게 결정합니다. 이러한 형식은 통합된 멀티모달 instruction-following sequence를 처리할 수 있게 합니다. 

     

      학습을 위해서 instruction-tuning을 수행하는데, 이때 기존 많은 언어 모델에서 쓰이는 auto-regressive training objective를 사용합니다. 이는 앞에 나온 단어(token)들을 보고 다음 단어를 맞추는 task로, 기존 언어모델들과 달리 이미지 feature를 함께 사용한다는 차이점이 있습니다. 이를 수식으로 표현하면 아래와 같습니다.

     

      더 자세히 살펴보면, 아래 예시에서 초록색 부분에 해당하는 token을 예측하도록 학습합니다. system-message는 "A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human’s questions." 로 학습 시 loss 계산에는 표함되지 않습니다. Human이 얘기하는 X_instruct 부분도 loss 계산을 하지 않지만, Assistant가 얘기하는 X_a는 loss를 계산합니다. 또한 문장의 끝인 <STOP>=### 도 예측해야 합니다.

     

    위에서는 loss에 대해 알아보았습니다. 학습 시 사용하는 데이터에 따라 LLaVA는 two-stage로 학습을 합니다. 

    Stage 1: Pre-training for Feature Alignment
     - concept coverage와 학습의 효율성 사이의 밸런스를 맞추기 위해, 저자들은 CC3M 데이터를 595K image-text pair로 필터링 합니다(기존 CC3M은 약 300만장으로 너무 크기 때문에 이중 적합한 데이터를 사용). 이 데이터들을 instruction-following data로 형식으로 변환합니다. 하지만 이전과 같이 여러 턴의 대화가 아니라 single-turn 대화로 만들었으며, 이미지에 대해 간략하게 설명하도록 요청하는 instruction을 주면 기존의 실제 캡션을 대답으로 사용합니다. 이때 질문에 해당하는 예는 "Describe the image concisely.", "Provide a brief description of the given image." 와 같은 것입니다. 
     - stage1 에서는 visual encoder와 LLM의 weight은 모두 학습하지 않으며(frozen), 오직 linear layer인 projection matrix만 학습합니다. 이를 통해, 이미지 feature는 사전 학습된 LLM의 word embedding과 align 될 수 있습니다. 이 단계는 frozen LLM에 호환되는 visual tokenizer를 학습하는 과정으로 이해할 수 있습니다.

    Stage 2: Fine-tuning End-to-End
     - 이때는 visual encoder만 frozen하고, LLM과 projection layer 두 모듈을 학습합니다. 저자들은 두 가지 시나리오에 대해 고려했습니다.
     - 1) Multimodal Chatbot : 앞에서 설명한 158K language-image instruction-following data를 이용해 fine-tuning한 Chatbot 입니다. 세 가지 타입의 응답 중 대화는 multi-turn이고 나머지 두 개는 single-turn입니다. 이 타입들은 훈련 과정에서 uniform하게 샘플되어 학습에 사용됩니다.
     - 2) Science QA : 저자들은 ScienceQA benchmark에서 고안한 방법을 테스트 했습니다. 이 데이터셋의 각 질문에는 언어 혹은 이미지로 이루어진 context가 주어지고, 모델은 자연어로 추론 과정을 답하고 객관식에서 답을 선택하는 테스크입니다. 이를 위해 데이터를 단일(single-turn) 대화 형식으로 구성하는데, 이때 질문과 context를 지시(instruct)로 주고, 맞춰야 하는 답변으로 추론과 정답 데이터를 줍니다.

     

    4. Experiments

    4.1) Multimodal Chatbot

      LLaVA의 이미지 이해 및 대화 능력을 보여주기 위해 저자들은 Chatbot 데모를 개발했습니다. 이미지를 포함한 언어 질문을 얼마나 잘 소화하고 지시에 따라 대답하는지 측정하기 위해 GPT-4 논문의 예를 사용했습니다. 비교를 위해 Multimodal GPT-4, BLIP-2, OpenFlamingo model의 결과를 가져왔습니다.

    움직이는 차 위에서 다림질하는 것이 이상하다는 것(unusual)을 잘 답함

      LLaVA는 비교적 적은 multimodal instruction-following dataset(~80K unique images)으로 학습했음에도 multimodal GPT-4와 유사한 추론 결과를 보여주었습니다. 대조적으로 BLIP-2와 OpenFalmingo는 적절한 방식으로 대답하라는 사용자의 지시를 따르는 대신, 이미지를 설명하는 데 중점을 두었습니다. 

     

    치킨으로 지구 형상을 만든 밈을 이해하고 설명함

     

    Quantitative Evaluation

      LLaVA의 성능을 체계적으로 이해하기 위해 GPT-4를 활용해 모델의 instruction-following 능력을 정량적 metric으로 측정합니다. 구체적으로, COCO Val 2014 데이터셋에서 random하게 30개의 이미지를 뽑아 이전에 언급한 데이터 생성 파이프라인을 사용해 세 가지 유형의 질문(대화, 자세한 설명, 복잡한 추론)을 생성합니다. LLaVA는 질문과 visual input image를 기반으로 답변을 생성합니다. 그리고 GPT-4는 질문과 ground-truth bounding boxes, 캡션을 기반으로 upper bound를 역할을 하는 reference prediction을 만듭니다. 이렇게 두 모델로부터 응답을 얻은 후 질문과 시각적 정보(캡션 및 bounding box) 및 생성된 두 응답을 GPT-4에 넣어줍니다. 이때 GPT-4는 어시스턴트 응답의 유용성, 관련성, 정확성 및 세부 수준을 평가해 1~10 사이의 점수를 부여합니다. 이때 점수가 높을수록 전반적인 성과가 더 우수함을 나타냅니다. GPT-4는 모델을 더 잘 이해할 수 있도록 평가에 대한 포괄적인 설명을 제공합니다.

     

    이와 관련해 한국어 버전 LLaVA인 KoLLaVA 모델 및 데이터를 생성해 공유했습니다.
    더 자세한 내용이 궁금하신 분은 아래 깃헙을 참고해주세요 :)


    https://github.com/tabtoyou/KoLLaVA

     

    GitHub - tabtoyou/KoLLaVA: KoLLaVA: Korean Large Language-and-Vision Assistant (feat.LLaVA)

    KoLLaVA: Korean Large Language-and-Vision Assistant (feat.LLaVA) - GitHub - tabtoyou/KoLLaVA: KoLLaVA: Korean Large Language-and-Vision Assistant (feat.LLaVA)

    github.com

     

    728x90

    댓글

Designed by Tistory.