논문명: BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

저자: Junnan Li, Dongxu Li, Caiming Xiong, Steven Hoi

게재지: ICML 2022

URL: https://arxiv.org/abs/2201.12086


논문명: BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

저자: Junnan Li, Dongxu Li, Silvio Savarese, Steven Hoi

게재지: ICML 2023

URL: https://arxiv.org/abs/2301.12597


논문명: InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning

저자: Wenliang Dai, Junnan Li, Dongxu Li, Anthony Meng Huat Tiong, Junqi Zhao, Weisheng Wang, Boyang Li, Pascale Fung, Steven Hoi

게재지: NeurIPS 2023

URL: https://arxiv.org/abs/2305.06500

BLIP


서론

Vision-Language Pre-training(VLP)은 이미지와 텍스트 쌍을 이용하여 시각 정보와 언어 정보를 함께 학습하는 방법입니다. VLP의 목적은 대규모 이미지-텍스트 쌍으로 모델을 사전 학습(Pre-Train)한 뒤 여러 다운스트림 태스크에서의 성능을 개선하는 것입니다. 이렇게 사전 학습된 모델은 이미지 검색, 이미지 캡셔닝, Visual Question Answering(VQA)와 같이 이미지와 텍스트를 함께 다루는 여러 다운스트림 태스크들에 활용됩니다. 하지만 기존 연구들에는 두 가지 큰 한계점이 존재합니다.

  • 1. 모델 구조의 한계: 기존 Encoder 혹은 Encoder-Decoder 구조의 VLM은 이미지를 보고 텍스트를 맞추는 이해 영역과 생성 영역 중 한쪽에만 치우쳐져 있었습니다.
  • 2. 학습 데이터의 한계: 사람이 직접 작성한 고품질 데이터셋은 수집 비용이 높기 때문에 대부분 웹 데이터를 사용했으나, 웹 데이터는 노이지한 경우가 빈번했습니다.

BLIP은 위의 한계점을 MED (Multimodal Mixture of Encoder-Decoder)와 CapFilt를 도입해 해결합니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
BLIP Framework

MED (Multimodal Mixture of Encoder-Decoder)

MED는 3가지 구조로 이루어져 있습니다. 배치별로 Image Encoder에서 추출한 이미지 피쳐를 이용해, 각 텍스트 encoder 혹은 decoder별로 손실함수를 계산하고 동시에 최적화합니다.

1. Image-Text Contrastive Loss(ITC) Unimodal Text encoder를 이용해 이미지 정보와 Text encoder에서 얻은 텍스트 정보 사이의 유사도를 기반으로 ITC 손실함수를 계산합니다. 같은 쌍(positive)의 유사도는 최대화하고, 나머지 쌍(negative)의 유사도는 최소화하는 contrastive learning을 사용합니다.

2. Image-Text Matching Loss(ITM) Image-grounded text encoder를 이용해 특정 쌍이 같은 쌍인지 binary classification으로 학습합니다. Hard negative mining 기법을 사용해 positive 쌍과 hard negative 쌍의 차이를 세밀하게 학습합니다.

3. Language Modeling Loss(LM) Image-grounded text decoder를 이용해 이미지에 대한 올바른 텍스트를 생성하도록 합니다. 이때 Decoder는 정답 캡션의 log likelihood를 최대화하는 방향으로 학습합니다.

CapFilt

CapFilt는 주요 구조인 Captioner와 Filter를 이용해, 이미지와 텍스트 정보가 일치하지 않는 noisy 데이터 쌍을 필터링합니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
CapFilt Framework

각 구조의 기능은 다음과 같습니다:

  • Captioner: 입력받은 웹 이미지 $I_W$에 대해 synthetic(합성) 캡션 $T_S$을 생성합니다.
  • Filter: 합성 데이터셋 $(I_W, T_S)$과 웹 데이터셋 $(I_W, T_W)$ 모두를 입력받고, 데이터셋의 각 데이터 쌍에 대해 ITM Head로 이미지-텍스트 간 일치 여부를 판단합니다.

Captioner와 Filter를 차례대로 거쳐 생성된 이미지는 다음과 같습니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
Original web text와 synthetic text의 비교 예시

