[논문리뷰] Visual Instruction Tuning

hyo._.op·6일 전

논문리뷰

목록 보기
12/13

Overview

논문명: Visual Instruction Tuning
학회(출판연도): NeurIPS (2023)
연구분야: 딥러닝 기반 멀티모달 표현 학습 및 비전-언어 모델


Background

  • GPT-4는 이미지를 이해할 수 있지만, 학습방법은 공개되지 않았었음

    → LLM이 instruction tuning으로 똑똑해졌듯, 이미지도 instruction tuning을 하면 GPT-4V처럼 만들 수 있지 않을까?

    ✓ instruction tuning

    instruction(사용자의 지시) + tuning(이미 학습된 모델을 특정 목적에 맞게 추가로 학습)

    → 즉, 사용자의 다양한 지시를 잘 따르도록 추가 학습시키는 것을 의미함

    ✓ 이게 왜 필요하냐하면~

    일반적인 언어모델의 경우에는 인터넷 문서를 보고 학습을 하게 되는데, 학습데이터는 대부분

    대한민국의 수도는 서울이다.

    또는

    고양이는 포유류다.

    이런 데이터는 지식을 배우는데에는 좋은데 사람의 질문에 대답하는 방법은 배우지 못한다는 단점이 있다.

    그래서 instuction tuning을 통해서 학습데이터를 아래와 같이 바꾼다.

    instruction: 대한민국의 수도가 어디야?
    answer: 서울입니다.

    또는

    instruction: 다음 문장을 영어로 번역해줘
    input: 안녕하세요
    answer: hello.

    와 같이 질문-답변 형태를 수십만~수백만개를 학습시키는 것

    • 그러면 모델은 사람이 이런 지시를 하면 이렇게 대답해야한다는 것을 배우게 된다

    ✓ visual instruction tuning

    기존의 instruction tuning은 “질문-답변”처럼 텍스트만 활용했었는데, visual instruction tuning은 “이미지 + 질문 → 답변”을 학습한다.

    예를 들어,

    (강아지 사진)
    질문: 강아지가 지금 뭐하고 있어?
    답변: 공을 보고 있습니다.

    또는

    (도로 위 사진)
    질문: 왜 차들이 지금 멈춰 있어?
    답변: 빨간불이기 때문입니다.

    정리하자면,

    • instruction tuning은 사용자의 지시를 이해하고 적절히 수행하도록 언어 모델을 추가 학습시키는 과정이고
    • visual instrucion tuning은 여기에 이미지 정보를 함께 입력받아서 이미지를 이해하고 사용자의 질문이나 지시에 맞게 학습시키는 방법을 의미한다

    텍스트만 이해하는 AI이미지를 보고 대화할 수 있는 AI로 확장

  • 기존의 VLM의 문제

    • 이전에는 이미지를 보고,

      • 저게 뭐야? - 강아지요. 까지는 대답을 잘했는데,

      • 왜 강아지가 위를 쳐다보고 있어? 라고 하는 추론이 필요한 질문에는 대답을 하기 어려웠음

        ⇒ 그래서 필요한 것이 instruction 데이터

    • instruction 데이터를 활용해서

      • 왜 강아지가 위를 쳐다보고 있어? - 저 위에는 공이 있기 때문이야와 같이 질문-답변 형태로 학습하도록 함
    • 그런데, 이러한 instruction 데이터를 사람이 만들게 되면, 비용이 너무 많이 들게 된다는 단점이 존재함

      ⇒ GPT-4를 이용하자

      • GPT-4를 활용하게 되면,

        [이전]

        • 이미지 하나 → 캡션 1개(강아지가 공원에서 놀고 있어요!)

        [GPT-4]

        • 캡션 1개(강아지가 공원에소 놀고 있어요!)

          • 어떤 동물이야? - 강아지요
          • 강아지가 뭐하고 있어? - 놀고 있어요
          • 어디에서? → 공원에서요
          • 강아지가 지금 실내야? - 아니요

          와 같은 대화를 자동 생성을 하면서, 캡션 1개로 instruction dataset을 만들 수 있다.


