LLaVA: Large Language and Vision Assistant (Visual Instruction Tuning)
https://arxiv.org/pdf/2304.08485
Last updated
Was this helpful?
https://arxiv.org/pdf/2304.08485
Last updated
Was this helpful?
사람은 Vision과 Language를 모두 활용해서 세상과 상호작용한다. 어떤 개념은 Vision이 더 잘 전달할 수도 있고 어떤 개념은 Text가 더 잘 전달할 수도 있을 것이다.
만약 승리한 경기에서 game footage를 분석해야하는 일을 해야한다면, 공이 어디에 있는지, 선수들의 위치는 어디인지, 선수가 어떤 행동을 취해야하는지 등을 detection하는 network를 학습시켜야 할 것이다. 그러나 이 방법은 각각의 데이터셋을 만들어야하고 각각의 모델을 학습시켜야하므로 비용이 비싸다.
3개의 모델과 데이터 세트들 대신 하나의 모델이 모든 것을 할 수 있다면 어떨까?
자연어로 작업을 설명할 수 있고, 모델이 이미지에서 찾고 있는 것을 동적으로 변경할 수 있다면 어떨까?
⇒ Visual Instruction Tuning을 제안한다. 이미 LLMs에서의 Instruction fine-tuning의 효과는 증명되었다.
본 논문은 기존의 Instruction Tuning을 language-image multimodal space로 확장하고자 함
Multimodal instruction-following data : ChatGPT/GPT4를 사용해 image-text 쌍을 적절한 형태로 바꾸는 관점과 파이프라인을 제시
Large multimodal models: Vision encoder로 CLIP과 Language Decoder로 Vicuna를 연결한 Large Multimodal Model(LMM)을 제안함
CC나 LAION, COCO같이 거대한 양의 multimodal datasets이 있지만 instruction following에 맞춰진 형태의 데이터셋은 아니다.
LLaVA를 위한 데이터 세트의 경우 이러한 image-caption pair 를활용해서 이미지에 대한 명령어와 대화를 모두 생성하는 광범위한 프롬프트와 함께 GPT-4에 입력해 만들었다.
시간 효율적
Image 와 Caption 가 있는 경우, 이미지를 서술해달라는 내용을 질문 로 한 데이터 셋 생성
→ 저비용으로 생성이 가능하지만 다양성과 심도 있는 Reasoning이 부족하다는 단점
GPT-4는 Visual Content를 인지할 수 없으므로 두 가지의 symbolic representations를 활용
Captions
다양한 관점에서 시각적 장면을 설명
Bounding boxes 장면의 객체 위치를 설명
GPT-4로 3개의 Instruction-Following Dataset의 형태로 구성
Conversation
주어진 Image에 대해 Assistant와 Human이 대화하는 형태
이미지 내 시각적 요소에 대한 질문
Detailed Description
Image에 대한 상세한 설명
Complex Reasoning
Conversation과 달리 심층적인 추론을 하는 질문 및 답변을 생성
Conversation : 58,000개 / Detailed Description: 23,000개 / Complex Reasoning: 77,000개 구축
Primary goal pre-trained LLM과 pre-trained visual model을 잘 활용
LLM: Vicuna
Vision encoder: CLIP with ViT-L/14
이미지 를 visio encoder에 넣어서 visual feature 를 획득
Language Model의 Word Embedding Space와 동일한 차원을 갖도록 에 trainable projection matrix 를 통과시켜 획득
여기선 단순하게 projection matrix W(Linear layer)를 사용했지만 Flamingo 처럼 gated cross-attention을 사용할 수도 있고 BLIP-2처럼 Q-former를 사용할 수도 있을 것
각 Image 에 대해, Multi-turn conversation Data 구축
각 Conversation 답변을 Assistant의 답변으로 간주하고 t번째 instruction은 아래처럼 설정
⇒ 일관된 format의 multimodal instruction-following 시퀀스를 만들 수 있음
Sequence 길이가 L일 때, 정답 에 대한 확률은 아래와 같이 계산
Auto-Regressive Model에서 초록색 부분의 Sequence/Tokens만 Loss 계산에 이용
초록색 부분은 모델이 예측해야할 답변 부분을 나타내며, loss를 이 부분에 집중함으로써 모델이 올바른 출력을 생성하도록 학습할 수 있다.
595,000개의 Image-text pair로 필터링한 CC3M 데이터셋으로 Pre-training 단계를 거침
이미지에 대한 간단한 요약을 요청하는 질문 에 대해 Ground-truth prediction 는 그림의 원 Caption으로 설정
질문은 original caption에 기반해 GPT-4로 생성
Visual Encoder인 ViT와 LLM은 freeze하고 Projection weights 만 학습시켜 image feature와 text feature를 Alignment 시키고자 함
앞서 생성한 158,000개의 Instruction-Following Dataset으로 fine-tuning 단계를 거침
Visual Encoder의 Weight는 freeze하고 Projection layer와 LLM 모델의 weight 업데이트
Pre-training
GPU: A100 X 8
Dataset: 595k CC
Batch-size: 128
Epoch: 1
Learning Rate: 2e-3
4 hours
Fine-tuning
GPU: A100 X 8
Dataset: 158k - LLaVA-instruct / ScienceQA
Batch-size: 32
Epoch: 3
Learning Rate: 2e-5
10 hours / 4 hours
Judge model로 GPT-4를 사용해 response의 quality 평가
Helpfulness, relevance, accuracy를 고려한 1~10점 사이 점수
Instruction Tuning의 효과가 뛰어남을보임
Detailed Description, Complex reasoning이 도움이 됨
ScienceQA는 이미지를 포함한 21K의 multiple choice question을 답하는 벤치마크셋
LLaVA 모델만으로도 SoTA에 근접한 성능
LLaVA와 GPT-4의 답변이 다르면 GPT-4에게 답변을 넣고 최종 결론을 요구한 경우 SOTA 달성
GPT-4를 활용해 Data Generation을 할 때 Language-only LLM이 인식할 수 있는 형태로 Image를 encoding하는 방식을 제안했다.
symbolic representations
모델 구조
Vision Encoder로 CLIP, Language Decoder로 Vicuna를 결합한 형태
Visual feature를 Language Model의 Word Embedding Space와 동일한 차원을 갖도록 하기 위해 projection layer로 단순한 Linear Layer를 사용
단순한 lienar projection을 사용해서 language와 vision을 연결했다는게 장점 같음
단순해서 단점이라고 볼 수도 있겠는데 좀 더 성능을 높이려면 이 부분을 다르게 하면 된다고 생각함 ⇒ 이 부분을 LLaVA-1.5에서 개선했다고 함
이 LLaVA 모델을 기반으로 다양한 자매품들이 있음 (LLaVA-Med, Video-LLaVA 등)
GPT-4가 생성한 데이터를 가지고 GPT-4로 평가한다는 것이, 평가하는 과정에서 biased 할 것 같다는 생각이 든다. (Flamingo 같은 경우 training 데이터에서 GPT-4가 만든걸 사용하지 않았다.)