하나의 이미지에 대해 붉은색 텍스트는 noisy 텍스트이고, 초록색 텍스트는 올바르게 매칭된 텍스트입니다. 이미지가 noisy 텍스트와 쌍을 이룰 경우 해당 쌍은 Filter에서 제거됩니다.

Filter에서 noisy 데이터를 제거한 후, 사람이 라벨링한 고품질 데이터셋을 합친 최종 데이터셋 $D$로 MED를 처음부터 새로 사전 학습합니다.

실험 결과

실험 설정

  • 모델 구조: MED의 Image Encoder로는 ImageNet으로 사전학습된 ViT-B/16 또는 ViT-L/16을, Text Encoder로는 BERT-base를 사용합니다.
  • 사전 학습 데이터셋: 14M/129M의 두 가지 세팅을 사용합니다: COCO, Visual Genome, CC3M, CC12M, SBU의 14M 세팅 또는 LAION 400M에서 가져온 115M을 함께 사용한 129M 세팅이 모두 실험에 사용됩니다.

MED 파라미터 공유 BLIP의 MED 구조는 Self-Attention 레이어 외의 모든 파라미터를 공유합니다. 이는 Self-Attention 레이어를 제외한 레이어의 경우 Encoder와 Decoder에서 수행하는 역할이 유사하기 때문입니다.

반대로 Text encoder와 Text decoder에서 Self-Attention 레이어의 역할이 달라 학습 간 충돌이 일어날 수 있습니다. 따라서 Self-Attention 레이어의 파라미터는 공유하지 않습니다.

또한 모델의 이해 성능(Retrieval)과 텍스트 생성 성능(Caption) 역시 Self-Attention 레이어만을 공유하지 않았을 때 가장 높았습니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
MED의 레이어 간 파라미터 공유 성능 평가

Caption 다양성의 효과 Captioner는 nucleus sampling 방식을 이용해 캡션을 생성합니다.

해당 방식은 beam search보다 noisy 텍스트를 생성할 가능성이 더 높으나, 더 다양한 caption 생성으로 얻는 이득이 크기 때문에 이 방식을 사용합니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
캡션 생성 방식에 따른 Captioner 성능 평가

논문은 CapFilt 구조에서의 파라미터 공유 시나리오 역시 점검합니다. 아래 표와 같이 Captioner와 Filter가 파라미터를 공유할 경우 Filter가 Captioner에서 생성한 합성 텍스트 중 noisy 텍스트를 걸러낼 확률이 낮아지며, 따라서 각 구조를 독립적으로 Fine-tuning해야 함을 알 수 있습니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
CapFilt의 모듈 간 파라미터 공유 성능 평가

BLIP-2


서론

하나의 큰 멀티모달 모델을 구축하기보다는 각 Unimodal 모델의 뛰어난 성능을 비용 효율적으로 유지하고자 학습되지 않는 Frozen 모델을 활용하려는 연구가 다수 발표되었습니다.

그러나 대부분 주로 텍스트 생성 태스크에 사용되었기 때문에, Vision 모델과 LLM 사이의 modality gap을 충분히 해소하기 어려웠습니다.

BLIP-2는 Frozen Image Encoder와 Frozen LLM 사이에 학습 가능한 query 파라미터를 이용한 Querying Transformer(Q-Former)를 배치해 Frozen 모델의 사용에서 기인하는 문제를 해결합니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
BLIP2 Framework

Q-Former의 Pre-Training 과정은 2단계로 이루어집니다.

  • 1단계: Frozen Image encoder에서 얻은 이미지 정보 중 텍스트와 의미적으로 연결되는 부분을 고정된 길이의 Query 파라미터로 학습합니다.
  • 2단계: 1단계에서 얻은 Query output을 Frozen LLM에 입력해 Q-Former를 학습합니다.

Q-Former 구조

BLIP Series: BLIP, BLIP-2, InstructBLIP
Model architecture of Q-Former

1단계: Vision-Language Representation Learning