Abstract

  • GPT가 생성한 instruction 데이터를 활용하여 LLM을 튜닝시키면 새로운 작업(Zero-shot)에 대한 성능이 향상된다는 사실이 알려져 있지만, 멀티모달 분야에서는 충분히 연구되지 않았음

    ✓ Zero-shot

    쉽게 말해, 학습 데이터가 0개인 상태로도 새로운 작업을 수행할 수 있는 능력을 의미함

    예를 들어,

    • instruction tuning을 하지 않은 모델

      → 번역 o, 요약 △, 설명 x

    • instruction tuning을 한 모델

      → 번역 o, 요약 o, 설명 o, 코드 작성 o 처럼 새로운 작업에도 적응을 잘함

    ✓ Zero-shot, One-shot, Few-shot

    방식학습 예시 수예시
    Zero-shot0개"이 문장을 번역해."
    One-shot1개예시 하나를 보여준 뒤 수행
    Few-shot몇 개(2~10개 정도)예시 몇 개를 보여준 뒤 수행
    • Zero-shot

      • 오늘 정말 행복해 → 감정을 분류해!
    • One-shot

      • 오늘 너무 좋다 - 긍정

        → 오늘 정말 행복해 - ??

    • Few-shot

      • 좋다 - 긍정, 싫다 - 부정, 행복하다 - 긍정

        → 오늘 정말 행복해 - ??

  • 본 연구에서는 텍스트만 활용하는 GPT-4를 활용하여 이미지와 텍스트 기반의 멀티모달 instrction 데이터를 생성을 제안함 → LLaVA

    • LLaVA: 비전 인코더에 LLM을 결합하여 범용적인 이미지와 언어 이해를 수행하는 end-to-end 방식의 대규모 멀티모달 모델

      ✓ end-to-end

      입력(input)부터 출력(output)까지 하나의 모델이 전체 과정을 한 번에 학습하는 것

      ✓ 참고

      이전

      • 이미지 → 사람이 특징 추출(귀 모양, 털 색 등) → 분류기 → 고양이
      • 즉, 여기에서 귀 길이를 측정하자, 색깔을 활용하자. 같은 규칙을 사람이 정해야 했음
      • 입력 → feature engineering(사람) → ML → 출력

      딥러닝에서는

      • 이미지 → 신경망 → 고양이
      • 모델이 스스로 어떤 특징을 볼 지, 어떻게 판단할지를 학습함

      LLaVA에서도

      입력: 이미지+질문 → 출력: 답변
      과 같이 중간에 사람이 객체를 검출하거나 caption을 만들거나하는 과정이 없음

      • 이미지 → CLIP → Vicuna → 답변
      • end-to-end의 핵심은 최종적인 loss가 어디에서 계산되느냐임

        end-to-end가 아닌 경우

        • 이미지 → YOLO → BBox 저장 → 캡션 모델 → 텍스트 저장 → GPT → 답변
          과 같이 각 모델이 독립적으로 동작하는 경우

        • YOLO는 객체 탐지만, Caption모델은 BBox만, GPT는 텍스트만 보기

          → 하나의 loss로 연결되어 있지 않음

        end-to-end이려면

        • 이미지 → CLIP → projection → Vicuna → Answer → Loss 하나
    • 모델뿐만 아니라 평가용 데이터세트도 함께 만들었음

  • 실험결과, 멀티모달 대화 능력이 우수했고, 새로운 이미지나 질문에서도 GPT-4V와 비슷한 수준을 보이기도 했음

    • GPT-4V의 성능을 100이라고 했을 때, LLaVA는 85.1%정도
    • ScienceQA 데이터세트로 파인튜닝한 결과, 92.53%로 SOTA 달성

1. Introduction

  • 사람이 시각과 언어 여러가지 채널을 통해 상호작용하는 것처럼 인공지능 또한 시각과 언어를 모두 포함하는 멀티모달 지시를 효과적으로 따르고, 인간의 의도와 일치하게 실제 환경에서 다양한 작업을 수행하는 것을 목표로하고 있음

    • 그래서 최근에, 언어가 결합된 비전 모델 개발에 대한 관심이 증가하고 있음

      • 분류(classification), 객체 탐지(detection), 분할(segmentation), 이미지 설명(captioning), 이미지 생성(generation), 편집(editing) 등 다양한 곳에서 뛰어난 성능을 내고 있음
    • 하지만 이러한 연구들은 end-to-end 형식이 아니라 각 작업들이 하나의 대형 모델에서 독립적으로 해결이 되고 있음

      • 분류 모델 → 분류만, 객체 탐지 모델이면 → 탐지만

      • 언어도 이미지 내용을 설명하는 것에만 그쳤었음

        즉, 왜 그런지, 다른 방법은 없는지, 비슷한 예시는 뭔지? 등에 대한 질문에서는 잘 대응하지 못했었음

  • 이때, LLM은 언어가 다양한 작업 지시를 할 수 있고, end-to-end로 학습된 신경망이 원하는 작업으로 전환하여 문제를 해결할 수 있도록 함을 보여줌

    • 그래서 오픈소스 LLM에 대한 관심이 높아졌고, 그중 LLaMA는 GPT-3에 준하는 오픈소스 LLM
      • instruction tuning 덕분에 오픈소스 모델도 GPT와 비슷한 성능을 낼 수 있게 되었음
  • 하지만, 그동안은 텍스트만을 대상으로 연구가 진행되어 왔었고, 본 연구에서는 instruction tuning을 언어-이미지 멀티모달 공간으로 확장하는 visual instruction tuning을 제안함

    • 멀티모달 instruction 데이터가 부족하기 때문에 ChatGPT/GPT-4를 이용하여 이미지-텍스트 쌍을 적절한 instruction 형식으로 병형하는 데이터 재구성 방법과 파이프라인을 제안
    • CLIP의 개방형 시각 인코더와 Vicuna 언어 디코더를 연결하여 대규모 멀티모달 LLM을 개발하고, 시각-언어 instruction 데이터로 end-to-end 미세 조정 수행

Multimodal Instruction-following Agents

  • 컴퓨터 비전 분야에서 instruction-following agents를 구축하는 기존 연구들은 크게 두가지 범주로 나눌 수 있음
    — ① end-to-end 모델, ② 여러 모델을 연결한 시스템

[end-to-end 모델]

  • 각각의 특정 연구 주제마다 별도로 개발되는 편
    • VLN(Vision Language Navigation) & Habitat에서
      Embodied AI Agent가 자연어 지시를 따르고, 시각 환경에서 목표를 달성하기 위한 일련의 행동을 수행해야함
    • 예를 들어, 사람이 “주방에서 컵을 가져와”라고 했다면,
      AI가 앞으로 이동 → 오른쪽으로 회전 → 컵 찾기 → 집기를 수행
  • 이미지 편집 분야에서
    입력 이미지와 사람이 작성한 지시문을 입력 받아서 InstructPix2Pix는 이미지 편집 수행

