논문명: Visual Instruction Tuning
저자: Haotian Liu, Chunyuan Li, Qingyang Wu, Yong Jae Lee
게재지: NeurIPS 2023
URL: https://arxiv.org/abs/2304.08485
논문명: Improved Baselines with Visual Instruction Tuning
저자: Haotian Liu, Chunyuan Li, Yuheng Li, Yong Jae Lee
게재지: CVPR 2024
LLaVA-1
서론
이전의 사전학습된 vision-Language model 은 이미지 분류, 객체 탐지, 이미지 캡셔닝과 같은 다양한 시각 작업을 수행할 수 있었습니다. 그러나 사용자의 자유로운 질문과 지시를 이해하고, 대화형으로 답변하는 범용 assistant로 활용하기에는 한계가 있었습니다.
반대로 instruction tuning이 적용된 LLM은 사용자의 다양한 자연어 요청을 이해하고 수행할 수 있었지만, 이미지와 같은 시각 정보를 직접 처리할 수 없었습니다.
기존의 멀티모달 연구에서는 이러한 간극을 해결하기 위해 별도의 모듈을 추가했습니다. 예를 들어 BLIP-2는 frozen vision encoder와 LLM 사이에 학습 가능한 Q-Former를 사용했으며, Flamingo는 언어 모델 내부에 gated cross-attention layer를 삽입했습니다.
LLaVA는 이러한 복잡한 구조 없이도 비전 모델과 언어 모델을 효과적으로 연결할 수 있는지를 탐구했습니다. 이를 위해 CLIP ViT-L/14를 visual encoder로 사용하고, Vicuna를 language model로 사용했으며, 두 모델 사이에는 하나의 선형 projection layer만을 배치했습니다.
따라서 LLaVA의 핵심은 새로운 복잡한 구조를 설계하는 것보다는 기존의 이미지-텍스트 데이터를 instruction-Following 형식으로 변환하고, 이를 이용해 언어 모델에 시각적 지시 수행 능력을 부여하는 데 있습니다.
모델 구조
LLaVA는 다음 세 요소로 구성됩니다. (아래 그림 참고)
- Vision Encoder: CLIP ViT-L/14
- Connector: Linear projection layer
- Language Model: Vicuna-13B
입력 이미지 $X_v$는 먼저 224x224 크기로 조정된 뒤 CLIP ViT-L/14에 입력됩니다. 이후 CLIP은 이미지를 14x14 크기의 패치로 나누고, 전체 이미지는 256개의 패치(16x16)로 변환하게 됩니다. 각 패치는 하나의 visual token이 되며, 1024-dim으로 표현됩니다.
이후 visual token은 linear projection layer를 통과하며, 이 계층에서 각 시각 토큰의 특징 크기를 1024-dim에서 5120-dim으로 변환합니다. 이는 CLIP이 생성한 시각 특징을 Vicuna가 사용하는 text embedding 공간에 맞추기 위한 과정입니다. 변환 이후에도 visual token의 개수는 256개로 유지되지만, 각 토큰의 특징 크기는 5120-dim이 됩니다.
텍스트 입력 $X_t$는 tokenizer를 통해서 $N$개의 text token으로 분리되고, 각 text token은 Vicuna의 embedding space를 거치게 되면서 5120-dim 벡터로 변환됩니다.
논문에는 서로 다른 경로로 만들어진 visual embedding과 text embedding이 어떻게 하나의 시퀀스로 결합되는지 구체적으로 언급되어 있지 않고, visual embedding을 텍스트 시퀀스의 해당 위치에 삽입한다고만 서술하는데, 깃허브 공식 코드의 구현을 보면 다음과 같습니다.
LLaVA 1.0 코드 구현 (
https://github.com/LLaVA-Annonymous/LLaVA)원본 prompt에는 이미지가 삽입될 위치를 나타내는
\[\langle\texttt{image}\rangle \longrightarrow \langle\texttt{im\_start}\rangle \underbrace{ \langle\texttt{im\_patch}\rangle \cdots \langle\texttt{im\_patch}\rangle }_{256\text{개}} \langle\texttt{im\_end}\rangle\]<image>placeholder가 존재합니다. 전처리 과정에서는 하나의<image>를<im_start>, 256번 반복된<im_patch>,<im_end>가 순서대로 배치된 형태로 변환합니다.여기서 256개의
<im_patch>는 서로 다른 token이 아니라, 동일한 special token이 256번 반복된 것입니다. 이후 전체 입력이 tokenizer와 Vicuna의 embedding layer를 거치면서<im_start>,<im_patch>,<im_end>의 각 위치에도 먼저 5120-dim token embedding이 생성됩니다.하지만 forward pass에서는 256개의
<im_patch>embedding이 그대로 사용되지 않습니다. 모델은<im_start>와<im_end>사이에 있는 연속된 256개의<im_patch>위치를 찾은 뒤, 해당 embedding 전체를 linear projection layer를 거친 256개의 visual embedding으로 교체합니다.이때
<im_start>와<im_end>의 embedding은 교체되지 않고 그대로 유지됩니다. 따라서 최종 입력은 이미지 앞부분의 text embedding,<im_start>embedding, 256개의 visual embedding,<im_end>embedding, 이미지 뒷부분의 text embedding을 순서대로 concat한 형태로 구성됩니다.따라서 이미지 관련 special token을 제외한 일반 text token이 $N$개라면, 최종 입력은 $N$+258개의 token position으로 구성되며, 각 token은 5120-dim의 특징을 가집니다.
따라서 text token이 $N$개라면, 결합된 입력은 $N$+256개(논문 코드 구현에서는 $N$+258개)의 토큰으로 구성되며, 각 토큰은 5120-dim의 특징을 가집니다. 이렇게 결합된 멀티모달 시퀀스는 Vicuna에 입력되며, Vicuna는 텍스트와 이미지 정보를 함께 처리하여 전체 문맥을 기반으로 다음 text token을 자기회귀적으로 생성합니다.
학습 방법
Autoregressive Training
하나의 이미지 $X_V$에 대해 LLaVA는 다음과 같은 multi-turn conversation 데이터를 구성합니다. $(X_q^1, X_a^1, … , X_q^T,X_a^T)$, 여기서 $T$는 전체 대화 턴 수이고, $X_q^t$와 $X_a^t$는 각각 $t$번째 질문과 답변을 의미합니다.
참고로 이미지는 첫 번째 턴에만 삽입되며, 첫 번째 질문의 앞이나 뒤에 무작위로 배치됩니다.
\[\mathbf{X}_{\mathrm{instruct}}^{t} = \begin{cases} \text{Randomly choose } [\mathbf{X}_{\mathrm{q}}^{1},\mathbf{X}_{\mathrm{v}}] \text{ or } [\mathbf{X}_{\mathrm{v}},\mathbf{X}_{\mathrm{q}}^{1}], & t=1,\\[3pt] \mathbf{X}_{\mathrm{q}}^{t}, & t>1. \end{cases}\]이미지가 첫 번째 턴에 한 번만 나타나더라도 이후의 모든 질문은 동일한 이미지에 관한 대화이며, 이미지 토큰은 앞선 context에 계속 남아 있습니다.
LLaVA는 Vicuna의 기존 next-token prediction objective를 그대로 사용합니다. 전체 target answer token의 수를 $L$이라고 하면 정답 응답의 조건부 확률은 다음과 같습니다.
\[p(\mathbf{X}_{\mathrm{a}} \mid \mathbf{X}_{\mathrm{v}}, \mathbf{X}_{\mathrm{instruct}}) = \prod_{i=1}^{L} p_{\boldsymbol{\theta}} \left( \boldsymbol{x}_{i} \mid \mathbf{X}_{\mathrm{v}}, \mathbf{X}_{\mathrm{instruct},<i}, \mathbf{X}_{\mathrm{a},<i} \right)\]여기서 $x_i$ 는 현재 예측해야 하는 assistant token이고, $L$은 target token의 개수, $\theta$는 현재 단계에서 학습되는 parameter를 의미합니다.
중요한 점은 사용자의 질문이나 system message에는 loss를 계산하지 않는다는 것입니다. 모델은 이들을 조건으로 입력받고, assistant의 답변과 대화 종료를 나타내는 <STOP> token만 예측하도록 학습됩니다.
Stage 1 학습
LLaVA는 전체 모델을 한 번에 학습하지 않고, 두 단계로 나누어 학습합니다.
첫 번째 단계에서는 CLIP과 Vicuna를 모두 동결하고, 두 모델을 연결하는 projection layer만 학습합니다.
학습에는 CC3M에서 필터링한 약 59.5만 개의 image-caption pair가 사용되었습니다. 모델은 이미지를 입력받고 그에 맞는 caption을 생성하도록 학습됩니다.
이 단계의 목적은 새로운 시각 개념을 처음부터 학습하는 것이 아닙니다. 이미 시각 정보를 잘 표현하는 CLIP과 언어를 잘 생성하는 Vicuna가 있으므로, 두 모델 사이의 표현 공간을 연결하는 방법만 학습합니다.
논문에서는 이를 동결된 LLM을 위한 호환 가능한 visual tokenizer를 학습하는 과정으로 설명합니다. 즉, projection layer는 CLIP feature를 Vicuna가 이해할 수 있는 일종의 시각적 token으로 변환합니다.
Stage 2 학습
두 번째 단계에서도 CLIP을 계속 동결하지만, projection layer뿐만 아니라 Vicuna도 함께 fine-tuning합니다.
학습에는 위에서 언급한 GPT-4로 생성한 약 15.8만 개의 visual instruction data가 사용되었습니다. 이 단계에서 모델은 caption 생성뿐만 아니라, 질문에 맞게 답하고, 장면을 상세히 설명하고, 시각적 정보를 바탕으로 추론하는 능력을 학습합니다.
두 단계 모두 같은 autoregressive objective를 사용합니다. 차이는 어떤 parameter를 학습하는지와 어떤 데이터를 사용하는지에 있습니다. Stage 1이 두 모델의 표현 공간을 맞추는 과정이라면, Stage 2는 그 연결 위에서 실제 assistant의 행동을 학습하는 과정이라고 생각하시면 됩니다.
데이터셋 생성
GPT-기반 instruction-response 데이터 생성
인터넷에는 이미지와 캡션으로 구성된 대규모 데이터셋이 많이 존재합니다. 그러나 이러한 데이터는 대부분 Image+Caption 대응 관계만을 포함합니다.
이 형식은 이미지의 내용을 짧게 설명하는 능력을 학습하는 데는 유용하지만, 사용자의 질문 의도를 파악하거나 여러 차례 대화하고, 이미지로부터 단계적인 추론을 수행하는 능력을 직접 가르치지는 못합니다. 이러한 문제를 해결하기 위해 Image+Caption 데이터를 기반으로 instruction-response 데이터를 생성했습니다.
LLaVA는 먼저 이미지 $X_V$, 캡션 $X_C$, 이미지 설명을 요청하는 질문 $X_q$를 이용해 기존 image-caption pair를 다음과 같은 instruction-following 형식으로 변환했습니다.
\[\texttt{Human}: \mathbf{X}_{\mathrm{q}}\, \mathbf{X}_{\mathrm{v}} \texttt{<STOP>} \quad \texttt{Assistant}: \mathbf{X}_{\mathrm{c}} \texttt{<STOP>}.\]이 방식은 기존 캡션을 정답으로 그대로 사용할 수 있어 저렴하고 간단합니다. 실제로 LLaVA의 Stage 1에서는 이 형식으로 변환한 CC3M 데이터가 사용됩니다. 하지만 질문과 답변의 형태가 단순하고, 상세한 묘사나 복잡한 추론을 포함하기 어렵다는 한계가 있습니다.
한편 더 다양한 시각 지시 데이터를 만들기 위해 LLaVA는 언어 전용 GPT-4를 teacher 모델로 활용했습니다. 당시 GPT-4는 이미지를 직접 입력받을 수 없었기 때문에, 실제 이미지 대신 다음 두 가지 정보를 텍스트로 제공했습니다.
- 여러 관점에서 이미지를 설명하는 캡션
- 객체의 종류와 위치를 나타내는 bounding-box description
이러한 정보를 이미지의 상징적 표현으로 사용하여 GPT-4가 장면을 간접적으로 이해하도록 했습니다. 이후 소수의 수작업 예시를 in-context example로 제공하고, 세 종류의 instruction-response 데이터를 생성했습니다(Conversation, Detailed Description, Complex Reasoning).
| 데이터 유형 | 개수 | 주요 목적 |
|---|---|---|
| Conversation | 약 58K | 객체, 위치, 행동 등에 대한 multi-turn 대화를 학습합니다. |
| Detailed Description | 약 23K | 장면을 길고 구체적으로 설명하는 능력을 학습합니다. |
| Complex Reasoning | 약 77K | 시각적 단서를 바탕으로 상황을 추론하는 능력을 학습합니다. |
| 전체 | 약 158K | 범용 visual instruction-following 능력을 학습합니다. |
이 과정에서 중요한 점은 GPT-4가 질문만 만든 것이 아니라는 것입니다. GPT-4는 주어진 캡션과 bounding box를 바탕으로 질문과 답변을 함께 생성했습니다. 따라서 LLaVA는 아키텍처의 복잡성을 늘리는 대신, 학습 데이터의 형식과 품질을 개선하는 data-centric approach를 선택했습니다.
실험 환경 및 평가 방법
실험 환경
-
모든 모델은 $8$ x A100(NVIDIA GPU)로 학습함.
- Stage 1 fine-tuning 설정
- Epoch: $1$
- Learning Rate: $2e^{-3}$
- Batch Size: $128$
- Stage 2 fine-tuning 설정
- Epoch: $3$
- Learning Rate: $2e^{-5}$
- Batch Size: $32$
평가 방법
논문에서는 생성된 응답의 quality를 측정하기 위해 GPT-4를 활용한 정량적 평가(quantitative evaluation)를 수행했습니다.
먼저 각 이미지에 대해 텍스트 설명과 질문의 쌍을 구성했습니다. 이후 LLaVA는 이미지와 질문을 바탕으로 답변을 생성했고, 텍스트 전용 GPT-4는 이미지 대신 텍스트 설명과 질문을 입력받아 비교 기준이 되는 참조 답변을 생성했습니다.
두 모델의 답변을 얻은 뒤, 질문, 텍스트 형태의 시각 정보, 그리고 GPT-4와 LLaVA가 생성한 응답을 다시 GPT-4에 입력했습니다. 이때 GPT-4는 두 응답의 품질을 평가하는 심사자 역할을 수행했습니다.
각 응답은 1점부터 10점까지의 종합 점수로 평가되었으며, 점수가 높을수록 전반적인 성능이 우수함을 의미합니다.
참고로 뒤에 나오는 논문의 벤치마크 표에 제시된 점수는 GPT-4가 부여한 1~10점의 단순 변환이 아니라, GPT-4 참조 응답의 총점을 100으로 두고 계산한 상대 점수입니다.
\[\text{Relative Score} = 100\times \frac{\text{LLaVA response score}}{\text{GPT-4 reference score}}\]따라서 예를 들어, 90점은 정확도 90%가 아니라, 해당 평가에서 GPT-4 reference 대비 얻은 상대적 응답 품질을 의미합니다.
실험 결과
LLaVA-Bench(COCO)
LLaVA-Bench COCO는 COCO-Val-2014에서 무작위로 선택한 30개의 이미지로 구성되었습니다. 각 이미지마다 Conversation, Detailed Description, Complex Reasoning 질문을 하나씩 생성하여 총 90개의 질문을 사용했습니다.
instruction tuning을 적용하지 않은 모델은 평균 21.5점에 그쳤습니다. 반면 세 종류의 instruction data를 모두 사용한 모델은 85.1점을 얻었습니다.
이 결과는 image-caption pretraining만으로는 사용자의 다양한 지시를 따르기 어렵다는 점을 보여줍니다. 또한 Conversation data만 사용했을 때보다 Detailed Description과 Complex Reasoning 같은 여러 가지 종류의 데이터를 학습에 함께 사용했을 때 성능이 더 높았습니다. 서로 다른 형식의 instruction data가 모델의 일반적인 대화 능력에도 긍정적인 영향을 준 것입니다.
LLaVA-Bench(In-the-Wild)
in-the-Wild benchmark는 24개의 이미지와 60개의 질문으로 구성되었습니다. 일반적인 사진뿐만 아니라 밈, 스케치, 그림, 실내외 장면 등 다양한 domain을 포함합니다.
LLaVA는 전체 67.3점을 얻어 BLIP-2와 OpenFlamingo보다 높은 성능을 보였습니다. 특히 Complex Reasoning에서 81.7점을 기록하며 큰 차이를 보였습니다.
이는 LLaVA가 사용자의 질문 의도를 파악하고 그에 맞게 시각적 정보를 추론하는 데 강점이 있음을 보여줍니다.
ScienceQA
ScienceQA는 약 2.1만 개의 학교 수준 multiple-choice question으로 구성된 benchmark입니다. 자연과학, 사회과학, 언어과학 등 다양한 과목을 포함하며, 문제에 따라 텍스트나 이미지가 함께 제공됩니다.
ScienceQA용 LLaVA는 일반 chatbot model을 그대로 사용하지 않고, 해당 dataset에 맞추어 12 epochs 동안 별도로 fine-tuning했습니다. 질문과 추가 context를 instruction으로 사용하고, reasoning과 최종 answer를 target response로 구성했습니다.
주요 결과는 아래 표에 정리되어 있습니다.
LLaVA 단독 모델은 90.92%의 정확도를 얻어 당시 최고 수준의 모델인 MM-CoT large에 근접했습니다.
GPT-4 complement는 GPT-4가 답하지 못한 문제에 LLaVA의 답을 사용하는 방식이었지만, 성능은 90.97%로 LLaVA 단독과 거의 차이가 없었습니다.
반면 GPT-4(judge)는 LLaVA와 GPT-4의 답이 다를 때, GPT-4가 두 후보 중 최종 답을 선택하도록 했습니다. 이 방식은 92.53%를 기록하며 논문 발표 당시 새로운 SOTA 성능을 얻었습니다.
ScienceQA의 GPT-4(judge)는 LLaVA-Bench의 평가 방식과 구분해야 합니다. LLaVA-Bench에서는 응답의 품질에 점수를 부여하지만, ScienceQA에서는 두 후보 중 하나의 최종 정답을 선택하는 ensemble 방식으로 사용됩니다.
ScienceQA 실험에서는 각 설계 요소가 성능에 미치는 영향도 분석했습니다.
- CLIP의 24번째 layer 대신 23번째 layer feature를 사용했을 때 정확도가 89.96%에서 90.92%로 증가했습니다.
- Stage 1 feature alignment를 생략했을 때 정확도가 85.81%로 감소했습니다.
- reasoning을 answer보다 먼저 생성하면 최종 성능의 차이는 크지 않았지만, 더 적은 epoch로 비슷한 정확도에 도달했습니다.
- Vicuna-7B는 89.84%, Vicuna-13B는 90.92%를 기록했습니다.
이 결과에서 가장 눈에 띄는 부분은 Stage 1의 효과입니다. feature alignment를 생략했을 때 약 5.11%의 성능 하락이 발생했습니다. projection layer 학습이 visual-language alignment를 학습하는 중요한 과정이라는 것을 보여줍니다.
결론
LLaVA 1.0은 visual instruction tuning을 통해 범용 시각 assistant를 만들 수 있음을 보여준 연구입니다.
구조 자체는 CLIP, linear projection layer, Vicuna로 구성되어 매우 단순합니다. 하지만 GPT-4로 생성한 Conversation, Detailed Description, Complex Reasoning data와 2단계 학습을 결합하면서, 이미지에 대한 대화, 상세 설명, 복합 추론 능력을 학습했습니다.
실험에서도 instruction tuning의 효과가 나타났습니다. LLaVA-Bench COCO에서는 85.1점, in-the-Wild에서는 67.3점을 얻었으며, ScienceQA에서는 단독으로 90.92%, GPT-4 judge와 결합했을 때는 92.53%를 기록했습니다.
이 논문의 주요 contribution은 세 가지로 정리할 수 있습니다.
첫째, 기존 image-caption data를 instruction-following 형식으로 변환하는 visual instruction tuning 방법을 제시했습니다. 둘째, GPT-4를 이용해 약 15.8만 개의 다양한 visual instruction data를 생성했습니다. 셋째, LLaVA-Bench와 모델, 학습 데이터를 open-source로 공개하면서 이후 vision-language assistant 연구를 위한 기반을 마련했습니다.
이 논문의 핵심은 복잡한 architecture가 항상 필요한 것은 아니라는 점입니다. 이미 잘 학습된 vision encoder와 language model이 있다면, 두 모델을 연결하는 간단한 projection layer와 적절한 instruction data만으로도 강력한 멀티모달 assistant를 만들 수 있습니다.
물론 한계도 존재합니다. LLaVA는 세부적인 시각 정보나 객체 간 관계를 정확하게 이해하지 못하는 경우가 있으며, 이미지에 존재하지 않는 내용을 생성하는 hallucination 문제도 가지고 있습니다. 또한 data generation과 evaluation 과정에서 GPT-4에 크게 의존하며, LLaVA-Bench도 비교적 적은 수의 이미지와 질문으로 구성되어 있다는 한계가 있습니다.
따라서 LLaVA의 가장 큰 의미는 새로운 model architecture 자체보다는, GPT 기반 데이터 생성, visual instruction tuning, 새로운 benchmark, open-source 공개를 하나의 체계로 제시했다는 점에 있습니다. 이러한 접근은 이후 대규모 vision-language model 연구가 본격적으로 확산되는 데 중요한 기반을 마련했다고 평가할 수 있습니다.
LLaVA-1.5
위에서 소개해드린 LLaVA-1이나 MiniGPT-4와 같은 멀티모달 모델들은 visual instruction tuning을 통해 이미지와 질문에 대해 지시사항에 맞는 대답을 하고, 이미지에 대한 reasoning 능력을 증명하였습니다. 이러한 모델들은 사전학습 데이터, 지시 학습 데이터(instruction-following data), 비전 인코더(vision encoder), 언어 모델(language model) 등의 scale을 키워 모델의 성능을 향상시켰습니다.
하지만, 범용적인 모델을 위한 최적의 조합(recipe)은 명확히 밝혀져 있지 않았습니다. 예를 들어, LLaVA-1과 InstructBLIP을 비교해 보았을 때, 이미지에 대한 reasoning을 대화 형식으로 하는 성능은 LLaVA-1이 더 뛰어났고, 한 단어나 단답형을 정답으로 요구하는 VQA 벤치마크 성능은 InstructBLIP이 더 뛰어났습니다.
이 논문은 LLaVA-1 모델 구조의 변화를 최소화하면서, 세부적인 설정이나 훈련 방식을 어떠한 방식으로 조정해야 범용적으로 성능이 가장 좋은 모델을 만들 수 있을지를 연구한 논문입니다. 그리고 그 최적의 방식으로 만든 결과 모델이 LLaVA-1.5입니다.
기존 large multimodal model(LMM)들의 미해결 과제
LMM들이 좋은 성능을 보였지만, 아직 몇 가지 해결해야 할 문제가 남아있었습니다.
첫 번째는, 고해상도의 이미지를 처리하는 과정입니다. LMM들이 자주 사용하는 비전 인코더인 CLIP-ViT-L/14는, 224 x 224 픽셀의 이미지만 input으로 받을 수 있어 더 큰 해상도의 이미지는 어쩔 수 없이 resizing, crop, padding 등의 방법으로 224 x 224 형태로 만들어 처리해야 했습니다. 하지만 이러한 경우, 고해상도가 가지고 있는 세부 정보들이 손실될 위험이 있었습니다.
두 번째, 각 task들의 조합 능력(compositional capabilities)입니다. 조합 능력이란 서로 다른 task를 각각 따로 훈련해도, 각 task들의 수행 능력을 전부 필요로 하는 어떤 새로운 task를 수행할 수 있는 능력입니다. 예를 들어, 한 LMM이 이미지와 영어로 된 텍스트 쌍으로 학습을 하고, 이와 별개로 다국어가 들어있는 텍스트 데이터로 훈련을 했다고 가정해봅시다. 조합 능력이 있는 모델은, 명시적으로 이미지와 다국어로 된 쌍을 학습하지 않아도 이미지에 대해 다국어로 해석이 가능합니다.
세 번째는 데이터 효율성입니다. 학습 시 필요한 데이터가 많아질수록 훈련하는 데 더 많은 시간이 걸리므로, 어떻게 하면 최대한 적은 데이터로 모델의 성능을 끌어올릴지가 관건입니다.
본 논문에서 저자들은 이러한 미해결 과제에 대한 해답을 LLaVA-1.5를 통해 찾으려 합니다.
LLaVA-1.5의 세부 변경사항
이전 LLaVA-1 모델은 기존의 LMM 모델들이 복잡한 구조를 가지고 있던 것과 다르게 단일 선형 사영(linear projection) 층 하나만으로 이전 모델들과 비슷하거나 더 좋은 성능을 보였습니다.
하지만 LLaVA-1이 모든 방면에서 완벽한 것은 아니었습니다. 이전 모델인 InstructBLIP과 비교하였을 때, LLaVA-1은 전형적으로 짧은 형태의 응답을 요구하는 academic benchmark 성능에서 InstructBLIP보다 성능이 떨어졌습니다. 반대로, 실세계의 이미지와 그에 대한 대화형 task를 하는 능력은, LLaVA가 InstructBLIP보다 앞섰습니다.
저자들은 LLaVA-1의 모델 변화를 최소화하면서 범용적인 모델인 LLaVA-1.5를 구현하는 데 성공하였습니다. LLaVA-1.5는 기존 LLaVA-1의 단일 선형 사영 층을 2층의 multi-layer perceptron(MLP) 층으로 변경한 것 이외에는 모델 아키텍처에 큰 변화를 주지 않았습니다. 단지 fine-tuning 데이터셋을 바꾸거나 추가하고, LLM이나 vision backbone을 더 큰 스케일로 바꾸는 것만으로 각종 벤치마크에서 SOTA를 달성하였습니다.
구체적으로 LLaVA-1.5가 어떠한 변화를 주었는지 살펴보겠습니다.
Response Format Prompting
기존 모델들의 문제점 중 하나는, 긴 문장 형식의 답변과, 짧은 답변 사이에서 균형을 찾기 어려웠다는 점입니다.
저자들은 그 이유를 prompt의 불명확성 때문이라고 판단했습니다. Q : {Question} A : {Answer}과 같은 프롬프트는 원하는 답변의 형태를 모델에게 알려주기에 충분하지 않습니다. 이를 해결하기 위해 저자들은 VQA의 질문 뒤에 짧지만 명확한 프롬프트 {“Answer the question using a single word or phrase”}를 추가했습니다.
또한, InstructBLIP에서 그러한 문제가 발생한 이유 중 하나로 fine-tuning 단계에서 LLM을 계속 동결한 상태로 훈련한 점도 지적하며, LLaVA-1.5를 훈련할 때에는 LLM의 finetuning도 진행하였습니다.
Scaling the Data and Model
위에서 설명한 Response Format Prompting 이외에도, LLaVA-1.5는 LLaVA-1과 비교해 fine-tuning을 더 다양한 데이터로 진행하였습니다.
논문은 처음 LLaVA-1 모델을 가져와 그 위에 fine-tuning 데이터 추가, 모델 수정, 해상도 수정 등을 차례로 쌓아가며 성능 변화를 측정하였습니다.
위 테이블에서 파란색으로 표시된 부분은 데이터의 추가를 나타내고, 빨간색은 모델 아키텍처 수정, 노란색은 입력 가능 이미지 해상도의 수정을 나타냅니다. GQA, MME, MM-Vet 벤치마크는 각각 단답형 질문, output format이 있는 질문, 그리고 줄글로 이미지를 설명하게 하는 질문 등으로 멀티 모달의 능력을 평가하는 벤치마크입니다. 8번까지 반영된 7B 모델과, 9번까지 반영된 13B 모델을 LLaVA-1.5(7B,13B)라고 칭합니다.
6번으로 표시된 해상도 향상 부분은, 비전 인코더 백본을 이미지 입력 224x224를 지원하는 CLIP-ViT-L 에서 336px를 지원하는 CLIP-ViT-L-336px로 바꾼 것을 나타냅니다.
3번은 이전에 언급했듯이 단일 선형 사영 층을 MLP로 바꾸는 변화를 준 것이고, 9번은 기존 LLM 백본을 Vicuna-7B에서 Vicuna-13B로 변화를 준 것입니다.
LLaVA-1.5는 LLaVA-1과 같은 사전학습 데이터를 사용했고, iteration과 batch 사이즈를 거의 동일하게 유지하면서도 훨씬 더 좋은 성능을 달성하였습니다.
Scaling to Higher Resolutions
LLaVA-1.5가 비전 인코더 백본을 CLIP-ViT-L-336px로 바꾸면서 해상도 문제를 해결한 것처럼 보였지만, 여전히 336x336 해상도의 이미지밖에 받지 못했기 때문에, 문제가 근본적으로 해결된 것은 아니었습니다. 이를 해결하기 위해, 저자들은 고해상도의 이미지를 격자로 쪼개어 따로따로 ViT 인코더에 넣는 방법을 제안하였습니다.
이 방식을 사용할 때에는 인코더 백본은 224x224 픽셀의 이미지를 input으로 받는 CLIP-ViT-L을 사용했습니다. 즉, 한 격자의 크기는 224x224입니다.
먼저 이미지를 처리할 알맞은 격자를 사전 정의합니다. 사전 정의된 격자는 1x1, 1x2, 1x3, 1x4, 1x5, 1x6, 2x2, 2x3과 각각의 전치를 포함합니다. 고해상도의 이미지가 들어오면, 그 이미지를 최대한 잘 표현할 수 있는 격자를 선택합니다. 격자를 선택하는 기준은 이미지의 세부정보를 최대한 잘 표현하면서 낭비되는 영역이 최소화되도록 하는 격자를 선택하는 것입니다. 그 후, 그 격자에 맞게 원본 종횡비를 유지하면서 이미지를 축소합니다. 이때, 이미지가 격자 안에 잘리지 않고 전부 들어오도록 비율을 맞춥니다. 이미지가 축소되면서 격자에 생기는 빈 공간은 패딩으로 채워줍니다.
이러한 과정의 문제점은, 각 격자에 들어가는 이미지 조각 간에 attention을 수행할 수 없다는 점입니다. 각 격자를 비전 인코더에 따로따로 넣어 처리하기 때문에, 격자 서로의 관계는 모델이 학습할 수 없습니다. 이를 해결하기 위해, 각 격자에 들어가는 이미지 조각을 각각 인코딩하는 것과 더불어, 전체 이미지를 한 격자 크기로 축소하여, 즉 글로벌 뷰를 만들어 인코딩을 추가로 진행합니다. 이 글로벌 뷰는, 각 격자의 이미지 인코딩을 flatten 한 벡터에 최종적으로 concatenate 되어 계산됩니다.
각각의 격자가 인코딩되면, 원래 이미지의 폭과 높이를 반영하여 벡터가 재조립됩니다. 이후 자원 소모를 막기 위해 패딩 영역을 제거합니다. 또한 재조립된 벡터는 이후 flatten되므로, 같은 행에 있었다는 정보를 flatten 이후에도 모델이 알 수 있도록 각 행 끝에 row end token을 추가합니다. 벡터가 flatten된 후 글로벌 뷰 벡터가 concatenate 되어 최종 벡터가 완성됩니다.
이 벡터는 이후 MLP를 거쳐, LLM 백본의 입력 공간으로 사영되어 LLM의 입력값으로 사용됩니다.
저자들은 이 방법을 사용한 모델을 LLaVA-1.5-HD로 명명했습니다.
실험 및 평가
Benchmark Performance
성능 평가는 학술 과제 지향 벤치마크들(VQA-v2, GQA, VizWiz 등)과, 지시 수행 능력 평가용으로 최근 제안된 LMM 벤치마크들(POPE, MME-Perception, MMBench 등)로 진행했습니다. 각 벤치마크들은 단답형 질문, 객관식 문제, reasoning 능력, 환각(hallucination) 정도 등 다양한 능력을 평가합니다.
각 실험에 대한 결과는 다음 표와 같습니다.
LLaVA-1.5는 대부분의 분야에서 SOTA를 달성했으며, 파라미터 수 7B의 LLM 백본을 사용했을 때보다 13B 모델을 사용하였을 때 더 좋은 성능을 보였습니다.
또한 LLaVA-1.5-HD 모델로 이미지를 448x448의 형태로 처리할 수 있게 하였을 때, 대부분의 벤치마크에서 성능 향상을 보였으며 특히 MM-Vet의 OCR이나 LLaVA-Bench-in-the-Wild 벤치마크 등 이미지에 대한 더욱 세밀한 이해가 필요한 벤치마크에서 더 큰 향상을 보였습니다.
Ablation
ablation으로 LLM 백본 모델을 바꾸었을 때, 그리고 finetuning 데이터셋의 양을 기존의 10~50%만 사용하였을 때 benchmark 성능 차이가 얼마나 나는지 실험했습니다.
먼저 LLM 백본 모델은 LLaMA-1 기반인 Vicuna-1.1, 1.3과 LLaMA-2 기반인 Vicuna-1.5, LLaMA-2-Chat를 사용하여 비교하였습니다. Vicuna 시리즈는 supervised instruction finetuning (SFT)로만 finetuning된 모델이고, LLaMA-2-Chat은 인간 피드백 기반 강화학습(RLHF)으로 추가 훈련된 모델입니다.
벤치마크 실험 결과를 보면, Vicuna-1.5를 사용한 모델이 가장 성능이 좋았고, LLaMA-2 기반 LLM을 사용한 모델들의 성능이 LLaMA-1 기반 LLM을 사용한 모델들보다 좋은 것을 확인할 수 있었습니다. 이를 통해 VLM의 성능은 LLM의 성능에 크게 영향을 받는다는 것을 확인할 수 있었습니다.
한 가지 주목할 점은, Vicuna-1.5와 LLaMA-2-Chat을 사용한 모델들의 MMBench와 MMBench-CN 벤치마크에서의 성능입니다. 영어를 사용하는 MMBench에서는 두 언어 모델을 사용한 모델들의 성능이 비슷하였지만, 중국어를 사용하는 MMBench-CN에서는 Vicuna-1.5의 성능이 월등하게 좋게 나타났습니다.
이는 LLaMA-2-Chat의 학습 시 SFT/RLHF 데이터가 대부분 영어였던 반면, Vicuna-1.5는 다국어가 다수 포함된 ShareGPT로 SFT 되었기 때문입니다. 이를 통해 백본 LLM의 instruction tuning 데이터가 어떤 능력을 담고 있느냐가, 그 능력을 요구하는 벤치마크의 성능을 좌우한다는 것을 알 수 있었습니다.
또한 finetuning 데이터셋을 랜덤으로 sub-sampling하여 10%~50%만 사용한 모델들의 벤치마크 성능을 보면, 30~50%까지 큰 성능 하락이 일어나지 않은 것을 확인할 수 있었습니다. 심지어 MMBench에서는, 50%만 사용한 모델이 100%를 사용하였을 때보다 성능이 더 좋은 것으로 확인되었습니다. 이는 데이터의 효율성을 더욱 올리기 위한 room이 남아 있다는 것으로 해석할 수 있습니다.
Hallucination
기존 LMM들의 hallucination은, 훈련 데이터셋 내의 오류 또는 환각이 원인이라고 여겨져 왔습니다.
하지만, 본 연구에서 모델의 input 해상도를 448x448처럼 증가시켰을 때, hallucination 현상이 확연하게 줄어드는 것을 확인하였습니다.
이는, 모델의 input 해상도가 이미지의 자세한 정보를 나타낼 수 있을 만큼 충분히 높지 않음에도 불구하고 모델에게 능력 이상의 세밀한 정보를 요구하면, 모델이 hallucination을 학습한다는 것을 의미합니다.
결론
LLaVA-1이 “복잡한 connector 없이 선형 사영 만으로 데이터 품질로 승부한다”는 가설을 제안했다면, LLaVA-1.5는 그 recipe를 통제된 설정에서 체계적으로 검증하였습니다.
가장 주목해야할 결과는 효율성입니다. LLaVA-1.5는 558K pretraining + 665K instruction tuning 데이터만으로, 수억~수십억 쌍의 데이터로 visual resampler를 학습한 InstructBLIP(129M)이나 Qwen-VL(1.4B), 80B 규모의 IDEFICS를 능가했습니다. 전체 학습이 8×A100 기준 하루 안에 끝난다는 점까지 고려하면, 저자들의 표현대로 Q-Former와 같은 visual sampler의 이점과 대규모 vision-language 사전학습의 필요성 자체를 재고하게 만드는 결과입니다.
또한 LLaVA-1.5는 LMM의 미해결 과제들에 대한 흥미로운 관찰을 남겼습니다.
데이터를 50%만 사용해도 성능의 98% 이상이 유지된다는 점(데이터 효율), 해상도를 높이면 hallucination이 크게 줄어든다는 점(데이터 상세도와 모델 capacity 간 균형의 필요성), 그리고 명시적인 joint training 없이도 개별 능력이 조합되어 새로운 task로 일반화된다는 점(조합 능력)입니다.
하지만 다중 이미지 이해 및 hallucination 등의 문제는 아직 해결해야할 문제라고 서술합니다.