[BLIP-2] Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
Junnan Li, Dongxu Li, Silvio Savarese, Steven Hoi · Salesforce Research
한 줄 요약. frozen 이미지 인코더와 frozen LLM 사이를 가벼운 Q-Former(Querying Transformer) 하나로 잇는다. Q-Former는 learnable query 32개로 시각 특징을 고정 길이로 뽑는 정보 병목(information bottleneck)이며, 2-stage로 학습한다 — (1) frozen 인코더로 표현 학습(ITC·ITM·ITG), (2) frozen LLM으로 생성 학습. 학습 파라미터가 188M뿐인데도, Flamingo-80B를 zero-shot VQAv2에서 +8.7%(trainable 파라미터 54배 적음)로 능가하고, 자연어 지시를 따르는 zero-shot image-to-text도 보인다.
배경
멀티모달 사전학습(VLP)은 대형 모델을 end-to-end로 학습하면서 비용이 폭증했다. 비전·언어 커뮤니티엔 이미 강력한 단일 모달 사전학습 모델이 많은데, 이걸 재활용하면 싸고 좋을 것이다.
- frozen으로 두는 이유 — 연산을 줄이고, 재학습 시의 catastrophic forgetting(기존 지식 망각)을 막기 위해 비전 인코더와 LLM을 얼린다.
- 하지만 정렬이 어렵다 — LLM은 사전학습에서 이미지를 본 적이 없다. 그래서 frozen LLM에 시각을 맞추는 게 특히 까다롭다.
- 기존 한계 — Frozen·Flamingo는 image-to-text generation loss 하나로만 정렬하는데, 저자들은 이것이 modality gap을 메우기엔 불충분하다고 본다.
frozen 비전 인코더와 frozen LLM을, 둘 다 건드리지 않고 효과적으로 정렬할 다리를 어떻게 놓을까?
핵심 아이디어
Q-Former(Querying Transformer) 라는 가벼운 학습 모듈 하나로 둘을 잇는다. learnable query가 frozen 이미지 인코더에서 고정 개수의 시각 특징만 뽑아 LLM에 가장 유용한 정보만 흘려보내는 정보 병목 역할이다. 이를 2-stage로 학습한다.
CLIP ViT-L/14 또는 EVA-CLIP ViT-g/14. 고품질 시각 표현 제공.
learnable query 32개로 시각 특징을 뽑는 bottleneck. 유일하게 학습되는 부품.
decoder형 OPT 또는 encoder-decoder형 FlanT5. 강한 생성·zero-shot 능력.
방법
1) Q-Former 구조
입력 이미지 해상도와 무관하게 고정 개수의 출력 특징을 뽑는다. self-attention을 공유하는 두 서브모듈로 이뤄진다.
- Image transformer — frozen 이미지 특징과 상호작용. learnable query 32개(각 768차원) 를 입력으로 받아, query끼리 self-attention, 이미지 특징과는 cross-attention(매 2블록마다 삽입).
- Text transformer — 텍스트 인코더 겸 디코더. query는 같은 self-attention 층을 통해 텍스트와도 상호작용.
- BERT$_\text{base}$로 초기화(cross-attention은 random). 총 188M 파라미터(query도 파라미터로 셈).
- 출력 $Z$ 의 크기 32×768은 frozen 이미지 특징(예: ViT-L/14의 257×1024)보다 훨씬 작다 → 이 bottleneck이 “텍스트에 가장 관련된 시각 정보”만 짜내도록 강제한다.
2) Stage 1 — Representation Learning (frozen 이미지 인코더)
이미지-텍스트 쌍으로, 세 objective를 공동 최적화한다. 셋은 입력 형식과 파라미터를 공유하되, attention mask로 query-text 상호작용만 다르게 준다.
| Objective | Self-attention mask | 역할 |
|---|---|---|
| ITC (Image-Text Contrastive) | uni-modal (query·text 서로 못 봄) | query 출력 $Z$ 와 텍스트 [CLS]를 정렬, in-batch negative로 contrastive |
| ITM (Image-Text Matching) | bi-directional (전부 상호 attend) | 이미지-텍스트 매칭 이진분류(hard negative mining), query별 logit 평균 |
| ITG (Image-grounded Text Gen.) | multi-modal causal (query끼리만, text는 query+이전 text) | 이미지 조건 텍스트 생성 → query가 텍스트의 모든 정보를 담도록 강제 |
3) Stage 2 — Generative Learning (frozen LLM)
frozen 이미지 인코더를 단 Q-Former를 frozen LLM에 연결한다.
- FC(완전연결) layer 하나로 출력 query $Z$ 를 LLM의 텍스트 임베딩 차원으로 투영 → 텍스트 임베딩 앞에 붙여(soft visual prompt) LLM을 시각에 조건화.
- Q-Former가 이미 “언어와 관련된 시각 표현”만 뽑아주므로, LLM의 정렬 부담을 덜어 catastrophic forgetting을 완화한다.
- decoder형 LLM(OPT) → language modeling loss. encoder-decoder형(FlanT5) → prefix LM loss(텍스트를 prefix/suffix로 나눠 encoder 입력/decoder 타깃).
학습 설정
- 데이터 — BLIP과 동일한 129M 이미지(COCO·Visual Genome·CC3M·CC12M·SBU + LAION 115M), CapFilt로 합성 캡션 생성·필터.
- frozen 부품 — 이미지: CLIP ViT-L/14, EVA-CLIP ViT-g/14 / LLM: OPT(unsupervised), FlanT5(instruction-tuned). FP16(FlanT5는 BFloat16).
- 스케줄 — 1단계 250k steps, 2단계 80k steps. frozen 덕에 가벼워, 최대 모델(ViT-g + FlanT5-XXL)도 16×A100로 1단계 6일·2단계 3일 미만.
결과
- 최소 파라미터로 SOTA — VQA·captioning·retrieval 전반에서, 학습 파라미터를 훨씬 적게 쓰면서 기존 SOTA를 상회(Table 1).
- zero-shot VQA — VQAv2·GQA에서 SOTA. Flamingo-80B를 VQAv2에서 +8.7%, trainable 파라미터 54배 적게. (단 OK-VQA는 Flamingo-80B에 근소하게 뒤 — 외부 지식 비중이 커, Chinchilla-70B의 지식량이 유리)
- generic 방법임을 입증 — 더 강한 이미지 인코더나 더 강한 LLM을 꽂으면 그대로 성능이 오른다 → 비전·NLP의 발전을 손쉽게 흡수.
- 표현 학습 단계가 핵심 — 1단계(표현 학습)를 빼면 Q-Former가 생성 학습에만 의존하게 되어 zero-shot VQA가 크게 하락. 특히 OPT는 catastrophic forgetting으로 학습이 진행될수록 성능이 급락한다.
한 줄 정리 & 의의
- frozen 비전 + frozen LLM을 Q-Former(learnable query bottleneck) + 2-stage(표현학습 → 생성학습) 로 잇는 효율적 VLP. 학습 파라미터 188M만으로 Flamingo-80B를 능가 — “무거운 end-to-end” 대신 “가벼운 다리”의 설득력.
- 세 objective(ITC·ITM·ITG)로 먼저 시각 표현을 텍스트에 정렬한 뒤 LLM에 붙이는 게 핵심. generation loss 하나로만 잇던 Flamingo와의 차별점이자, “표현 학습 단계가 forgetting을 막는다”는 ablation이 이를 뒷받침.
- 위치(connector 계열). Flamingo가 cross-attention으로 LLM 내부에 시각을 주입했다면, BLIP-2는 Q-Former라는 별도 bottleneck으로 뽑아 soft prompt로 앞에 붙인다. 이후 LLaVA는 이를 더 단순한 projection(MLP) 으로 줄인다. → VLM 개요