[여러 모델을 연결한 시스템]

  • LangChain이나 LLM을 이용하여 여러 모델을 조정하는 시스템
    • Visual ChatGPT, X-GPT, MM-REACT, VisProg, ViperGPT

⇒ 두 범주 모두 instruction-following agent를 구축한다는 목표를 가지고 있지만, 본 연구에서는 여러 작업을 수행할 수 있는 end-to-end 방식의 언어-비전 멀티모달 개발에 초점을 맞출 것

Instruction Tuning

  • 자연어 처리 분야에서는 GPT-3, T5, PaLM, OPT와 같은 LLM이 자연어 지시를 따르고 실제 작업을 수행할 수 있도록 하기 위해 instruction tuning 방법을 연구함

    • InstructGPT/ChatGPT, FLAN-T5, FLAN-PaLM, OPT-IML

    • instruction tuning을 통해 LLM의 Zero-shot, Few-shot 일반화 능력이 향상

      ⇒ 때문에 해당 아이디어를 NLP뿐만 아니라 CV에도 적용해보자!

  • 넓게보면, foundation model을 이용한 Teacher-Student Distillation 아이디어는 이미지 분류와 같은 다른 분야에서도 연구되어 옴

    • Flamingo

      • Zero-shot 작업 전이와 In-context Learning에서 뛰어난 성능을 보였음 → 멀티모달 분야의 GPT-3

        ✓ In-context Learning(ICL) — Few-shot learning

        모델 파라미터를 업데이트하지 않고, 프롬프트에 예시를 넣어 새로운 작업을 수행하게 하는 방법

        파인튜닝은 데이터를 넣음으로써 모델을 다시 학습시킴. 즉, 가중치가 바뀜

        • 데이터 → 모델학습 → 파라미터 변경 → 새로운 모델

        반면, ICL은 학습은 안하고, 프롬프트만 변경

        한국어 : 감사합니다.
        영어 : Thank you.

        한국어 : 좋은 아침입니다.
        영어 : Good morning.

        한국어 : 안녕하세요.
        영어 : ??

        ⇒ GPT는 Hello.로 답하는데 이건 학습한 것이 아니라 “지금 이 번역 패턴을 따라가면 되는구나”를 프롬프트에서 이해한 것

    • BLIP-2, FROMAGe, KOSMOS-1

      • 이미지-텍스트 쌍으로 학습된 대규모 멀티모달 모델
    • PaLM-E

      • Embodied AI를 위한 대규모 멀티모달 모델
  • 오픈 소스 LLM인 LLaMA를 기반으로 OpenFlamingo와 LLaMA-adapter는 LLaMA가 이미지 입력을 사용할 수 있는 오픈소스 연구이며 오픈소스 LLM 개발의 기반을 마련

    • 기존의 모델은 이미지를 이해하긴 하지만, instruction tuning을 하지 않았고, 멀티모달 성능이 일반 텍스트 전용 작업보다 부족하다는 문제

      ⇒ 본 논문에서 이러한 공백을 메우고자 함

  • 주의해야할 점은

    • Visual instruction tuning과 visual prompt tuning은 다르다.
      • visual instruction tuning은 모델의 instruction 수행 능력 향상 목적
      • visual prompt tuning은 모델을 새로운 작업에 적응시킬 때 적은 수의 파라미터만 학습하여 효율성을 높이는 것이 목적

3. GPT-assisted Visual Instruction Data Generation

  • CC와 LAION 등 이미지-텍스트 상으로 이루어진 공개 멀티모달 데이터세트는 풍부하지만, instruction-tuning에 필요한 멀티모달 instruction-following 데이터는 제한적

    • 부분적으로 사람들이 크라우드소싱을 통해 데이터를 만드는 것도 비용이 많이 듦

      ⇒ 본 논문에서는 이미지-텍스트 데이터를 기반으로 ChatGPT/GPT-4를 활용하여 멀티모달 instruction-following 데이터를 수집하는 방법을 제안함

  • 이미지 XvX_v와 여기에 대응하는 캡션 XcX_c가 주여졌을 때, 이미지 내용을 설명하도록 Assitant에 지시하는 질문 집합 XqX_q를 만듦

    • 본 논문에서는 GPT-4에게 이러한 질문 목록을 생성하도록 프롬프트를 제공함(부록 참조)

    • 이미지-텍스트 쌍을 instruction-following 형태로 확장하는 가장 간단한 방법은

      human: XqX_q XvX_v <STOP>
      Assistant: XcX_c <STOP>

      ⇒ 즉, 원래는 image → caption 구조였는데, 이제는 질문 + image → caption 구조로!

    • 하지만, 이런 단순작업으로는 질문과 답변 모두에서 다양성과 깊이 있는 추론을 하기엔 부족해짐

  • 이러한 문제를 해결하기 위해, 텍스트만 입력받는 GPT-4 또는 ChatGPT를 강력한 Teacher 모델로 활용하여 시각정보를 포함하는 Instruction 데이터를 생성함

    • 이미지를 텍스트 전용 GPT가 이해할 수 있도록 2가지 기호적 표현 사용

      ✓ 기호적 표현이란

      캡션과 BBox는 이미지를 그대로 사용하는 것이 아니라, 이미지를 “기호”나 “텍스트” 형태로 표현하는 것이라서 기호적 표현이라고 부름

      이미지

      • 픽셀들의 집합 (숫자 배열)
      [[123, 45, 200],
      [132, 50, 190],
      ...
      ]

      캡션

      • 강아지가 공원에서 놀고 있어요! 와 같이 언어로 변환한 것
      • 이미지 → 텍스트 이므로 기호를 이용한 표현

      BBox

      • BBox는 객체 이름(dog)와 위치좌표(x1x_1,y1y_1,x2x_2,y2y_2)로 이미지 표현
      Dog : (120, 50, 280, 320)
      
      Ball : (330, 210, 380, 260)
      
      Person : (20, 10, 170, 400)
      • 픽셀 자체가 아니라 추상화된 정보이므로 기호적 표현
    • 캡션은 일반적으로 다양한 관점에서 시각 장면을 설명함

    • BBox는 장면 속 객체 위치를 나타내며, 각 박스는 객체의 종류와 공간적 위치를 함께 표현함

      • 예시(부록)

        !image.png

    ⇒ 이러한 기호적 표현을 통해 LLM이 이해할 수 있는 시퀀스로 인코딩할 수 있게 됨

  • 본 논문에서는 COCO 데이터를 활용하여 세 종류의 instruction 데이터를 생성함

    • 사람이 몇 개의 예시(ICL의 seed example)를 설계하면, 그 예시를 보고 GPT가 나머지를 보고 스스로 생성함

