티스토리 뷰
https://arxiv.org/abs/2301.12597
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
The cost of vision-and-language pre-training has become increasingly prohibitive due to end-to-end training of large-scale models. This paper proposes BLIP-2, a generic and efficient pre-training strategy that bootstraps vision-language pre-training from o
arxiv.org
Bootstrapping Language-Image Pre-training with frozen unimodal models (BLIP-2, BLIP 첫 번째 모델도 있어서 2로 지었다.) 는 Visual-Language Pre-training (VLP)을 효율적으로 진행하기 위해 Q-Former 구조를 제안한다.
Unimodal Visual Encoder와 Text 처리만 가능한 LLM 모델을 Freezing 한채로 Bootstrapping해서 다양한 Downstream visual language task에 적용할 수 있도록 만들어 효율적인 학습을 진행해 성능을 끌어올리겠다. 가 이 논문의 골자다.
Bootstrapping이란 표현이 한국인이 이해하기 참 난해한 표현이라서 해석을 조금 요청했더니 이렇게 이해하면 편하댄다. '이미 완성된 시각 천재와 언어 천재를 데려다가(Frozen), 그 둘 사이를 이어주는 가벼운 통역사(Q-Former)만 훈련시켜서 효율적으로 똑똑한 멀티모달 모델을 만드는 전략'
BLIP-2의 Main Contributions
- Frozen 모델의 효율적 활용: 이미 학습된 Image Encoder와 LLM을 그대로 사용하며, Q-Former라는 가벼운 통역 모듈을 통해 두 모달리티 사이의 간극을 해소함
- Zero-shot 능력: 자연어 지시를 따르는 이미지-텍스트 생성 능력을 갖추어, 시각적 지식 추론이나 대화 등 다양한 고차원 작업이 가능함
- 높은 연산 효율성: 기존 모델인 Flamingo와 비교했을 때, 학습 가능한 매개변수를 54배나 줄였음에도 Visual Question Answering(VQAv2) 성능은 오히려 8.7% 더 높았음
- 범용적 방법론: 단일 모달리티 모델이 더 발전하면 이를 그대로 가져와 성능을 추가로 향상시킬 수 있는 유연한 구조임
Methods
Unimodal Visual Encoder와 Text 기반 LLM은 서로 다루는 모달리티가 다르다. 따라서 두 representation space 사이의 modality gap을 잘 통합해야한다. 이를 위해 본 연구에서는 Querying Transformer (Q-Former) pretraining을 제안한다.
3.1 Model Architecture

Q-Former는 Freezing 되어있는 Image Encoder와 LLM 사이의 Modality gap을 채워줄 수 있도록 하는 가교역할로써, 학습가능한 파라미터를 가지는 트랜스포머 구조의 모듈이다. Q-Former는 Input되는 이미지의 resolution에 관계 없이, 고정된 크기의 output feature를 추출한다.
Q-Former는 동일한 self-attention layer를 가지는 두 가지 서로다른 트랜스포머 구조로 이뤄져있다. (그림참고) i) Visual Feature 추출을 위한 이미지 트랜스포머 블록 ii) Text Encoder이자 Decoder로 동시에 작동가능한 텍스트 트랜스포머 블록
이미지 트랜스포머 블록
이미지 트랜스포머 블록에는 input으로 학습가능한 Queries vector가 입력된다. 먼저 이 쿼리벡터들이 Self Attention layer에서 서로의 Contextual 관계를 파악하고 어떤 쿼리벡터에 집중해야 하는지를 파악한다. 쿼리벡터는 다시 Image Encoder로부터 추출된 Visual Feature와 Cross attention을 진행해서 Query representation vector (Z)를 뽑아낸다. 의미적으로 풀자면, 실제 이미지를 받아서 Image Encoder가 뽑아낸 Visual Feature 차원이 예를들어 256 x 1024 차원이라고 하자, 사실 모든 차원에 유의미한 정보가 담겨있을 것으로 기대하기는 어렵다. 따라서 차원을 그대로 사용하기보다 우리가 구축해둔 훨씬 작은 차원의 쿼리 벡터(32 x 768)가 특히 Visual Feature에서 집중해서 봐야할 특징을 선별하여 차원을 축소한다고 생각하면 된다.
텍스트 트랜스포머 블록
텍스트 트랜스포머 블록은 보는 것 처럼 별거 없다. 그냥 이미지 인코더에 입력되는 이미지에 맞는 정답 텍스트가 입력되면 Self Attetion Layer와 FFNN을 거쳐서 Text representation vector로 출력된다. 세 가지 학습 방식을 통해서 이미지에 어울리는 문장이 생성되거나 출력할 수 있도록 학습된다.
3.2. Bootstrap Vision-Language Representation Learning from a Frozen Image Encoder
BLIP-2는 1과 동일하게 세 가지 사전훈련 목표를 갖는다. 그 전에, Main Figure에서 학습되는 벡터의 흐름은 다음과 같다.
- Main Figure에는 마치 쿼리벡터와 Input Text Embedding이 따로 입력되는 것 처럼 그렸지만, 이건 Attention Masking 전략을 효과적으로 보여주기 위해 이런 그림을 그린 것이고, 실제로는 Learnable Query Vector (32 x 768)과 Input Text Embedding (T x 768)이 Concat 되어 (32 + T, 768) 형태로 Self-Attention Layer로 입력된다.
- 따라서 Q x K^T = <(32+T, 768), (768, 32+T)> = (32 +T, 32+T) 가 되고, 이게 바로 Attention Masking 전략을 그려놓은 네모박스 그림의 shape이다.
- 여기에 Masking을 한 뒤, 다시 Value vector (32 +T, 768)를 곱해서 입력차원의 크기와 동일하게 만들어주면 <32 +T, 32 +T), ( 32 +T , 768)> = (32 +T, 768)이 된다.
- Self-Attention Layer를 지난 벡터(32+T, 768)에서 쿼리벡터 부분인 (32, 768) 부분에 대해서만 Image Encoder가 내뱉은 Visual Feature와 Cross Attention을 진행한다.
- Cross Attention이 진행된 (32, 768)에 대해서만 적용되는 FFNN를 지나 초기 쿼리 벡터와 동일한 shape인 (32, 768) size를 가지는 Query representation vector (Z)를 얻는다.
- Cross Attention이 진행되지 않는 나머지 Text 기반의 (T, 768) 벡터는 따로 떨어져서 또 다른 FFNN를 지나서 (T, 768) 차원의 Text Representation으로 구성된다.
- 이렇게 얻어진 두 벡터가 다시 다음 Q-Former Layer의 Input으로 사용된다.
Image-Text Contrastive Learning (ITC) with Unimodal Self-Attention Mask