Q-Former가 텍스트와 가장 유사한 이미지 정보를 추출하도록 학습하는 단계입니다. Q-Former를 이루는 각 구조는 Self-Attention 레이어를 공유하며, 다음의 기능을 수행합니다:

  • Image Transformer: Q-Former 내부의 학습 가능한 Query 파라미터와 Frozen Image encoder에서 얻은 이미지 임베딩을 이용해 이미지 정보를 참조한 Query output을 출력합니다.
  • Text Transformer: 학습 목적에 따라 Text encoder 또는 Text decoder로 사용 가능합니다. 이때 아래와 같이 학습 목적마다 서로 다른 Attention Mask를 사용하여 Query와 텍스트 사이의 정보 흐름을 조절합니다.
BLIP Series: BLIP, BLIP-2, InstructBLIP
손실 함수에 따른 Attention Mask

각 손실함수는 다음과 같이 구성됩니다:

1. Image-Text Contrastive Learning(ITC) BLIP의 ITC loss와 같은 메커니즘으로 손실 함수를 계산합니다. 다만 유사도로 사용하는 값이 다른데, 각 Query에 대한 이미지와 텍스트 사이의 유사도 중 가장 높은 값을 이용합니다. 이 경우 Query와 텍스트가 학습 중 서로를 참조할 수 없도록 Unimodal Attention Mask를 사용합니다.

2. Image-Text Matching(ITM) ITC loss 계산 과정에서 얻은 유사도 matrix에 기반해, BLIP의 ITM loss와 같은 메커니즘으로 loss를 계산합니다. Bidirectional Attention Mask를 사용해 Query와 텍스트가 Self-Attention 중 서로의 정보를 참조할 수 있도록 합니다.

3. Image-grounded Text Generation(ITG) Causal Attention Mask는 Self-Attention 중 Query는 텍스트 정보를 참조하지 못하도록, 또 텍스트는 이전에 생성된 토큰만 참조할 수 있도록 합니다. 입력된 이미지에서 텍스트를 처음부터 만들어낼 수 있을 만큼 충분한 정보를 뽑아낼 수 있도록 학습됩니다.

2단계: Vision-to-Language Generative Learning

1단계에서 얻은 Query를 이미지 정보를 포함하는 텍스트(Soft visual prompt)로 사용해, LLM의 입력 텍스트 앞에 추가해 함께 입력합니다. LLM은 Query에 포함된 이미지 정보를 참고해 다음 토큰을 생성할 수 있게 됩니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
Vision-to-Language Generative Learning

2단계의 구조는 사용된 LLM에 따라 Decoder-based LLM(OPT), Encoder-decoder based LLM(FlanT5)으로 나뉘며, 모두 Language Modeling 손실함수로 학습합니다.

실험 결과

실험 설정

  • 모델 구조: Frozen Image Encoder로는 CLIP ViT-L/14 또는 EVA-CLIP ViT-g/14 모델을 사용하며, Q-Former로는 BERT-base의 가중치로 초기화된 188M 파라미터 규모의 Transformer를 사용합니다.

  • 사전 학습 데이터: BLIP-2는 BLIP의 세팅 중 129M 규모 세팅을 사용합니다.

Zero-Shot image-to-text generation Instruction을 바꾸는 방식을 통해 image captioning, image-text retrieval, VQA와 instructed image-to-text generation과 같은 태스크에서 모델의 zero-shot 성능을 평가합니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
BLIP-2와 기존 모델의 zero-shot 성능 및 trainable parameter 비교

위 실험 결과를 통해 BLIP-2가 기존 모델에 비해 가장 적은 파라미터를 학습하면서도 타 모델들보다 높은 zero-shot 성능을 보이는 것을 확인할 수 있습니다.

InstructBLIP


서론

BLIP-2와 같은 기존 zero-shot image-to-text 생성 방법은 이미지 정보 추출 시 instruction을 고려하지 않습니다. 따라서 사용자의 요청과 무관하게 이미지로부터 동일한 정보를 추출해 LLM에 전달합니다.

InstructBLIP은 사전 학습된 BLIP-2를 사용자의 질문이나 프롬프트 자체로 학습해, 이미지에서 추출하는 정보가 사용자의 요청에 따라 달라지도록 합니다.

Vision-Language Instruction Tuning

BLIP Series: BLIP, BLIP-2, InstructBLIP
InstructBLIP Framework