[Conversation]

  • 사진에 대해 질문하는 사람과 Assistant 사이의 대화 설계
    • 답변은 assistant가 실제 이미지를 보고 답하는 것처럼 작성
    • 질문은 객체 종류, 객체 개수, 객체의 행동, 객체 위치, 객체간 상대적 위치 등 다양한 시각 정보를 담았음 + 명확한 답이 존재하는 질문만 활용

[Detailed Description]

  • 이미지에 대해 풍부하고 포괄적인 설명을 포함하기 위해 관련 질문 목록 설계
    • 각 이미지마다 질문 목록에서 하나를 무작위로 선택하여 GPT-4가 상세 설명을 생성하도록 함

[Complex Reasoning]

  • Conversation 과 Detailed Description은 시각적 내용에 집중하고 이를 바탕으로 깊은 추론 질문 생성

    • 답변은 일반적으로 엄격한 논리를 따라 단계적으로 추론하는 과정

      ex. 왜 그 사람은 우산을 쓰고 있을까? → 비가 오고 있고, 우산을 쓰는 게 자연스럽다 와 같은 추론 필요

⇒ 158,000개 고유한 언어-이미지 instruction 데이터 수집

  • 58,000개 → Conversation

  • 23,000개 → Detailed Description

  • 77,000개 → Complex Reasoning

  • ChatGPT와 GPT-4를 모두 활용하여 데이터를 생성해 본 후 성능 비교함

    • 객체 간의 위치 관계나 공간 추론이 필요한 질문에서는 GPT-4가 훨씬 정확하고 일관된 데이터를 만들어냄 → 최종 데이터 생성에는 GPT-4 사용!

    ✓ GPT-4 vs ChatGPT

    GPT-4는 언어 모델이고, ChatGPT는 그 모델을 이용하여 대화할 수 있도록 만든 서비스

    • 비유하자면, A18칩 = GPT-4, 아이폰 = ChatGPT

4. Visual Instruction Tuning

4.1 Architecture

  • 주요 목표는 사전학습된 LLM과 비전 모델의 능력을 모두 효과적으로 활용하는 것

  • 구조

    image → CLIP 비전 인코더 - Visual Features → Projection layer - vision tokens → Vicuna → answer

  • 파라미터 ϕϕ를 갖는 LLM fϕf_ϕ(⋅)로 Vicuna 모델 선택 → 당시 가장 뛰어난 instruction following 능력을 가지고 있었음

    ✓ 왜 Vicuna

    Meta의 LLaMA를 기반으로 Instruction Tuning하여서 만든 오픈소스 대화형 언어모델

    • CLIP이 이미지를 feature로 바꾸고, projection layer가 Vicuna가 이해할 수 있는 형태로 변환

    [상세]

    모델역할
    CLIP이미지를 Feature로 변환
    Projection Layer이미지 Feature를 Vicuna가 이해할 수 있는 형태로 변환
    Vicuna질문을 이해하고 자연어 답변 생성
    GPT-4학습용 Instruction 데이터 생성
    • 당시 GPT-4는 폐쇄형으로 가중치, 모델이 공개되어 있지 않아 공개된 Vicuna를 활용함
      • GPT-4는 데이터생성기 역할만 수행
  • 입력 이미지 XvX_v에 대해 사전학습된 CLIP ViT-L/14 비전 인코더를 사용

    → 시각 특징 ZvZ_v = gg(XvX_v)를 생성함

    • 즉, 이미지를 CLIP에 통과시키면서 이미지를 숫자로 표현 → ZvZ_v
      • XvX_v : 입력 이미지
      • g()g(⋅) : CLIP
      • ZvZ_v : 이미지 특징(feature)
  • 마지막 transformer 층 이전과 이후에 Grid feature를 모두 고려함

    • CLIP내부에는 transformer가 여러 층이 있는데 논문에서는 마지막 층의 직전 feature과 직후 feature 둘 다 실험해봤다는 뜻
  • CLIP에서 뽑은 이미지 특징을 단어 임베딩 공간으로 연결하기 위해 간단한 선형층 사용

    • Vicuna는 단어 임베딩 공간, CLIP의 feature는 이미지 feature공간에 있으니까 둘의 좌표계가 다르다는 문제 → 선형층에 넣자!

    • CLIP → 선형층 → LLM 구조라고 이해하면 됨

      ⇒ 즉, 우리가 학습가능한 projection matrix WW를 적용해서 이미지 특징인 ZvZ_v를 언어 임베딩 토큰 HvH_v로 변환
      → 이 임베딩 토큰 HvH_v는 단어 임베딩과 동일한 차원을 가짐

      • 여기서 projection matrix WW는 학습되는 가중치를 의미함

        CLIP → W → LLM 토큰

        ✓ LLM이 사용하는 임베딩 크기와 완전히 동일한 차원으로 만든다는 것이 핵심!

    Hv=WZv,H_v = W ⋅ Z_v, withwith Zv=g(Xv)Z_v = g(X_v)

    ⇒ 이렇게 시각 토큰의 시퀀스 HvH_v를 얻게 됨 (이미지를 하나의 단어처럼!)

    • 이러한 projection 방식(선형층 1개)은 매우 가볍기 때문에 실험을 빠르게 진행 가능하다!!
  • 이미지와 언어 표현을 연결하는 방법에는 선형층 1개만 사용하는 것뿐만 아니라, Flamingo의 Gated Cross-Attention이나 BLIP-2의 Q-former와 같은 방법도 있긴하다~ 이런 더 효과적이고 정교한 LLaVA 구조를 탐구하는 것은 향후 연구 과제로 남겨두겠다.

