BLIP: 통합 Vision-Language 이해 및 생성을 위한 언어-이미지 부트스트래핑 사전학습
BLIP은 Vision-Language 이해(understanding) 및 생성(generation) Task 모두에 유연하게 적용 가능한 새로운 Vision-Language Pre-training(VLP) 프레임워크입니다. BLIP은 Multimodal mixture of Encoder-Decoder(MED)라는 통합 아키텍처를 통해 다양한 Task를 지원하며, Captioning and Filtering(CapFilt)이라는 데이터 부트스트래핑(bootstrapping) 기법을 도입하여 노이즈가 많은 웹 데이터를 효과적으로 활용합니다. CapFilt는 Captioner를 통해 합성 캡션을 생성하고 Filter를 통해 노이즈 캡션을 제거하여 데이터 품질을 향상시킵니다. 그 결과, BLIP은 이미지-텍스트 검색, 이미지 캡셔닝, VQA 등 광범위한 vision-language Task에서 SOTA를 달성했습니다. 논문 제목: BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
Li, Junnan, et al. "Blip: Bootstrapping language-image pre-training for unified vision-language understanding and generation." International conference on machine learning. PMLR, 2022.
BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
Junnan Li Dongxu Li Caiming Xiong Steven Hoi<br>Salesforce Research<br>https://github.com/salesforce/BLIP
Abstract
**Vision-Language Pre-training (VLP)**은 많은 vision-language task의 성능을 향상시켰다. 그러나 대부분의 기존 사전학습 모델은 이해 기반(understanding-based) task 또는 생성 기반(generation-based) task 중 한쪽에만 뛰어난 성능을 보인다. 더욱이, 성능 향상은 주로 웹에서 수집된 노이즈가 많은 이미지-텍스트 쌍 데이터셋을 확장함으로써 달성되었는데, 이는 최적의 supervision 소스가 아니다.
본 논문에서는 BLIP을 제안한다. BLIP은 vision-language 이해 task와 생성 task 모두에 유연하게 전이(transfer)될 수 있는 새로운 VLP 프레임워크이다. BLIP은 캡션을 부트스트랩(bootstrapping)하는 방식으로 노이즈가 많은 웹 데이터를 효과적으로 활용한다. 이 과정에서 captioner는 합성 캡션(synthetic captions)을 생성하고, filter는 노이즈가 많은 캡션을 제거한다.
우리는 다음과 같은 광범위한 vision-language task에서 state-of-the-art 결과를 달성했다:
- Image-text retrieval: 평균 recall@1에서 +2.7% 향상
- Image captioning: CIDEr에서 +2.8% 향상
- VQA: VQA score에서 +1.6% 향상
BLIP은 또한 zero-shot 방식으로 video-language task에 직접 전이될 때 강력한 일반화 능력을 보여준다. 코드, 모델 및 데이터셋은 공개되었다.
1. Introduction
Vision-language pre-training은 최근 다양한 멀티모달 다운스트림 task에서 엄청난 성공을 거두었다. 그러나 기존 방법들은 두 가지 주요 한계점을 가지고 있다:
(1) 모델 관점: 대부분의 방법은 encoder-based model (Radford et al., 2021; Li et al., 2021a) 또는 encoder-decoder model (Cho et al., 2021; Wang et al., 2021)을 채택한다. 하지만 encoder-based model은 텍스트 생성 task (예: image captioning)로 직접 전환하기가 덜 직관적이며, encoder-decoder model은 image-text retrieval task에 성공적으로 적용되지 못했다.
(2) 데이터 관점: 대부분의 state-of-the-art 방법들 (예: CLIP (Radford et al., 2021), ALBEF (Li et al., 2021a), SimVLM (Wang et al., 2021))은 웹에서 수집된 image-text pair로 사전학습을 수행한다. 데이터셋 규모를 확장하여 성능 향상을 얻었음에도 불구하고, 본 논문은 노이즈가 많은 웹 텍스트가 vision-language 학습에 최적화되지 못함을 보여준다.
Figure 1. 우리는 웹 이미지에 대한 합성 캡션을 생성하기 위해 Captioner (Cap)를 사용하고, 노이즈가 많은 캡션을 제거하기 위해 Filter (Filt)를 사용한다.
이러한 문제 해결을 위해 우리는 BLIP (Bootstrapping Language-Image Pre-training) 을 제안한다. BLIP은 통합된 vision-language 이해 및 생성을 위한 새로운 VLP 프레임워크로, 기존 방법들보다 더 넓은 범위의 다운스트림 task를 가능하게 한다. BLIP은 모델 및 데이터 관점에서 각각 두 가지 기여를 한다:
(a) Multimodal mixture of Encoder-Decoder (MED): 효과적인 multi-task pre-training 및 유연한 transfer learning을 위한 새로운 모델 아키텍처이다. MED는 unimodal encoder, image-grounded text encoder, 또는 image-grounded text decoder 중 하나로 작동할 수 있다. 이 모델은 세 가지 vision-language objective로 공동 사전학습된다: image-text contrastive learning, image-text matching, image-conditioned language modeling.
(b) Captioning and Filtering (CapFilt): 노이즈가 많은 image-text pair로부터 학습하기 위한 새로운 데이터 부트스트래핑(bootstrapping) 방법이다. 우리는 사전학습된 MED를 두 가지 모듈로 fine-tuning한다: 웹 이미지가 주어졌을 때 합성 캡션을 생성하는 captioner와, 원본 웹 텍스트 및 합성 텍스트에서 노이즈가 많은 캡션을 제거하는 filter.
우리는 광범위한 실험과 분석을 수행했으며, 다음과 같은 주요 관찰 결과를 얻었다.
- 우리는 captioner와 filter가 함께 작동하여 캡션을 부트스트래핑함으로써 다양한 다운스트림 task에서 상당한 성능 향상을 달성함을 보여준다. 또한, 더 다양한 캡션이 더 큰 성능 향상을 가져옴을 발견했다.
- BLIP은 image-text retrieval, image captioning, visual question answering, visual reasoning, visual dialog를 포함한 광범위한 vision-language task에서 state-of-the-art 성능을 달성한다. 또한, 모델을 text-to-video retrieval 및 videoQA와 같은 두 가지 비디오-언어 task에 직접 전환했을 때 state-of-the-art zero-shot 성능을 달성한다.
Figure 2. BLIP의 사전학습 모델 아키텍처 및 objective (동일한 파라미터는 동일한 색상). 우리는 multimodal mixture of encoder-decoder를 제안하며, 이는 다음 세 가지 기능 중 하나로 작동할 수 있는 통합 vision-language model이다:
(1) Unimodal encoder는 vision 및 language representation을 정렬하기 위해 image-text contrastive (ITC) loss로 학습된다.
(2) Image-grounded text encoder는 vision-language 상호작용을 모델링하기 위해 추가적인 cross-attention layer를 사용하며, 긍정 및 부정 image-text pair를 구별하기 위해 image-text matching (ITM) loss로 학습된다.
(3) Image-grounded text decoder는 bi-directional self-attention layer를 causal self-attention layer로 대체하며, encoder와 동일한 cross-attention layer 및 feed forward network를 공유한다. decoder는 이미지가 주어졌을 때 캡션을 생성하기 위해 language modeling (LM) loss로 학습된다.
2. Related Work
2.1. Vision-language Pre-training
**Vision-language pre-training (VLP)**은 대규모 이미지-텍스트 쌍으로 모델을 사전학습하여 다운스트림 vision 및 language task의 성능을 향상시키는 것을 목표로 한다. 사람의 주석이 달린 텍스트를 얻는 데 드는 엄청난 비용 때문에, 대부분의 방법들 (Chen et al., 2020; Li et al., 2020; 2021a; Wang et al., 2021; Radford et al., 2021)은 웹에서 크롤링된 이미지와 alt-text 쌍을 사용한다 (Sharma et al., 2018; Changpinyo et al., 2021; Jia et al., 2021). 단순한 규칙 기반 필터를 사용함에도 불구하고, 웹 텍스트에는 여전히 노이즈가 만연하다. 그러나 노이즈의 부정적인 영향은 데이터셋 규모를 확장하여 얻은 성능 향상에 가려져 크게 간과되어 왔다. 본 논문은 노이즈가 많은 웹 텍스트가 vision-language 학습에 최적이지 않음을 보여주고, 웹 데이터셋을 보다 효과적으로 활용하는 CapFilt를 제안한다.
다양한 vision 및 language task를 단일 프레임워크로 통합하려는 시도가 많이 있었다 (Zhou et al., 2020; Cho et al., 2021; Wang et al., 2021). 가장 큰 과제는 이해 기반 task (예: image-text retrieval)와 생성 기반 task (예: image captioning)를 모두 수행할 수 있는 모델 아키텍처를 설계하는 것이다. Encoder 기반 모델 (Li et al., 2021a;b; Radford et al., 2021)이나 encoder-decoder 모델 (Cho et al., 2021; Wang et al., 2021) 모두 두 가지 유형의 task에서 모두 뛰어날 수 없으며, 단일 통합 encoder-decoder (Zhou et al., 2020) 또한 모델의 능력을 제한한다. 우리가 제안하는 multimodal mixture of encoder-decoder 모델은 사전학습을 간단하고 효율적으로 유지하면서도, 광범위한 다운스트림 task에서 더 큰 유연성과 더 나은 성능을 제공한다.
2.2. Knowledge Distillation
지식 증류(Knowledge Distillation, KD) (Hinton et al., 2015)는 교사(teacher) 모델로부터 지식을 증류(distill)하여 학생(student) 모델의 성능을 향상시키는 것을 목표로 한다. Self-distillation은 교사와 학생 모델의 크기가 동일한 KD의 특별한 경우이다. 이는 이미지 분류(image classification) (Xie et al., 2020)에서 효과적임이 입증되었으며, 최근에는 VLP(Vision-Language Pre-training) (Li et al., 2021a)에서도 그 효과가 확인되었다.
대부분의 기존 KD 방법들이 단순히 학생 모델이 교사 모델과 동일한 클래스 예측을 하도록 강제하는 것과 달리, 우리가 제안하는 CapFilt는 VLP 맥락에서 KD를 수행하는 보다 효과적인 방법으로 해석될 수 있다. CapFilt에서는 captioner가 의미적으로 풍부한 합성 캡션(semantically-rich synthetic captions)을 통해 지식을 증류하고, filter는 노이즈가 많은 캡션을 제거함으로써 지식을 증류한다.
2.3. Data Augmentation
데이터 증강(DA)은 컴퓨터 비전 분야에서 널리 채택되어 왔지만 (Shorten & Khoshgoftaar, 2019), 언어 task를 위한 DA는 덜 직관적이다. 최근에는 생성형 언어 모델이 다양한 NLP task를 위한 예시를 합성하는 데 사용되었다 (Kumar et al., 2020; Anaby-Tavor et al., 2020; Puri et al., 2020; Yang et al., 2020). 이러한 방법들은 low-resource 언어 전용 task에 초점을 맞추는 반면, 우리의 방법은 대규모 vision-language pre-training에서 합성 캡션의 이점을 보여준다.
3. Method
우리는 노이즈가 많은 이미지-텍스트 쌍으로부터 학습하기 위한 통합 VLP 프레임워크인 BLIP을 제안한다. 이 섹션에서는 먼저 새로운 모델 아키텍처 MED와 그 **사전학습 목표(pre-training objectives)**를 소개하고, 이어서 데이터셋 부트스트래핑을 위한 CapFilt를 설명한다.
3.1. Model Architecture
우리는 이미지 인코더로 **visual Transformer (Dosovitskiy et al., 2021)**를 사용한다. 이 인코더는 입력 이미지를 패치로 나누고, 이를 임베딩 시퀀스로 인코딩하며, 전역 이미지 feature를 나타내는 추가적인 [CLS] token을 포함한다. 시각 feature 추출을 위해 사전학습된 object detector를 사용하는 방식(Chen et al., 2020)과 비교할 때, ViT(Vision Transformer)를 사용하는 것이 연산 친화적이며, 최근 방법들(Li et al., 2021a; Kim et al., 2021)에서 채택되고 있다.
이해(understanding) 및 생성(generation) 능력을 모두 갖춘 통합 모델을 사전학습하기 위해, 우리는 **multimodal mixture of encoder-decoder (MED)**를 제안한다. MED는 다음 세 가지 기능 중 하나로 작동할 수 있는 multi-task 모델이다:
(1) Unimodal encoder: 이미지와 텍스트를 각각 독립적으로 인코딩한다. 텍스트 인코더는 **BERT (Devlin et al., 2019)**와 동일하며, 문장을 요약하기 위해 텍스트 입력의 시작 부분에 [CLS] token이 추가된다.
(2) Image-grounded text encoder: 텍스트 인코더의 각 Transformer 블록에서 self-attention (SA) layer와 feed forward network (FFN) 사이에 하나의 cross-attention (CA) layer를 추가로 삽입하여 시각 정보를 주입한다. 텍스트에는 task-specific [Encode] token이 추가되며, [Encode]의 출력 임베딩은 이미지-텍스트 쌍의 멀티모달 표현으로 사용된다.
(3) Image-grounded text decoder: image-grounded text encoder의 bidirectional self-attention layer를 causal self-attention layer로 대체한다. 시퀀스의 시작을 알리기 위해 [Decode] token이 사용되며, 시퀀스의 끝을 알리기 위해 end-of-sequence token이 사용된다.
3.2. Pre-training Objectives
우리는 사전학습 동안 두 가지 이해 기반(understanding-based) objective와 한 가지 생성 기반(generation-based) objective를 포함하는 세 가지 objective를 공동으로 최적화한다. 각 이미지-텍스트 쌍은 연산량이 더 많은 visual Transformer를 한 번, 그리고 text Transformer를 세 번 통과해야 한다. 이때, 아래에 설명된 세 가지 loss를 계산하기 위해 서로 다른 기능들이 활성화된다.
**Image-Text Contrastive Loss (ITC)**는 unimodal encoder를 활성화한다. 이 loss는 긍정적인 이미지-텍스트 쌍이 부정적인 쌍과 대조적으로 유사한 표현을 갖도록 유도함으로써, visual Transformer와 text Transformer의 feature space를 정렬하는 것을 목표로 한다. 이는 vision 및 language 이해 능력을 향상시키는 효과적인 objective로 입증되었다 (Radford et al., 2021; Li et al., 2021a). 우리는 Li et al. (2021a)의 ITC loss를 따르는데, 이 방식에서는 momentum encoder가 feature를 생성하고, momentum encoder로부터 soft label이 생성되어 학습 목표로 사용된다. 이는 부정적인 쌍 내에 잠재적인 긍정 쌍이 있을 수 있는 경우를 고려하기 위함이다.
**Image-Text Matching Loss (ITM)**은 image-grounded text encoder를 활성화한다. 이 loss는 vision과 language 간의 fine-grained alignment를 포착하는 이미지-텍스트 멀티모달 표현을 학습하는 것을 목표로 한다. ITM은 이진 분류(binary classification) task로, 모델은 **ITM head (선형 layer)**를 사용하여 멀티모달 feature가 주어졌을 때 이미지-텍스트 쌍이 긍정(일치)인지 부정(불일치)인지 예측한다. 더 유익한 부정 쌍을 찾기 위해, 우리는 Li et al. (2021a)의 hard negative mining 전략을 채택한다. 이 전략에서는 batch 내에서 contrastive 유사도가 높은 부정 쌍이 loss 계산에 선택될 가능성이 더 높다.
**Language Modeling Loss (LM)**는 image-grounded text decoder를 활성화하며, 이는 주어진 이미지에 대한 텍스트 설명을 생성하는 것을 목표로 한다. 이 loss는 cross entropy loss를 최적화하여, 모델이 autoregressive 방식으로 텍스트의 likelihood를 최대화하도록 학습시킨다. loss 계산 시 0.1의 label smoothing을 적용한다. VLP에 널리 사용되는 MLM loss와 비교할 때, LM은 시각 정보를 일관성 있는 caption으로 변환하는 일반화 능력을 모델에 부여한다.
멀티태스크 학습을 활용하면서 효율적인 사전학습을 수행하기 위해, text encoder와 text decoder는 SA layer를 제외한 모든 파라미터를 공유한다. 그 이유는 인코딩 및 디코딩 task 간의 차이가 SA layer에서 가장 잘 포착되기 때문이다. 특히, encoder는 bi-directional self-attention을 사용하여 현재 입력 토큰에 대한 표현을 구축하는 반면, decoder는 causal self-attention을 사용하여 다음 토큰을 예측한다. 반면에 embedding layer, CA layer 및 FFN은 인코딩 및 디코딩 task 간에 유사하게 기능하므로, 이러한 layer를 공유하면 멀티태스크 학습의 이점을 얻으면서 학습 효율성을 향상시킬 수 있다.
3.3. CapFilt
높은 어노테이션 비용 때문에, 고품질의 사람이 직접 주석한 이미지-텍스트 쌍 (예: COCO (Lin et al., 2014))의 수는 제한적이다. 최근 연구(Li et al., 2021a; Wang et al., 2021)에서는 웹에서 자동으로 수집된 훨씬 더 많은 수의 이미지와 alt-text 쌍 을 활용한다. 그러나 alt-text는 종종 이미지의 시각적 내용을 정확하게 설명하지 못하여, vision-language alignment 학습에 최적화되지 않은 노이즈 신호가 된다.
Figure 3. BLIP의 학습 프레임워크. 웹 이미지에 대한 합성 캡션을 생성하는 captioner와 노이즈가 있는 이미지-텍스트 쌍을 제거하는 filter를 도입한다. captioner와 filter는 동일한 사전학습된 모델로 초기화되며, 소규모의 사람이 주석한 데이터셋에서 개별적으로 fine-tuning된다. 이렇게 부트스트랩된(bootstrapped) 데이터셋은 새로운 모델을 사전학습하는 데 사용된다.
우리는 텍스트 코퍼스의 품질을 향상시키기 위한 새로운 방법인 **Captioning and Filtering (CapFilt)**를 제안한다. Figure 3은 CapFilt의 개념을 보여준다. CapFilt는 두 가지 모듈을 도입한다:
- captioner: 웹 이미지가 주어졌을 때 캡션을 생성하는 모듈
- filter: 노이즈가 있는 이미지-텍스트 쌍을 제거하는 모듈
captioner와 filter는 모두 동일한 사전학습된 MED 모델로 초기화되며, COCO 데이터셋에서 개별적으로 fine-tuning된다. 이 fine-tuning 과정은 경량(lightweight) 절차이다.
구체적으로, captioner는 이미지 기반 텍스트 decoder이다. 이미지가 주어졌을 때 텍스트를 디코딩하도록 LM objective로 fine-tuning된다. 웹 이미지 가 주어지면, captioner는 이미지당 하나의 캡션을 가진 **합성 캡션(synthetic captions) **를 생성한다. filter는 이미지 기반 텍스트 encoder이다. 텍스트가 이미지와 일치하는지 학습하기 위해 ITC 및 ITM objective로 fine-tuning된다. filter는 원본 웹 텍스트 와 합성 텍스트 모두에서 노이즈가 있는 텍스트를 제거한다. 여기서 텍스트는 ITM head가 이미지와 일치하지 않는다고 예측하면 노이즈가 있는 것으로 간주된다. 마지막으로, 필터링된 이미지-텍스트 쌍과 사람이 주석한 쌍을 결합하여 새로운 데이터셋을 형성하고, 이를 사용하여 새로운 모델을 사전학습한다.
4. Experiments and Discussions
이 섹션에서는 먼저 사전학습(pre-training) 세부 사항을 소개한다. 이어서 우리 방법론에 대한 상세한 실험 분석을 제공한다.
4.1. Pre-training Details
우리의 모델은 PyTorch (Paszke et al., 2019)로 구현되었으며, 16-GPU 노드 2개에서 사전학습되었다. image Transformer는 ImageNet (Touvron et al., 2020; Dosovitskiy et al., 2021)으로 사전학습된 ViT로 초기화되었고, text Transformer는 (Devlin et al., 2019)로 초기화되었다. 우리는 ViT의 두 가지 변형인 ViT-B/16과 ViT-L/16을 탐구한다. 특별한 언급이 없는 한, 본 논문에서 "BLIP"으로 보고된 모든 결과는 ViT-B를 사용한다.
우리는 batch size 2880 (ViT-B) / 2400 (ViT-L)을 사용하여 20 epoch 동안 모델을 사전학습한다. AdamW (Loshchilov & Hutter, 2017) optimizer를 사용하며, weight decay는 0.05이다. learning rate는 (ViT-B) / (ViT-L)까지 warm-up된 후, 0.85의 비율로 선형적으로 감소한다. 사전학습 중에는 해상도의 무작위 이미지 크롭을 사용하고, fine-tuning 중에는 이미지 해상도를 로 증가시킨다.
우리는 Li et al. (2021a)와 동일한 사전학습 데이터셋을 사용하며, 여기에는 총 1,400만 개의 이미지가 포함된다. 이 데이터셋은 두 개의 human-annotated 데이터셋 (COCO 및 Visual Genome (Krishna et al., 2017))과 세 개의 웹 데이터셋 (Conceptual Captions (Changpinyo et al., 2021), Conceptual 12M (Changpinyo et al., 2021), SBU captions (Ordonez et al., 2011))으로 구성된다. 우리는 또한 텍스트 노이즈가 더 많은 1억 1,500만 개의 이미지를 포함하는 추가 웹 데이터셋인 LAION (Schuhmann et al., 2021)으로도 실험을 진행했다. 데이터셋에 대한 더 자세한 내용은 appendix에서 확인할 수 있다.
4.2. Effect of CapFilt
Table 1에서는 CapFilt의 다운스트림 task(fine-tuned 및 zero-shot 설정의 image-text retrieval 및 image captioning 포함)에 대한 효능을 입증하기 위해 서로 다른 데이터셋으로 사전학습된 모델들을 비교한다.
1,400만 개의 이미지로 구성된 데이터셋에 captioner 또는 filter만 적용했을 때 성능 향상이 관찰된다. 이 둘을 함께 적용하면 서로의 효과를 보완하여, 원본의 noisy한 웹 텍스트를 사용했을 때보다 상당한 성능 향상을 가져온다.
CapFilt는 더 큰 데이터셋과 더 큰 vision backbone을 사용하면 성능을 더욱 향상시킬 수 있으며, 이는 데이터 크기와 모델 크기 모두에서 CapFilt의 확장성을 입증한다. 또한, ViT-L을 사용하는 대형 captioner와 filter를 활용하면, 기본 모델의 성능도 향상될 수 있다.
BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
Pre-train dataset | Bootstrap | Vision backbone | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
C | F | TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
COCO+VG +CC+SBU (14M imgs) | X | ViT-B/16 | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 | |
B | 79.1 | 61.5 | 94.1 | 82.8 | 38.1 | 128.2 | 102.7 | 14.0 | |||
79.7 | 62.0 | 94.4 | 83.6 | 38.4 | 128.9 | 103.4 | 14.2 | ||||
B | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 | |||
COCO+VG +CC+SBU +LAION ( 129 M imgs ) | ViT-B/16 | 79.6 | 62.0 | 94.3 | 83.6 | 38.8 | 130.1 | 105.4 | 14.2 | ||
81.9 | 64.3 | 96.0 | 85.0 | 39.4 | 131.4 | 106.3 | 14.3 | ||||
81.2 | 64.1 | 96.0 | 85.5 | 39.7 | 133.3 | 109.6 | 14.7 | ||||
ViT-L/16 | 80.6 | 64.1 | 95.1 | 85.5 | 40.3 | 135.5 | 112.5 | 14.7 | |||
82.4 | 65.1 | 96.7 | 86.7 | 40.4 | 136.7 | 113.2 | 14.8 |
Table 1. 데이터셋 부트스트래핑을 위한 captioner (C)와 filter (F)의 효과 평가. 다운스트림 task에는 fine-tuning (FT) 및 zero-shot (ZS) 설정의 image-text retrieval과 image captioning이 포함된다. TR / IR@1: text retrieval / image retrieval의 recall@1. : captioner 또는 filter가 vision backbone으로 ViT-B / ViT-L을 사용함을 의미한다.
Figure 4. 웹 텍스트 와 합성 텍스트 의 예시. 녹색 텍스트는 filter에 의해 수락된 반면, 빨간색 텍스트는 거부되었다.
Generation method | Noise ratio | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
---|---|---|---|---|---|---|---|---|---|
TR@1 | IR@1 | TR@1 | IR@1 | B @ 4 | CIDEr | CIDEr | SPICE | ||
None | N.A. | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 |
Beam | 19% | 79.6 | 61.9 | 94.1 | 83.1 | 38.4 | 128.9 | 103.5 | 14.2 |
Nucleus | 25% | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
Table 2. 합성 캡션 생성을 위한 beam search와 nucleus sampling 비교. 모델은 1,400만 개의 이미지로 사전학습되었다.
Layers shared | #parameters | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
---|---|---|---|---|---|---|---|---|---|
TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
All | 224 M | 77.3 | 59.5 | 93.1 | 81.0 | 37.2 | 125.9 | 100.9 | 13.1 |
All except CA | 252 M | 77.5 | 59.9 | 93.1 | 81.3 | 37.4 | 126.1 | 101.2 | 13.1 |
All except SA | 252 M | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 |
None | 361 M | 78.3 | 60.5 | 93.6 | 81.9 | 37.8 | 127.4 | 101.8 | 13.9 |
Table 3. 사전학습 중 text encoder와 decoder에 대한 다양한 파라미터 공유 전략 비교.
Figure 4에서는 몇 가지 캡션 예시와 해당 이미지를 보여준다. 이는 새로운 텍스트 설명을 생성하는 captioner의 효과와, 원본 웹 텍스트 및 합성 텍스트에서 noisy한 캡션을 제거하는 filter의 효과를 정성적으로 보여준다. 더 많은 예시는 부록에서 확인할 수 있다.
4.3. Diversity is Key for Synthetic Captions
CapFilt에서는 nucleus sampling (Holtzman et al., 2020)을 사용하여 합성 캡션을 생성한다. Nucleus sampling은 확률적 디코딩(stochastic decoding) 방법으로, 각 토큰은 누적 확률 질량(cumulative probability mass)이 임계값 (실험에서는 )를 초과하는 토큰 집합에서 샘플링된다. Table 2에서 우리는 이를 beam search와 비교한다. Beam search는 가장 높은 확률을 가진 캡션을 생성하는 것을 목표로 하는 결정론적 디코딩(deterministic decoding) 방법이다.
Nucleus sampling은 필터에서 더 높은 노이즈 비율이 나타내는 것처럼 더 노이즈가 많음에도 불구하고, 확실히 더 나은 성능을 보인다. 우리는 그 이유가 nucleus sampling이 더 다양하고 예상치 못한 캡션을 생성하여, 모델이 활용할 수 있는 더 많은 새로운 정보를 포함하기 때문이라고 가정한다. 반면에 beam search는 데이터셋에서 흔히 볼 수 있는 안전한 캡션을 생성하는 경향이 있어, 추가적인 지식을 덜 제공한다.
4.4. Parameter Sharing and Decoupling
사전학습(pre-training) 동안, text encoder와 decoder는 self-attention layer를 제외한 모든 파라미터를 공유한다. Table 3에서는 다양한 파라미터 공유 전략으로 사전학습된 모델들을 평가했으며, 사전학습은 웹 텍스트가 포함된 1,400만 개의 이미지로 수행되었다. 결과에서 보듯이, self-attention을 제외한 모든 파라미터를 공유하는 것이 파라미터를 공유하지 않는 것보다 더 나은 성능을 보였으며, 모델 크기를 줄여 학습 효율성도 향상시켰다. 만약 self-attention layer까지 공유한다면, encoding task와 decoding task 간의 충돌로 인해 모델 성능이 저하될 것이다.
BLIP: 통합 Vision-Language 이해 및 생성을 위한 Bootstrapping Language-Image Pre-training
Captioner & | Noise | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
---|---|---|---|---|---|---|---|---|---|
Filter | ratio | TR@1 | IR@1 | TR@1 | IR@1 | B @ 4 | CIDEr | CIDEr | SPICE |
Share parameters | 79.8 | 62.2 | 94.3 | 83.7 | 38.4 | 129.0 | 103.5 | 14.2 | |
Decoupled | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
Table 4. Captioner와 filter 간의 파라미터 공유 효과. 모델은 1,400만 개의 이미지로 사전학습되었다.
Method | Pre-train # Images | TR <br> COCO ( 5 K test set) | Flickr30K (1K test set) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TR | IR | ||||||||||||
UNITER (Chen et al., 2020) | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | |
4M | 65.7 | 88.6 | 93.8 | 52.9 | 79.9 | 88.0 | 87.3 | 98.0 | 99.2 | 75.6 | 94.1 | 96.8 | |
VILLA (Gan et al., 2020) | 4M | - | - | - | - | - | - | 87.9 | 97.5 | 98.8 | 76.3 | 94.2 | 96.8 |
OSCAR (Li et al., 2020) | 4M | 70.0 | 91.1 | 95.5 | 54.0 | 80.8 | 88.5 | - | - | - | - | - | - |
UNIMO (Li et al., 2021b) | 5.7 M | - | - | - | - | - | - | 89.4 | 98.9 | 99.8 | 78.0 | 94.2 | 97.1 |
ALIGN (Jia et al., 2021) | 1.8 B | 77.0 | 93.5 | 96.9 | 59.9 | 83.3 | 89.8 | 95.3 | 99.8 | 100.0 | 84.9 | 97.4 | 98.6 |
ALBEF (Li et al., 2021a) | 14 M | 77.6 | 94.3 | 97.2 | 60.7 | 84.3 | 90.5 | 95.9 | 99.8 | 100.0 | 85.6 | 97.5 | 98.9 |
BLIP | 14 M | 80.6 | 95.2 | 97.6 | 63.1 | 85.3 | 91.1 | 96.6 | 99.8 | 100.0 | 87.2 | 97.5 | 98.8 |
BLIP | 129 M | 81.9 | 95.4 | 97.8 | 64.3 | 85.7 | 91.5 | 97.3 | 99.9 | 100.0 | 87.3 | 97.6 | 98.9 |
BLIP | 129 M | 81.2 | 95.7 | 97.9 | 64.1 | 85.8 | 91.6 | 97.2 | 99.9 | 100.0 | 87.5 | 97.7 | 98.9 |
BLIP | 129 M | 82.4 | 95.4 | 97.9 | 65.1 | 86.3 | 91.8 | 97.4 | 99.8 | 99.9 | 87.6 | 97.7 | 99.0 |
Table 5. COCO 및 Flickr30K 데이터셋으로 fine-tuning된 state-of-the-art 이미지-텍스트 검색 방법과의 비교. 은 ViT-L을 사용하는 captioner와 filter로 부트스트랩된 데이터셋을 사용하여 ViT-B backbone으로 모델을 사전학습한다.
Method | Pre-train # Images | Flickr30K (1K test set) | |||||
---|---|---|---|---|---|---|---|
TR | IR | ||||||
R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | ||
CLIP | 400M | 88.0 | 98.7 | 99.4 | 68.7 | 90.6 | 95.2 |
ALIGN | 1.8 B | 88.6 | 98.7 | 99.7 | 75.7 | 93.8 | 96.8 |
ALBEF | 14 M | 94.1 | 99.5 | 99.7 | 82.8 | 96.3 | 98.1 |
BLIP | 14M | 94.8 | 99.7 | 100.0 | 84.9 | 96.7 | 98.3 |
BLIP | 129 M | 96.0 | 99.9 | 100.0 | 85.0 | 96.8 | 98.6 |
BLIP | 129 M | 96.0 | 99.9 | 100.0 | 85.5 | 96.8 | 98.7 |
BLIP | 129 M | 96.7 | 100.0 | 100.0 | 86.7 | 97.3 | 98.7 |
Table 6. Flickr30K에서의 zero-shot 이미지-텍스트 검색 결과.
파라미터를 공유하는 것이 공유하지 않는 것보다 더 나은 성능을 보였으며, 모델 크기를 줄여 학습 효율성도 향상시켰다. 만약 SA layer까지 공유한다면, encoding task와 decoding task 간의 충돌로 인해 모델 성능이 저하될 것이다.
CapFilt 과정에서 captioner와 filter는 COCO 데이터셋에서 개별적으로 end-to-end fine-tuning된다. Table 4에서는 captioner와 filter가 사전학습과 동일한 방식으로 파라미터를 공유할 경우의 효과를 연구한다. 결과적으로 다운스트림 task에서의 성능이 감소하는데, 이는 주로 확증 편향(confirmation bias) 때문으로 분석된다. 파라미터 공유로 인해 captioner가 생성한 noisy caption이 filter에 의해 걸러질 가능성이 낮아지기 때문이며, 이는 **더 낮은 noise ratio (25% 대비 8%)**로 나타난다.
5. Comparison with State-of-the-arts
이 섹션에서는 BLIP을 다양한 vision-language downstream task에 대한 기존 VLP 방법들과 비교한다. 다음으로 각 task와 fine-tuning 전략을 간략하게 소개한다. 더 자세한 내용은 appendix에서 확인할 수 있다.
5.1. Image-Text Retrieval
우리는 COCO 및 Flickr30K (Plummer et al., 2015) 데이터셋에서 **image-to-text retrieval (TR)**과 text-to-image retrieval (IR) 모두에 대해 BLIP을 평가한다. 우리는 사전학습된 모델을 ITC 및 ITM loss를 사용하여 fine-tuning한다. 더 빠른 추론 속도를 위해, 우리는 Li et al. (2021a)의 방식을 따라 먼저 이미지-텍스트 feature 유사도를 기반으로 개의 후보를 선택하고, **선택된 후보들을 쌍별 ITM 점수를 기반으로 재순위화(rerank)**한다. 우리는 COCO에 대해 , Flickr30K에 대해 로 설정한다.
Table 5에서 볼 수 있듯이, BLIP은 기존 방법들과 비교하여 상당한 성능 향상을 달성한다. 동일한 1,400만 개의 사전학습 이미지를 사용하여, BLIP은 COCO에서 평균 recall@1에서 이전 최고 모델인 ALBEF보다 +2.7% 더 우수한 성능을 보인다. 우리는 또한 COCO에서 fine-tuning된 모델을 Flickr30K로 직접 전이하여 zero-shot retrieval을 수행한다. 그 결과는 Table 6에 나와 있으며, BLIP은 여기서도 기존 방법들을 큰 차이로 능가한다.
5.2. Image Captioning
우리는 이미지 캡셔닝을 위해 두 가지 데이터셋, 즉 **NoCaps (Agrawal et al., 2019)**와 COCO를 고려하며, 두 데이터셋 모두 LM loss로 COCO에서 fine-tuning된 모델을 사용하여 평가한다. Wang et al. (2021)과 유사하게, 각 캡션의 시작 부분에 "a picture of"라는 prompt를 추가하였으며, 이는 약간 더 나은 결과를 가져왔다. Table 7에서 볼 수 있듯이, 14M 개의 사전학습 이미지를 사용한 BLIP은 유사한 양의 사전학습 데이터를 사용하는 방법들보다 훨씬 뛰어난 성능을 보인다. 129M 개의 이미지를 사용한 BLIP은 200M 개의 이미지를 사용한 LEMON과 경쟁력 있는 성능을 달성한다.
Method | Pre-train #Images | NoCaps validation | overall | COCO Caption | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
in-domain | near-domain | out-domain | Karpathy test | ||||||||
C | S | C | S | C | S | C | S | B@4 | C | ||
Enc-Dec (Changpinyo et al., 2021) | 15 M | 92.6 | 12.5 | 88.3 | 12.1 | 94.5 | 11.9 | 90.2 | 12.1 | - | 110.9 |
VinVL (Zhang et al., 2021) | 5.7 M | 103.1 | 14.2 | 96.1 | 13.8 | 88.3 | 12.1 | 95.5 | 13.5 | 38.2 | 129.3 |
LEMON (Hu et al., 2021) | 12 M | 104.5 | 14.6 | 100.7 | 14.0 | 96.7 | 12.4 | 100.4 | 13.8 | - | - |
(Hu et al., 2021) | 200 M | 107.7 | 14.7 | 106.2 | 14.3 | 107.9 | 13.1 | 106.8 | 14.1 | 40.3 | 133.3 |
BLIP | 14 M | 111.3 | 15.1 | 104.5 | 14.4 | 102.4 | 13.7 | 105.1 | 14.4 | 38.6 | 129.7 |
BLIP | 129 M | 109.1 | 14.8 | 105.8 | 14.4 | 105.7 | 13.7 | 106.3 | 14.3 | 39.4 | 131.4 |
BLIP | 129 M | 111.8 | 14.9 | 108.6 | 14.8 | 111.5 | 14.2 | 109.6 | 14.7 | 39.7 | 133.3 |
(Hu et al., 2021) | 200 M | 116.9 | 15.8 | 113.3 | 15.1 | 111.3 | 14.0 | 113.4 | 15.0 | 40.6 | 135.7 |
SimVLM (Wang et al., 2021) | 1.8 B | 113.7 | - | 110.9 | 115.2 | - | 112.2 | - | 40.6 | 143.3 | |
BLIP | 129 M | 114.9 | 15.2 | 112.1 | 14.9 | 115.3 | 14.4 | 113.2 | 14.8 | 40.4 | 136.7 |
Table 7. NoCaps 및 COCO Caption에서 state-of-the-art 이미지 캡셔닝 방법들과의 비교.
모든 방법은 fine-tuning 시 cross-entropy loss를 최적화한다.
C: CIDEr, S: SPICE, B@4: BLEU@4.
**BLIP**은 ViT-L을 사용하는 captioner와 filter로 부트스트랩된 데이터셋으로 사전학습되었다.
VinVL 및 LEMON 은 2.5M 개의 이미지에 대해 사람의 주석이 달린 bounding box로 사전학습된 object detector와 고해상도() 입력 이미지를 필요로 한다.
**SimVLM**는 ViT-L보다 13배 더 많은 학습 데이터와 더 큰 vision backbone을 사용한다.
Figure 5. 다운스트림 task를 위한 모델 아키텍처.
Q: question; C: caption; QA: question-answer pair.
LEMON은 계산 비용이 많이 드는 사전학습된 object detector와 더 높은 해상도()의 입력 이미지를 필요로 하여, 더 낮은 해상도()의 입력 이미지를 사용하는 detector-free BLIP보다 추론 시간이 상당히 느리다.
5.3. Visual Question Answering (VQA)
VQA (Antol et al., 2015)는 모델이 이미지와 질문이 주어졌을 때 답변을 예측하도록 요구하는 task이다. 우리는 VQA를 다중 답변 분류 task로 정식화하는 대신 (Chen et al., 2020; Li et al., 2020), Li et al. (2021a)를 따라 답변 생성 task로 간주하며, 이는 open-ended VQA를 가능하게 한다. Figure 5(a)에서 보듯이, fine-tuning 동안 우리는 사전학습된 모델을 재구성한다. 여기서 이미지-질문 쌍은 먼저 멀티모달 embedding으로 인코딩된 후, 답변 decoder에 입력된다. VQA 모델은 정답을 target으로 사용하여 LM loss로 fine-tuning된다.
Method | Pre-train #Images | VQA | NLVR | ||
---|---|---|---|---|---|
test-dev | test-std | dev | test-P | ||
LXMERT | 180 K | 72.42 | 72.54 | 74.90 | 74.50 |
UNITER | 4M | 72.70 | 72.91 | 77.18 | 77.85 |
VL-T5/BART | 180 K | - | 71.3 | - | 73.6 |
OSCAR | 4M | 73.16 | 73.44 | 78.07 | 78.36 |
SOHO | 219 K | 73.25 | 73.47 | 76.37 | 77.32 |
VILLA | 4M | 73.59 | 73.67 | 78.39 | 79.30 |
UNIMO | 5.6 M | 75.06 | 75.27 | - | - |
ALBEF | 14 M | 75.84 | 76.04 | 82.55 | 83.14 |
SimVLM | 1.8 B | 77.87 | 78.14 | 81.72 | 81.77 |
BLIP | 14 M | 77.54 | 77.62 | 82.67 | 82.30 |
BLIP | 129 M | 78.24 | 78.17 | 82.48 | 83.08 |
BLIP | 129 M | 78.25 | 78.32 | 82.15 | 82.24 |
Table 8. VQA 및 NLVR 에 대한 state-of-the-art 방법들과의 비교. ALBEF는 NLVR 를 위해 추가적인 사전학습 단계를 수행한다. SimVLM 은 BLIP보다 13배 더 많은 학습 데이터와 더 큰 vision backbone (ResNet+ViT)을 사용한다.
결과는 Table 8에 제시되어 있다. 1,400만 개의 이미지를 사용한 BLIP은 test set에서 ALBEF보다 +1.64% 더 우수한 성능을 보인다. 1억 2,900만 개의 이미지를 사용한 BLIP은 SimVLM보다 더 나은 성능을 달성하는데, SimVLM은 13배 더 많은 사전학습 데이터와 추가적인 convolution stage를 포함하는 더 큰 vision backbone을 사용한다.
5.4. Natural Language Visual Reasoning (NLVR )
NLVR (Suhr et al., 2019)는 문장이 두 이미지 쌍을 설명하는지 여부를 모델이 예측하도록 요구하는 task이다. 두 이미지에 대한 reasoning을 가능하게 하기 위해, 우리는 사전학습된 모델에 간단한 수정을 가하여 기존 접근 방식(Li et al., 2021a; Wang et al., 2021)보다 계산 효율적인 아키텍처를 만들었다. Figure 5(b)에서 볼 수 있듯이, image-grounded text encoder의 각 Transformer block에는 두 개의 입력 이미지를 처리하기 위한 두 개의 cross-attention layer가 존재하며, 이들의 출력은 병합되어 FFN으로 전달된다. 이 두 CA layer는 동일한 사전학습된 가중치로 초기화된다. 병합(merge) layer는 **encoder의 처음 6개 layer에서는 간단한 평균 풀링(average pooling)**을 수행하고, 6-12번째 layer에서는 concatenation 후 linear projection을 수행한다. [Encode] token의 출력 embedding에는 MLP classifier가 적용된다. Table 8에서 볼 수 있듯이, BLIP은 추가적인 맞춤형 사전학습을 수행하는 ALBEF를 제외한 모든 기존 방법보다 우수한 성능을 보인다. 흥미롭게도, NLVR에서의 성능은 추가적인 웹 이미지로부터 큰 이점을 얻지 못했는데, 이는 웹 데이터와 다운스트림 데이터 간의 domain gap 때문일 수 있다.
Method | MRR | R@ | R@ | R@ | MR |
---|---|---|---|---|---|
VD-BERT | 67.44 | 54.02 | 83.96 | 92.33 | 3.53 |
VD-ViLBERT | 69.10 | 55.88 | 85.50 | 93.29 | 3.25 |
BLIP |
Table 9. VisDial v1.0 validation set에서 state-of-the-art 방법들과의 비교. VD-ViLBERT (Murahari et al., 2020)는 ViLBERT (Lu et al., 2019)를 추가 VQA 데이터로 사전학습한다.
5.5. Visual Dialog (VisDial)
**VisDial (Das et al., 2017)**은 VQA를 자연스러운 대화 설정으로 확장한 것으로, 모델은 이미지-질문 쌍뿐만 아니라 대화 기록(dialog history)과 이미지의 caption까지 고려하여 답변을 예측해야 한다. 우리는 모델이 답변 후보 풀(pool)의 순위를 매기는 discriminative setting을 따른다 (Gan et al., 2019; Wang et al., 2020; Murahari et al., 2020). Figure 5(c)에서 볼 수 있듯이, 우리는 이미지와 caption embedding을 연결하고, 이를 cross-attention을 통해 dialog encoder에 전달한다. dialog encoder는 전체 대화 기록과 이미지-caption embedding이 주어졌을 때, 질문에 대한 답변이 참인지 거짓인지 구별하도록 ITM loss로 학습된다. Table 9에서 보여주듯이, 우리의 방법은 VisDial v1.0 validation set에서 state-of-the-art 성능을 달성한다.
5.6. Zero-shot Transfer to Video-Language Tasks
우리의 이미지-언어 모델은 비디오-언어 task에 대한 강력한 일반화 능력을 보여준다. Table 10과 Table 11에서는 각각 COCO-retrieval 및 VQA로 학습된 모델을 직접 평가하여, text-to-video retrieval 및 video question answering에 대한 zero-shot transfer 성능을 측정하였다. 비디오 입력을 처리하기 위해, 우리는 비디오당 개의 프레임을 균일하게 샘플링하고 (retrieval의 경우 , QA의 경우 ), 프레임 feature들을 단일 시퀀스로 연결한다. 이 간단한 접근 방식은 모든 시간적 정보(temporal information)를 무시한다는 점에 유의해야 한다.
BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
Method | R1 | R5 | R10 | MdR |
---|---|---|---|---|
zero-shot | ||||
ActBERT (Zhu & Yang, 2020) | 8.6 | 23.4 | 33.1 | 36 |
SupportSet (Patrick et al., 2021) | 8.7 | 23.0 | 31.1 | 31 |
MIL-NCE (Miech et al., 2020) | 9.9 | 24.0 | 32.4 | 29.5 |
VideoCLIP (Xu et al., 2021) | 10.4 | 22.2 | 30.0 | - |
FiT (Bain et al., 2021) | 18.7 | 39.5 | 51.6 | 10 |
BLIP | 43.3 | 65.6 | 74.7 | 2 |
finetuning | ||||
ClipBERT (Lei et al., 2021) | 22.0 | 46.8 | 59.9 | 6 |
VideoCLIP (Xu et al., 2021) | 30.9 | 55.4 | 66.8 | - |
Table 10. MSRVTT 데이터셋의 1k test split에서 text-to-video retrieval에 대한 state-of-the-art 방법들과의 비교.
Method | MSRVTT-QA | MSVD-QA |
---|---|---|
zero-shot | ||
VQA-T (Yang et al., 2021) | 2.9 | 7.5 |
BLIP | 19.2 | 35.2 |
finetuning | ||
HME (Fan et al., 2019) | 33.0 | 33.7 |
HCRN (Le et al., 2020) | 35.6 | 36.1 |
VQA-T (Yang et al., 2021) | 41.5 | 46.3 |
Table 11. video question answering에 대한 state-of-the-art 방법들과의 비교. 두 데이터셋에 대한 top-1 test accuracy를 보고한다.
도메인 차이와 temporal modeling의 부재에도 불구하고, 우리의 모델은 두 비디오-언어 task 모두에서 state-of-the-art 성능을 달성한다. text-to-video retrieval의 경우, zero-shot BLIP은 target 비디오 데이터셋에서 fine-tuning된 모델보다 recall@1에서 +12.4% 더 우수한 성능을 보인다. 만약 BLIP 모델을 temporal modeling을 포함하는 비디오-언어 모델을 초기화하는 데 사용하고 (예: 우리의 ViT를 TimeSformer (Bertasius et al., 2021)로 대체) 비디오 데이터로 fine-tuning한다면, 추가적인 성능 향상을 이룰 수 있을 것이다.
6. Additional Ablation Study
이 섹션에서는 CapFilt에 대한 추가 ablation 실험 결과를 제시한다.
CapFilt로 인한 성능 향상은 학습 시간 증가 때문이 아니다.
부트스트랩된 데이터셋은 원본 데이터셋보다 더 많은 텍스트를 포함하므로, 동일한 epoch 수로 학습할 경우 부트스트랩된 데이터셋이 더 오래 걸린다. CapFilt의 효과가 더 긴 학습 시간 때문이 아님을 확인하기 위해, 우리는 원본 데이터셋의 웹 텍스트를 복제하여 부트스트랩된 데이터셋과 epoch당 동일한 수의 학습 샘플을 갖도록 만들었다. Table 12에서 볼 수 있듯이, 노이즈가 많은 웹 텍스트를 사용하여 더 오래 학습해도 성능은 향상되지 않았다.
새로운 모델은 부트스트랩된 데이터셋으로 학습되어야 한다.
부트스트랩된 데이터셋은 새로운 모델을 사전학습하는 데 사용된다. 우리는 이전 사전학습 모델을 계속 학습시키는 효과를 조사한다.
| CapFilt | #Texts | Retrieval-FT (COCO) | | Retrieval-ZS (Flickr) | | Caption-FT (COCO) | | Caption-ZS (NoCaps) | | | :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | | | | TR@1 | IR@1 | TR@1 | IR@1 | B @ 4 | CIDEr | CIDEr | SPICE | | No | 15.3M | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 | | No | 24.7M | 78.3 | 60.5 | 93.7 | 82.2 | 37.9 | 127.7 | 102.1 | 14.0 | | Yes | 24.7M | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
Table 12. 원본 웹 텍스트는 부트스트랩된 데이터셋과 epoch당 동일한 수의 샘플을 갖도록 복제되었다. 결과는 CapFilt로 인한 성능 향상이 더 긴 학습 시간 때문이 아님을 입증한다.
Continue | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
---|---|---|---|---|---|---|---|---|
TR@1 | IR@1 | TR@1 | IR@1 | B @ 4 | CIDEr | CIDEr | SPICE | |
Yes | 80.6 | 63.0 | 94.5 | 84.6 | 38.5 | 129.9 | 104.5 | 14.2 |
No | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
Table 13. 사전학습된 모델을 계속 학습시키는 것은 부트스트랩된 데이터셋으로 새로운 모델을 학습시키는 것에 비해 이득이 적다.
부트스트랩된 데이터셋을 사용하여 이전 사전학습 모델을 계속 학습시키는 효과를 조사한다. Table 13은 계속 학습시키는 것이 도움이 되지 않음을 보여준다. 이러한 관찰은 지식 증류(knowledge distillation)에서 학생 모델이 교사 모델로 초기화될 수 없다는 일반적인 관행과 일치한다.
7. Conclusion
우리는 BLIP을 제안한다. BLIP은 이해 기반(understanding-based) 및 생성 기반(generation-based) task를 포함한 광범위한 다운스트림 vision-language task에서 state-of-the-art 성능을 달성하는 새로운 VLP 프레임워크이다. BLIP은 대규모의 노이즈가 포함된 이미지-텍스트 쌍 데이터셋으로부터 다양한 합성 캡션을 주입하고 노이즈 캡션을 제거하는 방식으로 부트스트랩된 데이터셋을 사용하여 multimodal mixture of encoder-decoder 모델을 사전학습한다. 우리가 부트스트랩한 데이터셋은 향후 vision-language 연구를 촉진하기 위해 공개된다.
BLIP의 성능을 더욱 향상시킬 수 있는 몇 가지 잠재적인 방향은 다음과 같다: (1) 데이터셋 부트스트래핑의 다중 라운드 수행; (2) 이미지당 여러 개의 합성 캡션을 생성하여 사전학습 코퍼스를 더욱 확장; (3) 여러 개의 다른 captioner와 filter를 학습시키고 CapFilt에서 이들의 강점을 결합하는 모델 앙상블. 우리는 본 논문이 향후 연구에서 vision-language 연구의 핵심 요소인 모델 측면과 데이터 측면 모두에서 개선을 이루는 데 집중하도록 동기를 부여하기를 바란다.
A. Downstream Task Details
Table 14는 다운스트림 vision-language task에 대한 fine-tuning에 사용된 하이퍼파라미터를 보여준다. 모든 task는 AdamW optimizer를 사용하며, weight decay는 0.05, learning rate schedule은 cosine 방식을 따른다. 이미지 해상도는 ****를 사용하지만, VQA의 경우 Wang et al. (2021)을 따라 이미지를 사용한다. 다음으로 데이터셋 세부 정보를 설명한다.
Image-Text Retrieval. COCO와 Flickr30K 모두 **Karpathy split (Karpathy & Li, 2015)**을 사용한다. COCO는 train/validation/test에 각각 113k/5k/5k 이미지를 포함하며, Flickr30K는 train/validation/test에 각각 29k/1k/1k 이미지를 포함한다.
Image Captioning. COCO의 Karpathy train split으로 fine-tuning하고, COCO의 Karpathy test split과 NoCaps validation split으로 평가한다. 추론 시에는 beam size 3의 beam search를 사용하며, 최대 생성 길이는 20으로 설정한다.
VQA. **VQA2.0 데이터셋 (Goyal et al., 2017)**으로 실험하며, 이 데이터셋은 training/validation/test에 각각 83k/41k/81k 이미지를 포함한다. Li et al. (2021a)을 따라 training과 validation split을 모두 학습에 사용하며, Visual Genome에서 추가 training sample을 포함한다. VQA 추론 시에는 decoder를 사용하여 3,128개의 후보 답변 순위를 매긴다 (Li et al., 2021a; Kim et al., 2018).
NLVR. 공식 split (Suhr et al., 2019)으로 실험을 수행한다.
VisDial. VisDial v1.0의 training split으로 fine-tuning하고, validation set으로 평가한다.
Task | init LR (ViT-L) | batch size | #epoch |
---|---|---|---|
Retrieval | 256 | 6 | |
Captioning | 256 | 5 | |
VQA | 256 | 10 | |
NLVR | 256 | 15 | |
VisDial | 240 | 20 |
Table 14. 다운스트림 task를 위한 fine-tuning 하이퍼파라미터.
B. Additional Examples of Synthetic Captions
Figure 6에서는 웹 캡션이 필터링되고 합성 캡션이 깨끗한 학습 샘플로 유지된 이미지와 텍스트의 추가 예시를 보여준다.
C. Pre-training Dataset Details
Table 15는 사전학습 데이터셋의 통계를 보여준다.
COCO | VG | SBU | CC3M | CC12M | LAION | |
---|---|---|---|---|---|---|
# image | 113 K | 100 K | 860 K | 3 M | 10 M | 115 M |
# text | 567 K | 769 K | 860 K | 3 M | 10 M | 115 M |
Table 15. 사전학습 데이터셋의 통계.
Figure 6. 웹 텍스트 와 합성 텍스트 의 예시. 녹색 텍스트는 필터에 의해 수락된 반면, 빨간색 텍스트는 거부되었다.
우리는 원본 LAION400M에서 짧은 변의 길이가 256픽셀보다 큰 이미지만 다운로드한다. LAION의 큰 규모 때문에, 사전학습 중 각 epoch마다 1/5만 사용한다.
우리는 SNLI-VE를 벤치마크에서 제외했는데, 그 이유는 테스트 데이터가 노이즈가 많다고 보고되었기 때문이다 (Do et al., 2020).