Загружаем каталог…
Загружаем каталог…
LLaVA: Visual Instruction Tuning Visual Instruction Tuning Haotian Liu, Chunyuan Li, Qingyang Wu, Yong Jae Lee NeurIPS 2023 기존 Vision-Language Model은 image captioning, VQA, detection 등 다양한 visual task에서 좋은 성능을 보여왔다. 하지만 많은 경우 수행해야 하는 task가 모델이나 학습 방식에 미리 정해져 있다는 한계 가 있었다. 반면 Large Language Model은 자연어 instruction 자체를 하나의 universal interface 로 사용할 수 있다. "요약해줘" "번역해줘" "둘을 비교해줘" "이유를 설명해줘" 하나의 모델이 instruction에 따라 서로 다른 task를 수행할 수 있는 것이다. LLaVA는 여기서 출발한다. LLM에서 효과적이었던 Instruction Tuning을 Vision-Language Multimodal 영역으로 확장하면 어떨까? 이를 위해 LLaVA는 GPT-4를 이용해 Visual Instruction Data를 생성하고, CLIP Vision Encoder와 Vicuna를 연결해 Visual Instruction Tuning 을 수행한다. 1. Background 1.1 기존 Vision-Language Model의 한계 기존 vision model은 이미 여러 task를 수행할 수 있었다. Classification Image → Class Detection Image → Bounding Boxes Captioning Image → Caption 하지만 대부분은 수행할 task가 어느 정도 모델 설계에 암묵적으로 포함 되어 있었다. 예를 들어 captioning model의 기본 interface는 보통 Image → "A dog is running in a park." 처럼 이미지를 설명하는 것이다. 사용자가 갑자기 "이 장면에서 이상한 점은 뭐야?" "이 사람이 어떤 어려움을 겪고 있는 것 같아?" "다음에 무슨 일이 일어날 것 같아?" 처럼 자연어로 원하는 task를 자유롭게 지정하기는 어렵다. 즉 기존 모델에서도 language를 사용했지만, 주로 visual information을 language semantics로 표현하는 수단 으로 사용되었다. LLaVA는 language의 역할을 한 단계 확장한다. Language를 이미지 설명의 결과물이 아니라, 사용자가 원하는 task를 지정하는 interface 로 사용한다. 1.2 Instruction Tuning LLM의 기본 pre-training은 보통 이전 token을 보고 다음 token을 예측하는 방식이다. 즉 모델은 다음 확률을 학습한다. $$ P(x_t \mid x_{<t}) $$ 하지만 next-token prediction을 잘한다고 해서 모델이 사용자의 instruction을 반드시 잘 따르는 것은 아니다. 그래서 다음과 같은 형태의 데이터를 추가로 학습한다. Instruction: Summarize the following paragraph. Input: ... Response: ... 즉, Instruction + Input → Response 형태로 supervised fine-tuning을 수행한다. 이를 Instruction Tuning 이라고 한다. 중요한 점은 Instruction Tuning이라고 해서 새로운 language modeling objective를 사용하는 것은 아니라는 것이다. 여전히 정답 response를 token 단위로 생성하도록 학습한다. $$ \mathcal{L} = -\sum_t \log P_\theta (y_t \mid x, y_{<t}) $$ 여기서 x 는 instruction과 input이고, y 는 정답 response이다. Instruction Tuning의 핵심은 모델이 다양한 task를 각각 별도의 classifier처럼 배우는 것이 아니라, 자연어 instruction 자체를 task specification으로 사용하는 방법을 학습한다는 것 이다. 이러한 학습은 새로운 instruction에 대한 zero-shot / few-shot generalization에도 도움이 된다. 2. Visual Instruction Tuning 그렇다면 Instruction Tuning을 multimodal 환경으로 확장하면 어떻게 될까? 기존 Instruction Tuning이 Instruction → LLM → Response 이었다면 LLaVA는 Image + Instruction → Multimodal LLM → Response 로 확장한다. 이를 논문에서는 Visual Instruction Tuning 이라고 부른다. 예를 들어 같은 이미지라도 instruction에 따라 task가 달라질 수 있다. Image + "Describe this image." → "A dog is running in a park." Image + "What color is the dog?" → "Brown." Image + "What is unusual about this scene?" → 상황에 대한 설명 Image + "What might happen next?" → visual reasoning 단순히 Image → Caption 을 생성하는 것이 아니라, Image와 Language Instruction을 함께 보고, 사용자가 원하는 형태의 Response를 생성하는 것 이 목표다. 3. GPT-assisted Visual Instruction Data Generation Visual Instruction Tuning을 하려면 당연히 다음과 같은 데이터가 필요하다. Image + Instruction + Response 문제는 당시 이런 multimodal instruction-following data가 충분하지 않았다는 것이다. 반면 이미 세상에는 COCO, CC, LAION과 같은 데이터셋을 통해 Image + Caption 형태의 데이터가 매우 많이 존재했다. LLaVA는 여기서 기존 Image-Text Pair를 GPT-4를 이용해 Instruction-following Data로 변환 한다. 3.1 가장 단순한 방법 이미 이미지와 caption이 있다면 다음처럼 바꿀 수 있다. Human: Describe this image. Assistant: [Original Caption] 논문에서 이미지, caption, question을 각각 X_v , X_c , X_q 라고 하면 대략 Human: X_q + X_v Assistant: X_c 형태가 된다. 하지만 이렇게 단순하게 만들면 대부분의 질문이 Describe this image. What is shown in the image? 와 비슷해진다. 따라서 instruction과 response 모두 다양성이 부족하고, 깊은 reasoning을 학습시키기도 어렵다. 3.2 GPT-4는 이미지를 못 보는데 어떻게 데이터를 만들까? 당시 사용한 GPT-4는 text-only model이었다. 즉 GPT-4에게 실제 이미지를 직접 보여줄 수 없었다. 그래서 LLaVA는 이미지를 대신 표현할 수 있는 두 종류의 symbolic representation 을 사용한다. Captions 하나의 이미지를 여러 관점에서 설명하는 caption을 제공한다. A group of people standing outside a black vehicle. People try to fit all their luggage in an SUV. The SUV is being packed for a trip. Bounding Boxes 이미지 안에 어떤 object가 있고 어디에 위치하는지를 함께 제공한다. person: [x1, y1, x2, y2] backpack: [x1, y1, x2, y2] suitcase: [x1, y1, x2, y2] 즉 실제 흐름은 다음과 같다. Image ↓ Captions + Bounding Boxes ↓ Text-only GPT-4 ↓ Instruction + Response 이미지를 직접 보여주는 대신, LLM이 읽을 수 있는 textual / symbolic representation으로 이미지를 표현한 것 이다. Table 1의 위쪽에는 GPT-4에게 제공한 Captions + Bounding Boxes 가 있고, 아래쪽에는 GPT-4가 생성한 세 종류의 response가 있다. 중요한 점은 Table에 보이는 실제 이미지는 GPT-4에게 입력되지 않았다는 것 이다. 3.3 세 종류의 Instruction Data LLaVA는 GPT-4를 이용해 세 종류의 데이터를 생성한다. Conversation 이미지에 대해 자연스럽게 질문하고 답하는 형태이다. 질문에는 다음과 같은 내용이 포함된다. Object type Object counting Object action Object location Relative position Q: What type of vehicle is featured in the image? A: The image features a black SUV. 특히 확실하게 답할 수 있는 질문만 생성하도록 GPT-4에게 지시 한다. Detailed Description 단순 caption보다 훨씬 상세하게 이미지를 설명하도록 한다. Describe the following image in detail. 와 같은 instruction에 대해, 누가 어디에 있고, 어떤 물체가 있으며, 무엇을 하고 있고, 전체 장면이 어떤 상황인지 까지 자세하게 생성한다. Complex Reasoning 마지막은 이미지에서 직접 보이는 정보만 설명하는 것이 아니라, 이를 기반으로 reasoning하도록 한다. 예를 들어 많은 짐을 SUV에 넣고 있는 이미지에서 Q: What challenges do these people face? 라고 질문하면, 많은 짐을 제한된 차량 공간에 효율적으로 배치해야 하며, 승객의 공간과 운전자의 시야도 고려해야 한다. 와 같은 reasoning response를 생성한다. 즉 Visual Evidence ↓ Reasoning ↓ Response 형태를 학습시키려는 것이다. 최종적으로 총 158K 개의 instruction-following sample을 생성한다. Type Samples Conversation 58K Detailed Description 23K Complex Reasoning 77K Total 158K 3.4 Prompt는 어떻게 설계했을까? GPT-4에게 단순히 데이터를 만들어달라고 요청한 것은 아니다. Prompt에서는 다음과 같은 조건을 명시했다. 다양한 종류의 visual question을 생성할 것 확실하게 답할 수 있는 질문만 생성할 것 Object count, action, location, relative position 등을 포함할 것 필요한 경우 complex reasoning도 포함할 것 사람이 작성한 few-shot example을 참고할 것 즉 LLaVA의 synthetic data는 GPT-4 자체의 성능뿐만 아니라 prompt design과 few-shot examples에도 크게 의존한다. 4. LLaVA Architecture 이제 이렇게 만든 데이터로 학습할 실제 모델을 보자. LLaVA의 구조는 생각보다 매우 단순하다. 전체 구조를 단순화하면 다음과 같다. Image ↓ CLIP Vision Encoder ↓ Visual Feature ↓ Linear Projection ↓ Visual Tokens \ → Vicuna → Response / Language Instruction 4.1 Vision Encoder 입력 이미지를 X_v 라고 하자. LLaVA는 pretrained CLIP의 ViT-L/14 를 Vision Encoder로 사용한다. Vision Encoder를 g 라고 하면, $$ Z_v = g(X_v) $$ 이다. 여기서 Z_v 는 이미지 하나를 나타내는 단일 값이 아니라, ViT가 image patch들을 처리해서 만든 visual feature sequence 이다. 개념적으로는 다음처럼 생각할 수 있다. $$ Z_v = [z_1, z_2, \cdots, z_N] $$ 즉 이미지가 여러 patch로 나뉘고 각각에 대응하는 visual representation이 만들어진다. Image ↓ Image Patches ↓ CLIP ViT ↓ z1, z2, ..., zN 4.2 Linear Projection 문제는 CLIP이 만든 visual representation을 Vicuna에 그대로 넣을 수 없다는 것이다. CLIP의 hidden representation과 Vicuna가 사용하는 word embedding은 서로 다른 representation space를 사용한다. 그래서 LLaVA는 학습 가능한 linear projection W 를 사용한다. $$ H_v = W Z_v $$ 여기서 Z_v : CLIP이 만든 visual feature W : trainable projection matrix H_v : LLM이 사용할 visual token 이다. Projection 이후 H_v 는 LLM의 word embedding과 동일한 dimensionality를 갖는다. 중요한 점은 이것이 단순히 숫자의 dimension만 맞춰주는 것 은 아니라는 것이다. Training을 통해 W 는 CLIP의 visual representation을 LLM이 사용할 수 있는 representation으로 mapping 하도록 학습된다. 결과적으로 $$ H_v = [h_1, h_2, \cdots, h_N] $$ 이라는 visual token sequence 를 얻는다. 4.3 Visual Token과 Language Token 사용자의 language instruction 역시 token embedding으로 변환된다. 이를 H_q 라고 하면 LLM에는 결국 Visual Tokens H_v + Language Tokens H_q 가 함께 들어간다. 즉 LLM 입장에서는 대략 [visual][visual][visual] ... [visual] [What][is][happening][in][this][image][?] 처럼 하나의 multimodal token sequence를 처리한다고 볼 수 있다. 이 부분은 이후 Efficient MLLM 연구에서도 중요하다. LLaVA는 여러 image patch에서 만들어진 visual token들을 LLM으로 전달한다. 그러면 자연스럽게 다음 질문이 생긴다. 이 많은 visual token을 정말 모두 LLM에 넣어야 할까? 이 질문이 이후 visual token pruning, selection, adaptive visual compute 등의 연구로 이어진다. 4.4 BLIP-2와 비교하면? BLIP-2를 먼저 읽었다면 구조 차이가 더욱 명확하다. BLIP-2 LLaVA Vision Encoder Frozen Vision Encoder CLIP ViT-L/14 Connector Q-Former Linear Projection 핵심 Vision-Language representation bridging Visual Instruction Following 학습 특징 Q-Former 중심 Instruction Data 중심 BLIP-2는 Vision Encoder와 LLM 사이에 비교적 복잡한 Q-Former 를 사용한다. 반면 LLaVA는 단순한 Linear Projection만 사용한다. 논문에서도 이러한 lightweight architecture를 선택함으로써 data-centric experiment를 빠르게 반복할 수 있었다 고 설명한다. 즉 LLaVA의 핵심 contribution은 복잡한 connector 자체보다는 Visual Instruction Data와 Training 방식 에 더 가깝다. 5. Training Objective LLaVA의 training objective 자체는 특별한 multimodal loss가 아니다. 기존 LLM처럼 autoregressive next-token prediction 을 사용한다. Assistant response를 X_a 라고 하면, $$ p(X_a \mid X_v, X_{\text{instruct}}) = \prod_{i=1}^{L} p_\theta \left( x_i \mid X_v, X_{\text{instruct}}, X_{a,<i} \right) $$ 이다. 복잡해 보이지만 의미는 단순하다. 이미지 + instruction + 지금까지 생성한 answer token을 보고 다음 answer token을 예측한다. 예를 들어 정답이 The dog is running. 이라면, $$ P(\text{The} \mid Image, Instruction) $$ 다음으로 $$ P(\text{dog} \mid Image, Instruction, \text{The}) $$ 다음으로 $$ P(\text{is} \mid Image, Instruction, \text{The dog}) $$ 를 차례대로 학습하는 것이다. 또한 loss는 Assistant가 생성해야 하는 response token에 대해서만 계산 한다. Human: What is happening in this image? → Loss X Assistant: A dog is running in the park. → Loss O Human instruction은 모델이 맞혀야 하는 target이 아니라 response를 생성하기 위한 condition 이다. 6. Two-Stage Training LLaVA는 한 번에 모든 모델을 학습하지 않고 두 단계로 나눈다. 6.1 Stage 1: Pre-training for Feature Alignment 첫 번째 단계의 목적은 CLIP과 Vicuna를 연결하는 것 이다. CLIP Vision Encoder → Frozen Projection W → Train Vicuna → Frozen 사용하는 데이터는 CC3M에서 filtering한 595K image-text pairs 이다. 각 sample은 단순한 형태로 바꾼다. Image Question: Describe this image briefly. Answer: [Original Caption] 이 단계에서 학습되는 parameter는 오직 projection W 뿐이다. $$ \theta = W $$ 즉 CLIP도 이미 충분히 좋은 visual representation을 가지고 있고, Vicuna도 이미 language를 잘 처리하므로 둘을 다시 학습시키지 않는다. 그 대신 CLIP Representation ↓ W ↓ LLM Representation 을 연결하는 projection만 먼저 학습한다. 논문에서는 이를 training a compatible visual tokenizer for the frozen LLM 이라고 표현한다. 즉 frozen LLM이 이해할 수 있는 형태로 visual feature를 변환하는 방법을 먼저 배우는 단계라고 생각하면 된다. 6.2 Stage 2: Fine-tuning End-to-End Stage 1에서 vision-language 연결을 만들어 놓았다면, 이제 실제 instruction-following을 학습한다. CLIP Vision Encoder → Frozen Projection W → Train Vicuna → Train 학습 가능한 parameter는 $$ \theta = {W,\phi} $$ 이다. 여기서 W 는 projection parameter이고, φ 는 Vicuna parameter이다. 이 단계에서는 앞에서 만든 LLaVA-Instruct-158K 를 사용한다. 즉 실제로 Image + Instruction → Response 를 학습한다. 두 stage를 정리하면 다음과 같다. Stage 1 Stage 2 목적 Feature Alignment Instruction Following Vision Encoder Frozen Frozen Projection Train Train LLM Frozen Train Data CC-595K LLaVA-Instruct-158K 형태
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
LLAVA - Visual Instruction Tuning (NeurIPS 2023). LLaVA: Visual Instruction Tuning Visual Instruction Tuning Haotian Liu, Chunyuan Li, Qingyang Wu, Yong Jae Lee NeurIPS 2023 기존 Vision-Language Model은 image captioning, VQA, detection 등 다양한 visual task에서 좋은 성능을 보여왔다. 하지만 많은 경우 수행해야 하는 task가 모델이나 학습 방식에 미리 정해져 있다는 한계 가 있었다. 반면 Large Language Model은 자연어 instruction 자체를 하나의 universal interface 로 사용할 수…
Открыть источник