✓ 이 Architecture의 핵심 아이디어

  • 새로운 거대한 모델을 만드는 것이 아니라 이미 강력한 두 모델(CLIP, Vicuna)을 간단한 projection layer 하나로 연결했다는 것
    • CLIP은 이미지 숫자 특징 ZvZ_v로 변환
    • projection Matrix WW는 이 특징을 LLM이 사용하는 단어 임베딩 공간으로 옮김
    • 이렇게 변환된 visual token HvH_v를 vicuna에 입력하면, vicun는 이미지를 단어처럼 처리해서 질문에 답할 수 있음
  • 즉, LLaVA의 가장 큰 특징은 복잡한 멀티모달 구조가 아니라 간단한 연결만으로 사전학습된 모델을 잘 결합했다 라는 것

4.2 Training

  • 각 이미지 XvX_v에 대해서 우리는 multi-turn 대화 데이터 (Xq1,Xa1,,XqT,XaT)(X_q^1, X_a^1, … , X_q^T, X_a^T)를 생성함

    • T는 전체 대화(turn)의 수

    • XqtX_q^t : t번째 질문

    • XatX_a^t : t번째 답변

    • 이게 무슨 말이냐하면, 하나의 강아지 사진이 있을 때,

      • Q1: 어떤 동물? - A1: 강아지

      • Q2: 뭐하고 있음? - A2: 공보고 있음

      • Q3: 공은 무슨 색? - A3: 노란색!

        과 같이 여러번 이어지는 대화(Multi-turn 대화)를 하나의 학습 데이터로 활용함

  • 이때, 모든 답변을 assistant의 응답으로 간주해서 하나의 시퀀스로 구성

    → 질문과 답을 모두 이어 붙여서 하나의 긴 문장으로 만든다는 의미

    : LLM은 원래 토큰들의 긴 문장을 입력으로 받기 때문에 위와 같은 작업 수행

  • t번째 instruction (t번째 턴에서 human이 입력한 질문, 지시문)

    • 다시 한 번, 개념을 짚자면,

      Q1, Q2, Q3 = instruction

      A1, A2, A3 = assistant response

    • XinstucttX_{instuct}^t == {Randomly choose [Xq1,Xv] or [Xv,Xq1],t=1Xqt,t>1\begin{cases} \text{Randomly choose } [X_q^1, X_v] \text{ or } [X_v, X_q^1], & t=1 \\ X_q^t, & t>1 \end{cases}

      → 첫 번째 턴(t=1)에서는 [Xq1,Xv] or [Xv,Xq1][X_q^1, X_v] \text{ or } [X_v, X_q^1] 중 하나를 무작위로 선택한다.

      즉, Question → image 도 사용하고, image → Question 도 사용한다는 것(순서에 너무 민감하지 않도록 하기 위함)

      → 두번째 질문부터는 이미지는 이미 앞에서 입력했기 때문에, Q - A 구조만 넣음

      ⇒ 멀티모달 instruction-following 시퀀스 형식 완성!

  • LLM은 원래의 자기 회귀(Auto-regressive) 학습 목표를 사용해서 prediction token에 대해 instruction tuning을 사용함

    ✓ Auto-regressive

    이전에 생성한 단어(토큰)을 이용하여 다음 단어를 하나씩 순차적으로 생성하는 방식

    • 즉, 앞에서 생성한 결과를 다시 입력으로 사용하면서 문장을 이어가는 방식을 의미함

    ✓ GPT vs BERT

    GPT (Auto-regressive)BERT (Auto-encoding)
    다음 토큰 예측가려진 토큰 예측
    왼쪽 → 오른쪽 생성문장 전체를 동시에 봄
    텍스트 생성에 강함이해(분류, 검색 등)에 강함
    • 길이가 L인 시퀀스에 대해 목표 답변 XaX_a가 생성될 확률은
      이미지 XvX_v, instruction, 이전까지 생성된 답변 토큰들을 조건으로 각 토큰의 확률을 모두 곱한 값으로 정의

      p(XaXv,Xinstruct)=i=1Lpθ ⁣(xiXv,Xinstruct,<i,Xa,<i)p(X_a \mid X_v, X_{\mathrm{instruct}}) = \prod_{i=1}^{L} p_\theta\!\left( x_i \mid X_v, X_{\mathrm{instruct, <i }}, X_{a,<i} \right)

      • θ\theta : 학습 가능한 파라미터
      • Xinstruct,<iX_{\mathrm{instruct}, <i} : 현재 예측 토큰 xix_i 이전까지의 instruction 토큰
      • Xa,<iX_{a,<i} : 현재 예측 토큰 xix_i 이전까지의 answer 토큰

      ⇒ 보면 GPT의 Next Token Prediction과 유사한데,
      Question<Image>Thedogisrunning이면, LLM은 The를 맞추고 그 다음 dog, 다음에 is를 맞추는 형식.
      : 답 전체를 한 번에 맞추는 것이 아니라 토큰 하나씩 예측

    • 구현에 있어서,

      • Vicuna-v0를 따라 system message를 설정하고 <STOP> 토큰을 ###으로 설정

      • 모델은 assistant의 답변과 어디에서 멈출지()을 예측하도록 학습되고, 자기회귀 모델에서는 초록색 토큰(assistant의 답변 부분)만 Loss 계산에 사용

        (질문은 이미 입력으로 주어지니까)

  • LLaVA 모델 학습은 2단계의 instruction tuning 절차를 사용한다

Stage1: pre-training for feature Alignment

→ 이미지 특징(CLIP 출력)과 LLM의 단어 임베딩 공간을 서로 맞춰주는 것(Aligment)

  • 개념의 다양성 + 학습의 효율성을 고려하여 CC3M 데이터 세트를 필터링하여 59만 5천개의 이미지-텍스트 쌍 사용 (필터링과정은 부록에)

  • 이미지-텍스트 쌍은 3절에서 이야기한 것과 같이 단순 확장 방법을 이용하여 instruction-following 데이터로 변환

    • image → caption 을
      Human: Image + 이미지를 묘사해!(질문)
      → Assistant: Caption 형태

      ⇒ 이 하나의 쌍을 single turn 대화로 간주

  • XinstucttX_{instuct}^t == {Randomly choose [Xq1,Xv] or [Xv,Xq1],t=1Xqt,t>1\begin{cases} \text{Randomly choose } [X_q^1, X_v] \text{ or } [X_v, X_q^1], & t=1 \\ X_q^t, & t>1 \end{cases}

    의 입력 XinstucttX_{instuct}^t을 구성하기 위해, 이미지 XvX_v에 대해 간단히 설명하라는 질문 XqX_q를 무작위로 하나 선택

    → 정답 답변인 XaX_a는 원래 caption으로!

    즉, 질문은 새로 만들지만 정답은 원래 데이터세트에 있던 caption을 그대로 활용

  • 학습에 있어서 비전 인코더와 LLM의 가중치는 모두 고정(frozen)하고, projection matrix WW만 학습 가능한 파라미터로 둬서

    p(XaXv,Xinstruct)=i=1Lpθ ⁣(xiXv,Xinstruct,<i,Xa,<i)p(X_a \mid X_v, X_{\mathrm{instruct}}) = \prod_{i=1}^{L} p_\theta\!\left( x_i \mid X_v, X_{\mathrm{instruct, <i }}, X_{a,<i} \right) 의 우도를 최대화 시킴!

    → CLIP의 특징을 Vicuna가 이해할 수 있는 형태로 변환하는 것만 배우면 되니까, WW만 학습시킴

    ⇒ 이렇게되면 이미지 특징 HvH_v가 사전학습된 LLM의 단어 임베딩과 정렬될 수 있음

    ⇒ 즉, 고정된 LLM이 읽을 수 있도록 Visual tokenizer를 학습하는 과정

    (이미지를 LLM이 읽을 수 있는 시각 토큰으로 변환하는 방법을 배우는 것)

Stage2: Fine-tuning end-to-end

→ 본격적으로 LLaVA를 학습하는 단계

  • 비전 인코더(CLIP)의 가중치는 계속해서 고정해 놓고, projection layer와 LLM의 가중치를 함께 업데이트! (이제는 vicuna도 이미지를 잘 이해하도록 fine-tuning)
    • 학습가능한 파라미터 θ={W,ϕ}\theta = \{W, \phi\}

[Multimodal Chatbot]

  • 3절에서 생성한 15만 8천개의 언어-이미지 instruction 데이터로 fine-tuning을 진행하여 챗봇 개발
    • Conversation → multi-turn
    • Detailed description → single turn
    • Complex reasoning → single turn

[ScienceQA]

  • 정답뿐아니라 자세한 강의와 설명이 포함된 최초의 대규모 멀티모달 과학 문제 데이터세트
    • 각 문항에는 자연어 또는 이미지 형태의 문맥이 함께 제공됨
  • Assistant는 자연어로 추론 과정을 설명하고, 여러 선택지 중에서 하나를 정답으로 선택함
  • 이 데이터세트의 경우에는 single turn으로 구성되고, 문제와 문맥을 XinstructX_{instruct}로, 추론과정과 정답을 XaX_a로 사용

5. Experiments

  • 평가
    • LLaVA의 instruction-following 능력과 시각적 추론 능력을 multimodal chatbot 데이터세트와 scienceQA 데이터세트를 통해 확인
      • Multimodal chatbot: 사람처럼 이미지에 대해 대화할 수 있는지
      • ScienceQA: 이미지를 보고 과학 문제를 추론할 수 있는지
  • 학습환경
    • Vicuna의 하이퍼파라미터를 따라서, 모든 모델을 A100 GPU 8개를 사용해서 학습함
    • Stage1: 사전학습
      • 필터링된 CC-595K 데이터세트에서 1epoch, learning rate = 2x10^{-3}, 배치사이즈 = 128
    • Stage2
      • LLaVA-instruct-158K 데이터세트에서는 3epoch, learning rate = 2x10^{-5}, 배치사이즈 = 32로 fine-tuning 진행

5.1 Multimodal Chatbot

  • LLaVA의 이미지 이해 능력과 대화 능력을 보여주기 위해 챗봇 데모를 개발함
    • 시각적 입력을 얼마나 잘 이해하는지
    • instruction-following 능력을 잘 보여주는지를 연구
  • 이때, GPT-4논문에 제시된 이미지 문제를 가져와서 비교 진행
    • 멀티모달 GPT-4의 질문(prompt)와 응답(response)을 그대로 인용
    • 또한, BLIP-2와 OpenFlamingo 모델과도 같은 질문을 입력하여 응답 얻음

⇒ 즉, GPT-4 논문의 이미지와 질문을 활용하여, GPT-5, BLIP-2, OpenFlamingo, LLaVA의 응답을 비교함

모델질문 의도 이해장면 설명추론정확성
LLaVA✓ 사용자의 질문 의도에 맞게 답변✓ 왜 이상한지까지 설명높음
GPT-4높음
BLIP-2❌ 질문 의도를 반영하지 못함보통
OpenFlamingo❌ (다림질을 말리기로 오인)낮음
  • LLaVA는 비교적 작은 멀티모달 instruction-following 데이터세트(약 8만장의 고유 이미지)로 학습되었음에도, 이러한 예시들에서 멀티모달 GPT-4와 상당히 유사한 추론 결과를 보여줌
    • 도메인 밖의 이미지였음에도 굿굿!
  • 반면, BLIP-2와 OpenFlamingo는 단순 이미지 설명에 불과했음

Quantitative Evaluation

  • LLaVA의 성능을 체계적으로 이해하기 위해서 멀티모달 데이터에서의 instruction-following 능력을 측정하는 정량적 평가 지표 제안
    • 이때, GPT-4는 생성된 응답의 품질을 평가하는 역할
    • 평가 데이터: 이미지, 정답 텍스트 설명, 질문으로 구성
  • 이론적인 상한선을 근사하기 위해서 텍스트 전용 GPT-4가 질문과 정답 텍스트 설명을 이용해서 생성한 답변을 레퍼런스로 사용
    • 그니까 이미지를 텍스트로 잘 설명한 정보를 GPT-4가 받아서 답을 내놓기 때문에 이를 레퍼런스로 삼는다는 뜻
  • 두 모델의 응답을 얻은 후,
    질문, 시각 정보, 두 assistant의 응답을 텍스트 전용 GPT-4(judge)에 입력함
    • Question, Caption, LLaVA의 답변, GPT-4의 래퍼 답변 → 이렇게 받음
    • 그래서 도움이 되는 정도, 관련성, 정확성, 상세함 등을 평가하여 1-10점까지의 점수 부여 및 왜 이렇게 평가했는지에 대해서도 설명

[LLaVA-Bench(COCO)]

→ COCO 데이터세트를 활용하여 연구진이 새롭게 만든 평가용 벤치마크

  • COCO-Val-2014에서 30장의 이미지를 무작위로 선택

    → 3절에서 제안한 이미지 생성 파이프 라인을 통해 3가지 유형의 질문(conversation, detailed description, complex reasoning) 생성

    ⇒ 총 90개의 질문

  • 해당 벤치마크를 통해서 동일한 시각 입력(이미지)에 대해 모델의 정렬 특성과 능력을 평가함

  • 서로 다른 유형의 instruction-following 데이터 효과를 분석하기 위해서 학습 데이터세트를 변경하며 실험했음
    • instruction tuning을 적용하면 사용자 지시를 따르는 능력이 50점 이상 크게 향상됨
    • 소량의 detailed description과 complex reasoning 질문을 추가하는 것만으로도 모델의 전체 성능이 약 7점정도 향상됨
    • conversation 질문에 대한 성능도 향상 → 추론 능력 향상이 대화 능력을 보완함을 알 수 있음
    • 3가지 유형을 모두 사용했을 때, 85.1%로 가장 성능이 좋았음

[LLaVA-Bench(In-the-wild)]

→ COCO같은 일반적인 사진이 아니라 더 어려운 실제 이미지 사용

  • 실내, 실외 장면, 밈, 그림, 스케치 등 다양한 종류의 24개의 이미지와 60개의 질문을 수집하여 각 이미지마다 사람이 작성한 매우 상세한 설명과 적절한 질문을 연결함

  • visual instruction tuning 덕분에 LLaVA는 BLIP-2보다 29%, OpenFlamingo보다 48% 더 높은 성능을 달성
  • 정답 레이블을 입력으로 사용하는 텍스트 전용 GPT-4와 비교했을 때, LLaVA는 복잡한 추론 문제에서 81.7%의 상대 성능을 달성했고, 전체 점수는 67.3%정도

[Limitations]

  • LLaVA-Bench(In-the-wild)는 의도적으로 어렵게 설계되어 있고, 모델의 약점을 드러내기 위한 목적

  • 왼쪽 예시에서 식당 이름을 맞추기 위해서는

    • 광범위한 지식과 다국어 이해 능력이 있어야함
    • 반찬이 뭔지 설명하려면 모델이 인터넷에서 관련 멀티모달 정보를 검색할 필요가 있을 수도
  • 오른쪽 예시에서 요거트 브랜드를 정확히 인식하기 위해서는

    • 모델은 고해상도 이미지를 처리할 수 있어야하고 폭넓은 지식을 가지고 있어야함

    • 또한, 주목할만한 사례는 냉장고에 딸기, 요거트가 있는데 딸기맛 요거트가 있다고 판단함

      ⇒ LLaVA는 이미지를 패치들의 집합으로 인식해서 이미지 안의 복잡한 의미적 관계를 제대로 이해하지 못함

  • 본 연구의 LLaVA가 baseline이 되길 바라며, 본 연구가 LLM 개발에 도움이 되길 바람~!

5.2 ScienceQA

  • ScienceQA는 21,000개의 멀티모달 객관식 문제를 포함하고 있음
    • 3개의 과목, 26개의 주제, 127개의 카테고리, 379개의 기술에 걸쳐 다양한 도메인 포함
  • 데이터세트
    • 학습용: 12,726개
    • 검증용: 4,241개
    • 테스트용: 4,241개
  • 평가: 아래 모델들과 비교
    • GPT-3.5(chain-of-thought 사용/미사용)
    • LLaMA-Adapter
    • MM-CoT(Multimodal Chain-of-Thought) → 당시 SOTA

  • LLaVA

    • 마지막 레이어 이전 시각 특징 사용
    • 모델이 먼저 이유를 예측하고, 정답을 예측하도록
    • 12 epoch동안 학습

    ⇒ 결과적으로 90.92%의 정확도, 당시 SOTA 91.68%와 유사한 수치

  • LLM의 한계를 확인하기 위해

    • GPT-4에도 2-shot in-context learning을 적용하여 82.69%의 정확도를 달성함

      ⇒ GPT-3.5의 75.17%보다 절댓값 기준 7.52% 향상

  • 상당수의 문제에서 GPT-4는 이미지나 그래프 등의 문맥이 부족하다고 판단하여 답변하지 못했었음

    • 즉 GPT-4의 성능이 낮은 이유는 추론 능력이 부족한게 아니라 이미지를 볼 수 없기 때문

    ⇒ 그래서 LLaVA와 GPT-4의 결과를 결합하는 2가지 방법!

1. GPT-4 보완방식

  • GPT-4가 답변하지 못하는 경우에는 LLaVA의 예측 결과 사용
  • 90.97%의 정확도를 달성했고, 이는 LLaVA만 사용하는 것과 거의 동일

⇒ 그닥 효과x

2. GPT-4를 judge로 활용하는 방법

  • GPT-4와 LLaVA의 답이 다른 경우, GPT-4에 질문과 두 모델의 답변을 보여주고 최종 답을 선택하도록

    → chain-of-thought와 유사하지만 다른 모델의 외부 지식을 활용한다는 점에서 다름

  • 해당 방법은 92.53%의 SOTA 달성!

    ⇒ 어떻게 텍스트 전용 GPT-4가 이미지를 포함한 문제에서 전체 성능을 올릴 수 있었을까?

    • ex. 태양은 어느 방향에서 뜨는지와 같은 이미지없이 풀 수 있는 문제들도 있어서, GPT-4 judge가 이러한 경우를 식별해서 LLaVA의 일부 오류를 수정함

      ⇒ GPT-4를 앙상블에 활용한 최초의 사례

[Ablations]

  • Visual features

    • CLIP 비전 인코더의 마지막 레이어 특징을 사용하여 89.96%의 정확도를 얻었음

    • 즉, 마지막 이전 레이어의 특징을 사용했을 때보다 0.96% 낮음

      ⇒ CLIP의 마지막 레이어는 전역적이고 추상적인 이미지 특성에 더 집중하지만, 그 이전 레이어는 구체적인 이미지 세부 정보를 이해하는데 유용한 지역적 특징에 집중하기 때문!

  • Chain-of-thought

    • 모델이 정답을 먼저 생성할지 또는 추론과정을 먼저 생성할지를 결정하기 위한 실험

      • 정답먼저: 12epoch에서 89.77% 최고 정확도
      • 추론먼저: 6epoch에서 89.77%도달, 이후 더 오래 학습해도 추가적인 향상은 x

      ⇒ 수렴속도는 향상시키지만, 최종 성능 향상에는 크게 기여하진 않음

  • pre-training

    • pre-training을 제외하고 scienceQA에서 처음부터 학습시켜봤을때 정확도가 85.81%로 감소
  • model-size

    • 13B와 7B 비교
    • 89.84%로, 90.92%보다 1.08% 낮은 성능

6. Conclusion

  • Visual instruction tuning 효과 입증
  • 언어-이미지 기반의 instruction-following 데이터를 자동으로 생성하는 파이프라인 제안
    • 이를 바탕으로 사람 의도를 이해하고 시각적 작업을 수행하는 멀티모달 모델 LLaVA를 학습시킴
  • LLaVA는
    • ScienceQA에서 fine-tuning했을 때, SOTA 달성
    • multimodal chatbot로 fine-tuning 했을 땐 뛰어난 visual chat 능력을 보여줌
  • 또한, 멀티모달 instruction-following 능력을 평가하기 위한 최초의 벤치마크 제시
  • 우리 연구가 visual instruction tuning의 첫 번째 단계이고, 앞으로 추가적인 연구하시길~

0개의 댓글