말 그대로 이미지와 텍스트 쌍을 대조학습 시켜서 이미지와 쌍인 적절한 텍스트 설명문이 붙어있는 임베딩끼리는 가까이에 위치하도록하고, Negative Pair인 경우는 멀어지도록 학습한다. 여기서는 쿼리벡터의 Representation Vector(Z)와 텍스트 중, 문장 대표 토큰인 [CLS] 토큰의 임베딩(논문에서는 t라고 명명)벡터를 가지고 대조학습이 진행된다.
- 텍스트 쪽: [CLS] 토큰의 출력물인 t (1 x 768) 하나를 준비
- 이미지 쪽: Q-Former의 32개 쿼리가 이미지 정보를 뽑아낸 Z (32 x 768)가 존재
- 유사도 계산: 32개의 쿼리 벡터 각각과 텍스트 요약 벡터 t 사이의 유사도를 계산
- 최고점 선택: 32개의 점수 중 가장 높은 값을 이 이미지와 텍스트의 최종 유사도 점수로 채택 (Positive pair)
그렇다면 Negative Pair는 어떻게 선택하는가? 기존 BLIP의 문제점은 모델전체가 학습 파라미터로 구성된 거대모델이었기 때문에 Batch Size를 크게 늘릴 수 없어서 (뭔지모르지만) momentum queue기법을 이용해서 Negative Pair를 강제로 구축했다면, BLIP-2의 경우는 파라미터중 큰 부분을 차지하는 Image Encoder가 완전히 Freeze 되어있기 때문에, 학습 파라미터 수가 적어 Batch size를 꽤 크게 가져갈 수 있었다고 한다. 따라서, Batch 내부에서 Positive Pair를 제외한 나머지 데이터들을 전부 Negative Pair로 설정해서 학습하는 'In-Batch Negatives' 전략을 사용했다.
그림을 보자, 이게 중요한데, 세 가지 학습 방법들마다 Self Attention Block에 서로 다른 Masking 전략을 사용했다. 대조학습의 경우는 이미지와 텍스트 임베딩이 서로를 전혀 확인하지 못해야 한다는 전제하에, Uni-Modal Self Attention Mask를 사용했다. 조금 멈추고 생각해보거나, 아니면 분야의 센스가 뛰어난 분들은 보자마자 아하, 왜 Uni-Modal인지, 왜 서로가 서로를 확인하지 못하는 구조인지 이해가 갔을 것이다.
* 참고로 그림에 나오는건 Q x K^T 까지만 진행된 Attention Score Matrix이다. 마스킹한 뒤에 다시 V를 곱해서 Input 되는 벡터의 Dimension과 동일하게 만든다.
Image-grounded Text Generation (ITG) with Multi-modal Causal Self-Attention Mask


