Visual Instruction Tuning

FSA·2024년 11월 22일
0

VLM

목록 보기
1/4

0. 들어가기 전에

0.0. reference

0.1. Instruction Tuning?

0.2. 심화: 다음 논문


1. 본문

  • 언어 전용 GPT-4를 사용하여, 멀티모달 언어-이미지 instruction-following 데이터를 생성하려는 첫 시도를 제시
  • 이 모델은 시각 인코더(CLIP)언어 모델(Vicuna 언어 디코더)을 결합하여 시각적 및 언어적 지시를 따름
    • 구조: 시각적 특징과 언어 임베딩을 정렬하는 투영 행렬(W) 사용. (linear layer)

1.1. instruction-following dataset 만들기

1.1.0. 간단한 방법: image captioning dataset 그대로 활용하기

  • 이미지(Xv)-caption_text(Xc) pair(image captioning dataset)을 이용해서, instruction following dataset 생성
    • instruction following dataset
      • input: 이미지(Xv) + Text prompt for question (Xq)
      • ouput: caption_text(Xc)
  • Text prompt for question (Xq):
    • 위 그림의 왼쪽 질문들은, 연구자들이 임의로 생성한 text들로, 랜덤하게 1개 샘플된다.
  • 이 데이터셋을 통해 통해 W를 pre-training 시킵니다.(첫번째 학습 단계)
    • 이미지 tokentext token과 align 시키기 위해
  • 고퀄리티(conversation / detailed description / complex reasoning 등을 전부 포함한)의 데이터가 추가로 필요!
    • language only GPT로 데이터를 만들어보자!
    • but, language only GPT는 사진을 input으로 넣을 수 없는데...?

1.1.1. language-only GPT4를 이용하여 고퀄리티 instruction-following dataset을 생성

한계점 1 (이미지 인식 못하는 GPT4)에 대한 해결책

  • 이미지에 대한 여러 캡션이 있는 데이터셋을 활용하여 -> Language-only GPT4가 데이터를 생성하도록 해보자.
  • language only GPT 는 이미지를 인식하지 못하므로, 이미지를 text형태의 설명으로 대체하여 넣어줍니다.
    • (기존 captioning datsets의 GT output인) image에 대한 여러 captions를 사진의 설명으로 GPT에 넣어줍니다.
  • 뿐만 아니라, 이미지를 prompt에 넣을 수 없는 문제를 추가적으로 해결하기 위해,
    • 여러 class와 bounding box에 대한 정보도, 아래와 같이 text로 넣어줍니다.

한계점 2 (instruction following dataset의 복잡성 부족)에 대한 해결책

1. Conversation 형태 데이터 생성
  • Input의 왼쪽 아래 글이, (이미지 내의 시각적 요소 자체에 대한) 대화 형태의 dataset을 만들기 위한, 특수한 input text.
    • Ask diverse questions and give corresponding answers.가 포인트!
  • Language-only GPT4가 답변한 오른쪽 ouput의 Question-Answer pair가, 우리가 모은 데이터셋이다!
    • VLM Fine-tuning 할 때, input: 사진 + Question(사진 오른쪽 output)
    • VLM Fine-tuning 할 때, gt output: Answer (사진 오른쪽 output)
2. Detailed Description 형태 데이터 생성
  • 왼쪽 Input의 많은 질문들 중 하나를, 매번 Random sample하여 input으로 넣어줌
  • 우리가 생성한 데이터셋
    • VLM Fine-tuning 할 때(두번째 학습 단계), input: 사진 + Question(사진 왼쪽 하단)
    • VLM Fine-tuning 할 때, gt output: Answer (사진 오른쪽 output)
3. Complex Reasoning 형태 데이터 생성
  • Language-only GPT4가 답변한 오른쪽 ouput의 Question-Answer pair가, 우리가 모은 데이터셋!
    • VLM Fine-tuning 할 때, input: 사진 + Question(사진 오른쪽 output)
    • VLM Fine-tuning 할 때, gt output: Answer (사진 오른쪽 output)

1,2,3에 대한 예시
  • 1.1.2. Table 1
    • 아래의 예시는, GPT를 프롬프트하는 데 사용되는 캡션 및 박스와 같은 상황을 보여주며, 세 가지 유형의 응답을 제시
    • 시각적 이미지는 GPT를 프롬프트하는 데 사용되지 않지만, 독자의 이해를 위해 참조용으로 제공됩니다.

2. Architecture


3. Training

3.1. 학습 데이터 format에 대한 설명

  • 표 2: 모델 학습에 사용된 입력 시퀀스.
    여기서는 두 개의 대화 턴만 예시로 들었지만, 실제로는 지침 준수 데이터에 따라 턴의 개수가 달라집니다. 현재 구현에서는 Vicuna-vO [9]를 따라 시스템 메시지(system-message)를 설정하고, «STOP>은 ###로 설정합니다.
    모델은 assistant의 답변종료 위치를 예측하도록 학습되며, 따라서 초록색으로 표시된 시퀀스/토큰오토리그레시브(auto-regressive) 모델에서 손실(loss)을 계산하는 데 사용됩니다.

3.2. 구체적 학습 방법

  • 위 마지막 수식이 말하는 바는, 첫번째 지시어 때만 image(Xv)를 같이 넣어준다는 뜻이다.

3.2.1. pretraining

  • image captions(간단한 방법: image captioning dataset 그대로 활용 참고)를 활용하여, visual tokenizer을 LLM에 호환 가능하도록 W 만 학습
  • 위 1.1.0. 에서 설명했었음

3.2.2. Fine-tuning

    1. 위에서 언급한 language-only GPT4를 이용하여 만든 instruction-following dataset로 학습!
    1. 과학 QA 데이터인 "Science QA" 데이터로 학습!
  • 이는 모델의 제로샷 능력(새로운 작업을 학습 없이 수행하는 능력)을 크게 향상

4. 그 외

  • 새로운 벤치마크(LLaVA-Bench)를 제시하고 모델과 데이터를 공개
    • visual instruction following에 대한 향후 연구를 촉진하기 위해 -> 다양한 응용 지향 작업을 포함하는 두 가지 evaluation benchmarks를 구성
  • 성능
    • Science QA에서 최첨단 성능 달성.
    • 멀티모달 GPT-4와 비교 가능한 강력한 멀티모달 채팅 능력.

6. Appendix

  • TODO
    • 아래 내용에 대해 공부하기

profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글