Vision & Multimodal · ICML 2023 2023
BLIP-2: 고정된 이미지 인코더와 LLM을 잇는 부트스트랩 비전-언어 사전학습
고정된 이미지 인코더와 고정된 LLM 사이에 경량 Q-Former(32 query)만 학습 — 2단계 사전학습으로 Flamingo-80B를 54× 적은 학습 파라미터로 앞선다.
1. 핵심 요약
2. 왜 중요한가 — 쉬운 설명
30초 비유
사진을 아주 잘 보는 친구 A와, 글을 아주 잘 쓰는 친구 B가 있습니다. 둘 다 이미 각 분야 전문가지만, 서로 대화가 안 통합니다. “이 사진 속 사람이 뭘 하고 있어?” 같은 질문에 답하는 AI를 만들려면 보통은 두 친구를 처음부터 다시 함께 훈련시켜야 하는데, 이건 돈과 시간이 어마어마하게 듭니다.
BLIP-2의 발상: 두 전문가는 그대로 두고(freeze), 그 사이에서 통역만 하는 작은 직원 한 명만 새로 뽑아 훈련시키자. 이 직원이 바로 Q-Former입니다.
BLIP-2가 제안한 해결책
- 작은 통역사 (Q-Former) — 친구 A가 사진에서 알아낸 것을, 친구 B가 읽을 수 있는 아주 짧은 메모 32장으로 요약합니다. 사진이 복잡하든 단순하든 메모는 항상 32장이라, B가 부담 없이 읽습니다.
- 큰 두 모델은 얼린다 — 실제로 학습되는 건 이 통역사뿐(약 2억 개 값). 전체를 훈련하는 방식보다 수십 배 저렴하고, 친구 B의 원래 글솜씨(언어 능력)도 망가지지 않습니다.
- 통역사를 2단계로 가르친다 — (1) 사진과 그 설명문을 잔뜩 보여주며 “사진의 핵심 ↔ 문장”을 연결하는 법을 익히게 하고, (2) 그다음 친구 B 앞에서 그 메모를 B가 알아듣게 다듬습니다.
그래서 무엇이 달라졌나
- 더 좋은 언어 모델이 나오면 통역사만 다시 훈련해서 바로 갈아 끼울 수 있습니다. 매번 전체를 다시 만들 필요가 없습니다.
- 추가 학습 없이(제로샷) 사진 질문답변을 시켰을 때, 훨씬 큰 경쟁 모델(Flamingo-80B)보다 정확하면서, 실제로 훈련한 값의 개수는 약 54배 적었습니다.
- “거대 모델은 얼리고, 그 사이 연결부만 학습한다”는 이 방식은 이후 여러 오픈소스 멀티모달 모델(MiniGPT-4, InstructBLIP 등)의 표준 뼈대가 됐습니다.
더 공부할 가치가 있을까?
3. 배경 · 멀티모달 학습의 비효율
대형 비전-언어 모델은 이미지 인코더와 LLM을 처음부터, 또는 전체 파인튜닝으로 학습해 막대한 계산 비용이 듭니다. 새 LLM이 나올 때마다 전체를 다시 학습해야 하고, LLM 전체를 건드리면 재앙적 망각이 옵니다. BLIP-2의 질문: “이미 뛰어난 비전 모델과 언어 모델이 있다면, 둘을 잇는 경량 브릿지만 학습하면 되지 않을까?”
왜 BLIP-2인가
기존 멀티모달 학습의 4가지 부담과 BLIP-2의 대응. 카드를 클릭하세요.
이미지 인코더와 LLM을 함께 학습하면 막대한 GPU·데이터가 듭니다. BLIP-2는 둘을 고정하고 그 사이 커넥터(Q-Former ~188M)만 학습해 최적화 대상을 ~2억 파라미터로 줄입니다.
4. Q-Former 아키텍처
Q-Former 내부
BERTbase 기반 ~188M. 3가지 어텐션 경로를 클릭하세요.
활성: Query → 이미지 (크로스-어텐션)
트랜스포머 블록을 하나 걸러 한 번씩, query가 고정 이미지 인코더 특징에 크로스-어텐션해 시각 정보를 끌어옵니다. 이미지 특징의 길이는 가변이지만 query는 항상 32개.
출력 Z ∈ ℝ^(32×d)는 이미지 인코더 해상도와 무관하게 고정 크기 — LLM 앞의 정보 병목입니다.
Q-Former는 BERTbase 기반의 작은 트랜스포머(~188M)로, 두 개의 서브모듈이 셀프-어텐션 층을 공유합니다. (1) 이미지 트랜스포머: 32개의 학습 가능한 query 토큰이 서로 셀프-어텐션하고, 트랜스포머 블록을 하나 걸러 고정 이미지 인코더 출력과 크로스-어텐션. (2) 텍스트 트랜스포머: 텍스트를 인코딩/디코딩. query와 텍스트가 공유 셀프-어텐션에서 상호작용하는 정도는 어텐션 마스크로 태스크마다 조절됩니다. 출력은 이미지 인코더 차원과 무관하게 항상 32 토큰 — ViT-g/14 @224px의 패치 토큰 257개(=16×16+CLS)보다 훨씬 작은 정보 병목이 LLM에 부담을 덜어줍니다.
5. 단계 1 · 비전-언어 표현 학습
단계 1 · 표현 학습
이미지 인코더만 고정. 한 Q-Former가 마스크만 바꿔 3목표를 학습.
ITC — 이미지-텍스트 대조
단일모달 마스크 — query와 텍스트가 서로 못 봄
32 query 출력 중 텍스트 [CLS]와 유사도 최댓값을 정렬. 배치 내 다른 텍스트는 부정 쌍.
이미지 인코더만 고정하고 Q-Former를 이미지-텍스트 쌍으로 학습. 세 목표를 동시에, 단 마스크만 바꿔 한 모델로 처리합니다.
- ITC (Image-Text Contrastive) — query와 텍스트가 서로 못 보는 단일모달 마스크. 이미지 query 32개 중 최댓값 유사도를 텍스트 [CLS]와 정렬. 배치 내 부정 쌍 활용.
- ITM (Image-Text Matching) — query·텍스트가 모두 서로 보는 양방향 마스크. query 출력 → 2-클래스 분류기로 매칭 여부. Hard negative mining.
- ITG (Image-grounded Text Generation) — query끼리만, 텍스트는 query 전부 + 앞선 텍스트만 보는 인과 마스크. Q-Former가 뽑은 시각 정보만으로 캡션을 생성.
이 단계가 query가 “텍스트와 가장 관련된 시각 정보”를 뽑도록 강제해, 2단계에서 LLM이 소화하기 쉬운 표현을 만듭니다.
6. 단계 2 · 생성 사전학습 (LLM 연결)
단계 2 · LLM 연결
이제 LLM도 고정. Q-Former 출력을 선형 투영해 소프트 시각 프롬프트로 연결.
시각 토큰 32개를 프롬프트로 앞에 두고, OPT가 그 뒤 텍스트를 언어 모델링 손실로 생성합니다. LLM은 고정.
1단계에서 표현을 미리 정렬해 뒀기 때문에, 이 32 토큰은 LLM이 바로 해석 가능합니다.
이제 LLM도 고정. Q-Former의 32개 출력 토큰을 하나의 선형 층으로 LLM 임베딩 차원에 투영해, LLM 입력 텍스트 임베딩 앞에 붙입니다. LLM은 이 32 토큰을 “소프트 시각 프롬프트”로 받아들입니다.
- 디코더 전용 (OPT): 시각 프롬프트를 조건으로 캡션을 언어 모델링 손실로 생성.
- 인코더-디코더 (FlanT5): 시각 프롬프트 + 접두 텍스트를 인코더에, 나머지를 디코더 타깃으로.
1단계에서 표현을 미리 정렬해 뒀기 때문에, Q-Former는 LLM이 바로 해석 가능한 시각 토큰을 내보내고, LLM은 언어 능력을 그대로 유지합니다.
7. 전체 파이프라인 · 구성요소
전체 파이프라인
❄ 고정 · 🔥 학습. 블록을 클릭하세요.
🔥 BERTbase 기반 ~188M. 32개 query가 셀프-어텐션 + 이미지 크로스-어텐션으로 32 시각 토큰을 뽑음. 학습됨.
백본이 12B든(ViT-g + FlanT5-XXL) 실제 최적화 대상은 ~2억. Flamingo의 '고정 백본 + 경량 커넥터' 계보지만, BLIP-2는 커넥터를 2단계로 미리 정렬합니다.
| Component | 선택지 / Options | Role |
|---|---|---|
| Image encoder (❄) | CLIP ViT-L/14 · EVA-CLIP ViT-g/14 · BLIP ViT-L/16 | 이미지 → 패치 특징 (EVA-CLIP ViT-g 최상) |
| Q-Former (🔥) | BERTbase 기반 · 32 query · ~188M | 이미지 특징 → 32 시각 토큰 |
| Linear projection (🔥) | 1 layer | 32 토큰 → LLM 임베딩 차원 |
| LLM (❄) | OPT 2.7B/6.7B/66B · FlanT5 XL(3B)/XXL(11B) | 소프트 시각 프롬프트로 텍스트 생성 |
학습되는 파라미터는 Q-Former(~188M) + 선형 층뿐. 그래서 백본이 12B(ViT-g + FlanT5-XXL)든 뭐든, 실제 최적화 대상은 ~2억 파라미터입니다. Flamingo의 Perceiver Resampler + gated cross-attention과 같은 “고정 백본 + 경량 커넥터” 계보에 있지만, BLIP-2는 커넥터를 2단계로 미리 정렬한다는 점이 다릅니다.
8. 실험 · 의의
제로샷 성능
- VQAv2 (zero-shot val): BLIP-2 (ViT-g + FlanT5-XXL) 65.2 vs Flamingo-80B 56.3 → 논문 초록은 “8.7%p 앞서고 학습 파라미터 54× 적음”으로 요약. (FlanT5-XL 63.1 · OPT-6.7B 54.3)
- NoCaps val 캡셔닝 CIDEr (전체): OPT-2.7B 119.7 · OPT-6.7B 121.0 · FlanT5-XL 121.6 — 제로샷 SOTA. COCO Karpathy test는 144–146 CIDEr.
- 비전 인코더는 EVA-CLIP ViT-g/14가 최상. 지시 튜닝된 FlanT5는 제로샷 지시 따르기에 유리.
제로샷 성능 · 효율
태스크별 파인튜닝 없이. 탭을 전환하세요.
제로샷 VQAv2 (val). BLIP-2 (FlanT5-XXL) 65.2 vs Flamingo-80B 56.3 — 논문 초록은 “8.7%p 앞서며 학습 파라미터 54× 감소”로 요약. 지시 튜닝된 FlanT5가 OPT보다 제로샷에서 유리(디코더 전용 OPT는 54.3).
의의 · 영향
- 파라미터 효율적 멀티모달 학습의 대표 레시피 — 백본 재학습 없이 커넥터만
- 새 LLM 출시 시 Q-Former만 재학습으로 빠르게 통합
- InstructBLIP: 여기에 지시 튜닝을 결합해 성능 향상
- 이후 다수 오픈소스 멀티모달 모델(MiniGPT-4 등)의 기반
한계
- 제로샷 VQA에서 in-context 학습 이득이 거의 없음(사전학습 데이터가 단일 이미지-텍스트 쌍이라)
- 고정 LLM의 환각·편향을 그대로 상속
- Q-Former 32 토큰 병목이 세밀한 시각 디테일을 잃을 수 있음
| Idea | Role |
|---|---|
| Q-Former | 32 learned queries bridge a frozen image encoder and a frozen LLM |
| 32 query tokens | Fixed-size visual bottleneck, independent of encoder resolution |
| Stage 1 (ITC/ITM/ITG) | Align queries to text-relevant visual info via 3 masks |
| Stage 2 soft prompt | Linear-project 32 tokens; prepend as a virtual visual prompt |
| Frozen backbones | Train ~200M params; beat Flamingo-80B with 54× fewer |
이해도 점검
보기를 골라 정답과 해설을 확인하세요. 채점은 이 페이지 안에서만 이뤄집니다.
1. Q-Former의 32개 query 토큰이 하는 일은?
2. BLIP-2의 2단계 사전학습에서 각 단계에 고정되는 것은?
3. 1단계에서 ITC · ITM · ITG를 한 모델로 처리하는 방법은?
4. 2단계에서 Q-Former 출력이 LLM에 연결되는 방식은?
5. 제로샷 VQAv2에서 BLIP-2와 Flamingo-80B 비교로 옳은 것은?