ITG Loss는 말 그대로 Q-Former를 주어진 이미지에 대해서 적절한 Text를 생성할 수 있도록 학습시킨다. 바로 위에서 해석한 것 처럼 Attention Mask 구성을 해석해 보면 Q(이미지 정보)는 Text를 참고하지 못하지만, Text는 주어진 이미지를 참고하여 업데이트된다.
다만, 일반적인 Transformer Decoder와 같이, 그 다음 나올 토큰을 미리 접근 가능하도록 하면 안되기 때문에 T-T 박스에서는 일반적으로 하듯이 자기자신보다 이후에 존재하는 토큰에는 마스크를 씌워 접근하지 못하도록 하였다.
이러한 토큰 방식을 Multi-Modal Casual Self-Attention Mask로 명명하였다. (이미 UniLM이라는 논문에서 사용했던 방식인듯 함)
앞서 ITC와 달리, [CLS] 토큰을 [DEC] 토큰으로 치환하고 벡터를 계산하여 모델이 ITG 모드의 Loss를 계산하도록 유도한다.
Image-Text Matching (ITM) with Bi-directional Self-Attention Mask


다음 ITM은 그냥 binary classification 문제를 해결한다. 입력된 이미지와 input text쌍이 서로 실제 label인지 아닌지를 예측하는 문제를 해결한다.
이때는 이미지 쿼리 벡터와 텍스트가 서로의 정보를 확인할 수 있어야 하므로 모든 Attention score를 양측에 개방한다. 따라서 Z는 이미지와 텍스트 양쪽의 모든 정보를 취합하는 Multimodality Representation vector가 된다.
Negative Pair를 만드는 방법은 Li et al의 informative negative pair 방식을 따랐으며, 32차원의 Z (32,768)를 하나씩 사용해서 (32, 2) Logits로 return될 수 있도록 Linear Layer를 사용하여 32개의 binary classification logits의 평균값을 사용하여 class를 지정하고 Loss를 계산하였다.
이제 세 가지 마스킹 기법에 의해서 계산된 Loss들을 모두 더해서 한번에 Q-Former의 파라미터를 업데이트해주는 사전 학습을 진행하면 된다.
3.3. Bootstrap Vision-to-Language Generative Learning from a Frozen LLM
앞서 학습된 Q-Former는 이미지에 맞는 Text 표현을 잘 연결해주는 연결다리, 통역사처럼 학습된 것으로 생각하면 된다.
이번에는 이 Q-Former가 실제로 특정 언어모델에 이미지 기반의 representation vector를 전달했을 때, 실제로 그 이미지에 맞는 텍스트들이 생성되도록 학습(Generative Learning)하는 단계가 필요하다. 그 방법론이 3.3에 나와있다.

사실 별 거 없다. 이 그림이 거의 대부분을 설명해준다. 이미지에 대해 Image Encoder를 사용해서 visual feature를 뽑아낸 다음 학습된 Q-Former를 이용해서 Query Embedding (Z)를 만들어내고, 새롭게 학습 가능한 MLP를 하나 달아서 문장 생성을 하기 위해 사용하는 LLM의 토큰 차원에 맞춰준다.
이렇게 LLM 토큰에 맞춰진 Query 정보를 soft visual prompt라고 명명한다. 직접적으로 디코딩하거나 해석 가능한 토큰으로 mapping되지는 않지만, LLM이 이해할 수 있는 차원의 이미지 정보를 마치 prompt처럼 전달하는 방식으로 사용되어 이러한 이름을 붙이는 것 같다.
학습되는 방식은 두 가지로 나눠서 진행되었는데, 그림에 잘 나타나 있다.
하나는 soft visual prompt만 전달한 뒤 LLM이 알아서 그에 맞는 전체 이미지 설명 문장을 생성하도록 하는 작업이고 (Decoder Based LLMs), 나머지 하나는 soft visual prompt와 함께 문장의 처음 시작인 서두 (prefix)를 전달하고 뒷단의 문장을 맞춰 생성하도록 하는 방식이다.(Encoder-Decoder Based LLMs)
이 과정에서 Q-Former와 MLP의 파라미터가 LLM에 맞춰서 Generative Learning에 더욱 적합하도록 추가로 사전학습된다.
3.4. Model Pre-training
데이터 설명은 그냥 제미나이 요약본으로 올린다.

내가 얻고자 했던 지식은 ImageBind나 BLIP-2 처럼 Image와 Text 사이의 Modality Gap을 해소해줄 방법론을 찾기 위해서 읽고 있는 중이라서 평가는 관심 밖이라 일단 여기까지만 정리한다.
'Paper > LLMs' 카테고리의 다른 글
| [NIPS 2025] Bioreason 논문리뷰 (0) | 2026.02.10 |
|---|
- Total
- Today
- Yesterday
- eigenvalue
- marginal likelihood
- Manimlibrary
- MLE
- 파이썬
- 인공지능
- manim library
- MatrixAlgebra
- ai신약개발
- manim
- 나노바디
- eigenvector
- 기계학습
- nanobody
- 항원항체결합예측모델
- dataloader
- 3b1b
- MorganCircularfingerprint
- 3B1B따라잡기
- antigen antibody interaction prediction
- 백준
- 베이즈정리
- 논문리뷰
- elementry matrix
- manimtutorial
- 이왜안
- 오일석기계학습
- 최대우도추정
- Matrix algebra
- 선형대수
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |