BLIP(084)의 한계는 이미지 인코더와 언어 모델이 강하게 결합됐다는 것이다. 더 강력한 LLM(Flan-T5 11B, OPT 66B 등)을 연결하려면 처음부터 다시 학습해야 했다.

Salesforce Research가 2023년 발표한 BLIP-2는 이 문제를 Q-Former라는 중간 모듈로 해결했다.

설계 철학

“비전 인코더와 LLM 사이의 표현 차이를 최소 비용으로 메운다.”

두 모델 모두 고정한다. 학습하는 것은 중간의 Q-Former뿐이다.

[이미지 인코더] → 고정 (ViT-G/14 from EVA-CLIP)
   [Q-Former] ← 학습 (188M 파라미터)
   [LLM] → 고정 (Flan-T5 또는 OPT)

전체 파라미터의 매우 작은 비율만 학습해 대규모 GPU 클러스터 없이도 학습 가능하다.

Q-Former (Querying Transformer)

32개의 학습 가능한 쿼리 벡터를 BERT 기반 트랜스포머로 처리한다.

이미지와의 어텐션: 쿼리 벡터들이 이미지 인코더 출력에 크로스 어텐션한다. 이미지의 어떤 정보가 언어 이해에 중요한지 학습한다.

텍스트와의 어텐션: 동시에 텍스트 토큰과 셀프 어텐션한다. 텍스트 맥락에 맞는 시각 정보를 추출한다.

결과: 32개 쿼리 벡터의 출력이 이미지를 32개 시각 토큰으로 압축한 것이다. LLM의 텍스트 토큰과 같은 차원으로 변환해 LLM 입력 앞에 붙인다.

2단계 학습

1단계: 비전-언어 표현 학습

LLM 없이 Q-Former만 학습한다. BLIP과 같은 세 가지 목표를 사용한다.

  • ITC (이미지-텍스트 대조 학습)
  • ITM (이미지-텍스트 매칭)
  • ITG (이미지에서 텍스트 생성)

129M 쌍의 이미지-텍스트 데이터로 학습.

2단계: 생성적 사전학습

LLM을 고정하고 Q-Former 출력을 LLM 입력으로 연결하는 선형 투영 레이어를 추가로 학습한다.

Q-Former 출력 (32 × 768) → 선형 투영 → (32 × LLM_dim)

LLM이 시각 토큰을 소프트 프롬프트처럼 처리하면서 이미지 내용을 이해한다.

사용

from transformers import Blip2Processor, Blip2ForConditionalGeneration
from PIL import Image

processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
model = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-opt-2.7b")

image = Image.open("image.jpg")

# 이미지 캡셔닝 (프롬프트 없음)
inputs = processor(image, return_tensors="pt")
generated = model.generate(**inputs)
caption = processor.decode(generated[0], skip_special_tokens=True)

# VQA (프롬프트 있음)
question = "Question: How many people are in the image? Answer:"
inputs = processor(image, question, return_tensors="pt")
generated = model.generate(**inputs)
answer = processor.decode(generated[0], skip_special_tokens=True)

LLM 교체의 이점

Q-Former 덕분에 백엔드 LLM을 교체할 수 있다.

  • blip2-opt-2.7b: 빠르고 가벼움
  • blip2-flan-t5-xl: 지시 따르기 능력 강함
  • blip2-flan-t5-xxl: 최고 성능

LLM만 교체하고 Q-Former를 재학습하면 멀티모달 능력이 새 LLM 수준으로 향상된다. 전체 모델을 처음부터 재학습하는 것보다 훨씬 효율적이다.

InstructBLIP

BLIP-2를 Instruction Tuning으로 개선했다. 다양한 지시 형식으로 파인튜닝해 “이미지에서 텍스트를 찾아라”, “두 이미지를 비교하라” 같은 다양한 지시에 따를 수 있다.

LLaVA와의 비교

BLIP-2가 Q-Former로 시각 특징을 압축하는 반면, LLaVA(094)는 모든 패치 특징을 선형 투영만으로 LLM에 전달한다. 접근이 다르지만 둘 다 “비전 인코더 + 경량 연결 레이어 + 고정 LLM” 설계를 따른다.

트레이드오프

Q-Former가 이미지를 32개 토큰으로 압축하면 세밀한 시각 정보가 손실될 수 있다. 고해상도 이미지나 복잡한 시각적 추론이 필요한 태스크에서 한계가 있다. LLaVA처럼 모든 패치 특징을 전달하는 방식이 정보 손실은 없지만 LLM 컨텍스트를 더 많이 차지한다.