BLIP2는 Q-Former 학습 후, 학습된 Query가 LLM 태스크에 사용되었습니다. InstructBLIP은 BLIP2에서 이미 학습된 Q-Former를 Instruction으로 fine-tune해, Query가 Instruction 정보를 학습하도록 합니다.

이후 Query는 LLM에서 Instruction 앞의 soft visual prompt로 사용되어, instruction 정보를 효과적으로 학습할 수 있습니다.

데이터셋

InstructBLIP은 26가지의 데이터셋을 11개의 태스크로 분류하고, Instruction Tuning 형식으로 변환해 사용합니다. 데이터셋은 다음과 같이 분류할 수 있습니다:

  • held-in 데이터셋(13개): 그림에서 노란색으로 표현되며, Instruction Tuning에 이용됩니다.
  • held-out 데이터셋(13개): 그림에서 흰색으로 표현되며, 평가에 사용됩니다.
BLIP Series: BLIP, BLIP-2, InstructBLIP
Dataset Structure

Instruction Tuning 시 태스크마다 사람이 작성한 10~15개의 자연어 instruction template을 이용해, Query는 태스크별로 사용자의 요청을 학습할 수 있습니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
held-in dataset instruction template

이후, 평가에 사용되는 각 held-out 데이터셋의 텍스트는 데이터셋에 따라 아래와 같은 형태로 변환되어 사용됩니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
held-out dataset instruction template

Training Details

데이터셋 간 크기 차이에 따른 과적합 혹은 과소적합 문제를 해결하기 위해, 학습 시 데이터셋 $d$는 $p_d = \frac{\sqrt{S_d}}{\sum_{i=1}^{D} \sqrt{S_i}}$의 확률로 데이터셋 크기의 제곱근에 비례하는 확률로 샘플링됩니다.

또한 추론 시에는 데이터셋 특성에 따라 두 가지 생성 방식을 사용합니다:

  • Image captioning이나 open-ended VQA 태스크에 해당하는 데이터셋: 모델이 직접 instruction을 받아 응답을 생성합니다.
  • Classification이나 multi-choice VQA 태스크에 해당하는 데이터셋: vocabulary ranking method를 이용해 후보 답변 중 가장 log-likelihood가 높은 후보를 답변으로 선택합니다.

Zero-shot Evaluation

기존 SOTA 모델인 BLIP-2, Flamingo와 zero-shot 성능을 비교한 결과, InstructBLIP은 모든 held-out 데이터셋에서 새로운 SOTA를 달성합니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
zero-shot evaluation result

또한 논문은 높은 zero-shot 일반화 성능에 Instruction Tuning이 핵심임을 밝힙니다. 아래와 같이 Multitask learning과 Instruction Tuning 여부에 따른 성능 평가 결과, Instruction Tuning으로 학습한 경우(InstructBLIP)에 모델의 zero shot 일반화 성능이 가장 높았음을 확인할 수 있습니다.

BLIP Series: BLIP, BLIP-2, InstructBLIP
Ablation study on instruction tuning and multitask learning

결론


BLIP에서 InstructBLIP에 이르기까지, VLM은 이미지에 대한 캡션 생성을 넘어 사용자의 입력을 이해하고 요청에 맞는 답변을 생성하는 방향으로 발전해왔습니다. BLIP 모델은 텍스트와 이미지 데이터 간 이해와 생성 능력을 동시에 학습했고, BLIP-2는 잘 구축된 SOTA 모델을 기반으로 가벼운 모듈만 학습하는 구조를 제안했습니다. InstructBLIP은 더 나아가 모델이 사용자의 요청을 더 잘 이해할 수 있도록 학습했습니다. 즉 모델이 학습해야 하는 파라미터 수는 계속 줄어들면서도 수행할 수 있는 일의 범위가 넓어진 것입니다.

BLIP-2 구조에서 이미지의 어떤 부분에 대한 정보를 추출할 것인지는 사용자의 요청에 달려 있다는 관점을 InstructBLIP에서 확인할 수 있었습니다. 모델의 지각이 사용자의 의도와 분리될 수 없다는 이 관점은 이후 모델들이 더 단순한 형태와 뛰어난 성능으로 개선되었음에도 여전히 유효합니다.