[BLIP] Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

VLM ICML 2022

Junnan Li, Dongxu Li, Caiming Xiong, Steven Hoi · Salesforce Research

arXiv GitHub

한 줄 요약. 두 가지 한계를 같이 푼다 — (모델) 이해(retrieval)에 강한 encoder형과 생성(captioning)에 강한 encoder-decoder형이 따로 놀던 걸, 하나로 합친 MED(Multimodal mixture of Encoder-Decoder)로 통합(ITC·ITM·LM 3-목적). (데이터) 노이즈 많은 웹 캡션을, CapFiltCaptioner가 합성 캡션을 만들고 Filter가 노이즈를 걸러 — 더 깨끗한 학습 데이터로 부트스트랩. retrieval·captioning·VQA에서 SOTA, 비디오로도 zero-shot 전이. BLIP-2의 전신이자, BLIP-2/LLaVA가 쓰는 합성 캡션(CapFilt) 의 출처.

배경

기존 VLP(Vision-Language Pre-training)에는 두 가지 한계가 있었다.

  • 모델 관점encoder형(예: CLIP)은 이해/retrieval엔 좋지만 텍스트 생성이 어렵고, encoder-decoder형은 생성엔 좋지만 retrieval에 잘 안 맞는다. 하나의 모델이 둘 다 잘하기 어렵다.
  • 데이터 관점 — 대부분 웹에서 긁은 노이즈 많은 alt-text로 규모만 키웠다. 스케일로 성능은 올랐지만, 노이즈는 차선의 감독 신호다.

하나의 모델로 이해와 생성을 모두 하고, 노이즈 웹 데이터를 더 똑똑하게 쓸 수는 없을까?

핵심 아이디어

두 가지 기여로 답한다.

(a) MED — 통합 모델

하나의 모델이 ① 단일 인코더 ② image-grounded 텍스트 인코더 ③ image-grounded 텍스트 디코더 세 모드로 동작. 3개 목적(ITC·ITM·LM)으로 공동 학습 → 이해 + 생성 통합.

(b) CapFilt — 데이터 부트스트랩

학습된 MED를 Captioner(합성 캡션 생성)와 Filter(노이즈 제거)로 미세조정해, 웹 캡션을 정제된 데이터로 갈아끼운다.

방법

1) MED (Multimodal mixture of Encoder-Decoder)

같은 파라미터를 공유하며 세 가지 기능으로 동작하는 멀티태스크 모델이다.

모드 구조 loss 역할
① 단일 인코더 이미지·텍스트 따로 인코딩 (텍스트 BERT식, [CLS]) ITC 비전·언어 표현 정렬 (contrastive, momentum)
② image-grounded 인코더 SA–FFN 사이에 cross-attention(CA) 삽입, [Encode] ITM 이미지-텍스트 매칭 이진분류 (hard negative)
③ image-grounded 디코더 ②의 양방향 SA를 causal SA로 교체, CA·FFN 공유, [Decode] LM 이미지 조건 캡션 생성 (autoregressive)

텍스트 인코더와 디코더는 self-attention(SA) 층만 빼고 모든 파라미터를 공유한다 — 인코딩/디코딩의 차이는 SA(양방향 vs causal)가 담당하고, 임베딩·CA·FFN은 공유해 효율↑.

Figure 2. BLIP의 사전학습 구조와 3개 목적. 같은 색=공유 파라미터. (1) 단일 인코더+ITC로 비전-언어 정렬, (2) image-grounded 인코더는 cross-attention을 더해 ITM, (3) image-grounded 디코더는 causal self-att으로 바꿔 LM(생성).

2) CapFilt — Captioning & Filtering

사람이 단 고품질 캡션은 적고(COCO 등), 웹 alt-text는 많지만 노이즈가 크다. CapFilt는 사전학습된 MED를 COCO로 가볍게 미세조정해 두 모듈을 만든다.

  • Captioner = image-grounded 텍스트 디코더(LM 미세조정) → 웹 이미지에 합성 캡션 $T_s$ 생성. (nucleus sampling으로 다양·정보량 높은 캡션 — beam search보다 좋음)
  • Filter = image-grounded 텍스트 인코더(ITC·ITM 미세조정) → 원본 웹 텍스트 $T_w$ 와 합성 $T_s$ 둘 다에서 ITM이 “불일치”로 판정한 노이즈를 제거.
  • 정제된 쌍 + 사람 라벨을 합쳐 새 데이터셋을 만들고, 그걸로 새 모델을 다시 사전학습한다.
Figure 3. BLIP 학습 프레임워크. Captioner와 Filter는 같은 사전학습 모델에서 출발해 COCO로 개별 미세조정. 부트스트랩된 데이터로 새 모델을 사전학습한다.
Figure 4. 웹 텍스트 $T_w$ 와 합성 텍스트 $T_s$ 예시 — 초록=Filter 통과, 빨강=제거. 합성 캡션이 더 정확하면 채택되고, 어느 쪽이든 노이즈는 걸러진다.
  • 데이터 — 14M 이미지(COCO·Visual Genome + CC3M·CC12M·SBU), 추가로 LAION 115M까지.

결과

Table 1. CapFilt의 Captioner(C)·Filter(F) 효과. 캡셔너와 필터를 함께 쓸 때 retrieval·captioning(FT/ZS) 모두 크게 향상 — 더 다양한 캡션일수록 이득이 커진다.
  • CapFilt가 핵심 — Captioner와 Filter를 함께 쓰면 downstream이 일관되게 향상. 더 다양한 캡션일수록 이득이 크다(nucleus > beam).
Table 8. VQA·NLVR2 SOTA 비교. 14M로도 ALBEF를 +1.64%, 129M에선 13배 많은 데이터·더 큰 백본을 쓰는 SimVLM보다 우수.
  • 광범위한 SOTA — image-text retrieval(+2.7% avg R@1), captioning(+2.8% CIDEr), VQA(+1.6%). VQA·NLVR2에서 더 큰 데이터/백본을 쓰는 모델도 능가(Table 8).
  • zero-shot 비디오 전이 — 이미지로 학습한 모델을 프레임 단순 결합만으로 text-to-video retrieval·videoQA에 직접 적용해도 강력.

한 줄 정리 & 의의

  • MED(이해+생성 통합) + CapFilt(데이터 부트스트랩) 으로, “한 모델이 둘 다” 그리고 “노이즈 웹 데이터를 똑똑하게”를 함께 해결한 통합 VLP.
  • CapFilt의 유산 — captioner로 만든 합성 캡션과 필터링은 이후 BLIP-2·LLaVA의 학습 데이터 레시피로 이어진다(LLaVA의 CC 필터링, BLIP-2의 동일 데이터).
  • 위치. CLIP이 contrastive 인코더라면, BLIP은 거기에 생성(LM)데이터 정제(CapFilt) 를 더한 통합 모델 → 곧 frozen LLM을 붙이는 BLIP-2(Q-Former)로 진화한다. → VLM 개요