[논문 리뷰] BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation(2022)

2026. 4. 4. 12:49·논문 리뷰
반응형

2022 Salesforce 회사에서 발표한 컴퓨터비전 논문

 

이미지와 텍스트간의 상관관계를 인공지능이 스스로 학습하도록 하는 기술인 Vision-Language Pre-training(VLP)을 통해서 이미지를 이해하고 인식하는데 있어서 큰 성공을 거두었지만 두 가진 주요 한계가 존재하였다. 

  1. 모델 관점: 기존에 있었던 방법들은 인코더 기반 또는 인코더-디코더 모델 중 하나를 사용해왔었는데 각각 이미지 캡셔닝 같은텍스트 생성이나 이미지-텍스트 검색 task에 대해서 적절하지 않았다.
  2. 데이터 관점: CLIP과 논문에서는 웹에서 수집된 이미지-텍스트 쌍을 Pre-training에 활용한다. 이는 데이터셋 규모의 확대라는 성능 향상이 존재하였지만 잡음이 많은 데이터는 비전-언어 학습에 적절하지 않다. 

이름에서 알 수 있듯이 CLIP(Contrastive Language-Image Pre-training)에서 BLIP(Boostrapping Language-Image Pre-training)으로 CLIP의 문제점 3가지를 파악하고 이를 극복한 기술이 BLIP이다. 

 

기존 CLIP에 문제점 3가지는 다음과 같다:

  1. 이해는 하지만 생성을 못한다(Unidirectional)
    • CLIP에서는 이미지와 텍스트가 얼머나 어울리는지 점수를 매기는 대조 학습을 통해 이미지에 맞는 단어 고르기는 잘 수행하지만 이미지를 보고 설명을 다는 캡셔닝이 불가능한 구조이다. 객관식은 잘하지만 주관식 문제는 못푼다고 비유를 들 수 있다. 
  2. 웹 데이터의 심각한 노이즈
    • CLIP은 인터넷에서 수집한 4억 개의 데이터를 그대로 학습하였다. 그렇기에 웹 데이터의 오타, 잘못된 설명, 이미지와 무관한 광고등이 걸러지지 않고 학습하였기에 효율이 떨어진다.
  3. 세부적인 맥락 파악의 한계 
    • CLIP에서는 이미지 전체와 문장 전체를 비교하는 방식을 사용하여 이미지내 작은 물체나 복잡한 관계를 상세히 파악하는데 있어서 한게가 존재하였다. 

이러한 문제점을 해결하고 성능을 향상시키기 위해서 BLIP는 두 가지를 제시한다: 

  1. MED(Multimodal mixture of Encoder-Decoder): 세 가지 형태의 task(3.Method에서 소개)를 유동적으로 학습이 가능하도록 모델 아키텍쳐 제시
  2. CapFilt(Captioner + Filter) : 웹데이터의 노이즈를 필터링하여 데이터셋에 추가하는 boostrapping 이용

Figure 1. CapFilt


2. Related Work 

2.1. Vision-language Pre-training(VLP)

VLP는 대규모의 (이미지, 텍스트) 묶음을 사전 학습하여 이해 기반(e.g. image-text retrieval)와 생성 기반(e.g. image- captioning)과 같은 다운스트림 비전-언어 task의 성능을 향상시키는 것이 목표이다. 

 

사람이 직접 주석을 달면 비용이 크기 때문에 웹에서 크롤링한 이미지와 텍스트를 사용하지만 기존의 필터를 적용해도 노이즈는 여전히 존재하며 이미지의 노이즈는 생각이상으로 부정적인 영향을 끼친다. 따라서 CapFilt을 활용하여 웹 데이터를 효과적으로 활용하고자 한다. 

 

또한 다양한 비전-언어 task를 하나의 framework로 통합하려는 시도가 있었으나, 위에서 언급하였다시피 encoder 또는 encoder-decoder 모델에서 좋은 성능을 발휘하지 못하였기에 본 논문에서의 Mulitmodal Mixture of Encoder-Decoder (MED)를 통해 사전학습을 더욱 효율적으로 유지하며 다운스트림 task에서 더 큰 유연성과 우수한 성능을 제공한다.

 

2.2. Knowledge Distillation (지식 증류)

지식 증류는 Teacher 모델에서 증류(추출)해서 Student 모델에 지식을 주면서 Student 모델은 더 적은 파라미터로 좋은 성능을 낼 수 있다. Teacher와 Student와 같은 크기인 경우를 Self-distillation이라고 한다. 이 방법으로 이미지 분류와 VLP에 효과적이다는 것을 입증되었다. 

 

이전의 지식 증류 방법은 Student에서 Teacher를 모방하여 클래스를 예측하도록 되었지만 해당 논문에서는 CapFilt을 통해서 Captioner는 의미적으로 풍부한 합성 캡션에서 지식을 전달할 수 있으며 Fliter에서는 많은 캡션을 제거하여 지식을 정제할 수 있게 되었다. 

 

2.3. Data Augmentation (데이터 증강)

본 논문에서는 데이터 증강을 합성 캡션을 통해서 노이즈를 문제를 완화하고 데이터 품질을 향상시키는 측면으로 활용한다.


3. Method

BLIP에서는 (1)새로운 아키텍쳐인 MED와 (2)Pre-training에서 목표와 이를 위한 세가지의 loss function 그리고 (3)데이터셋 bootstrapping을 위한 CapFilt을 소개한다.

 

3.1. Model Architecture

가장 먼저 이미지를 이해하기 위해서 패치단위로 나누어서 일련의 시퀀스로 해석할 수 있도록 하는 VIT(Vision Transformer)을 사용하였고 multimodal mixture of encoder-decoder(MED)는 세가지로 작동하는데 unimoal encoder, image-text encoder 그리고 image-text decoder이다. 

 

(1) Unimodal encoder : 이미지와 텍스트를 따로 encode하며 텍스트의 인코더는 BERT와 같은 형태이다. sentence를 요약하기 위해서 텍스트 시작에 [CLS] token이 첨부된다.

(2) Image-grounded text encoder : image encoder로 부터 시각 정보를 cross attention 부분에 주입받는다. 텍스트앞에 [encode]를 이미지와 텍스트의 관게가 결합된 representation으로 나타내게 된다. 

(3) Image-grounded text decoder : (2)에서 bidirectional self attention이 있다면 (3)에서는 causal self-attention이 대신 존재한다. [Decode] token이 붙어서 시퀀스의 시작을 신호하고 문장 끝(EOS) 토큰이 끝을 신호한다.

3.2. Pre-training Objectives

이해를 위한 understanding-based objective 두 개와 생성을 위한 generation-based objective 한 개가 있으면 세 가지 손실 함수(loss function)이 존재한다. 

 

(1) Image-Text Contrastive Loss(ITC)

  - visual transformer와 text transformer간의 positive image-text pair로 유사한 표현을 갖도록 하는 손실함수이다.

 

(2) Image-Text Matching Loss (ITM)

  - Image-based text encoder에 배치된 loss로 비전-언어 간의 세밀한(fine-grained) alignment를 포착한다. 그리고 ITM은 이진 분류를 하는데 이미지와 텍스트가 매칭이 되는지 안되는지 분류한다. 좀 더 negative 정보를 얻기위해 contrastive similarty를 가진  이미지-텍스트 쌍을 더 자주 선택하게 세팅하였다.

 

(3) Language Modeling(LM)

  - Image-grounded text decoder에 베치된 loss로 이미지를 입력하였을 때 이를 설명하는 텍스트를 생성한다. cross entropy loss로 가능성을 텍스트의 확률을 최대화한다.  

 

text encoder와 text decoder에 대해서 self-attention 층을 제외한 파라미터들을 모두 공유하는데 이는 encoder와 decoder간의 어텐션 방식이 다르기 때문이다. 우선 encoder의 경우 양방향 self-attention을 사용해서 문장 전체를 한꺼번에 보고 각 단어의 의미를 파악하는데 반면 decoder의 경우에는 미래의 단어를 미리 알면 안 되기 때문에 가리고(mask) 다음 단어를 예측한다. 따라서 이 둘은 파라미터를 공유하지 않는다. 

 

Embedding 층 경우 단어를 고차원의 벡터로 변환하는데 이는 Encoder와 Decoder 모두 동일하기 때문에 파라미터를 공유한다. Feed-Forward Network(FFN)과 Cross-Attention은 일반화 성능과 학습 효율성을 위해서 파라미터를 공유한다. 

 

3.3. CapFilt 

데이터를 모을 때 사람이 직접 주석을 다는 것은 비싸기 때문에 웹에서 대규모 데이터셋을 수집해서 사용한다. 하지만 이러한 텍스트는 이미지를 잘 설명하지 못하는 텍스트인 노이즈가 많이 포함되며 이는 학습에 적합하지 않다. 따라서 이러한 노이즈를 제거하고 필터링하기 위해서 CapFilt(Captioning and Filtering)을 제안한다. 

 

이름에서 알 수 있듯이 웹이미지를 보고 텍스트를 생성하는 captioning과 노이즈가 많은 image-text pairs를 삭제하는 Filtering과의 결합이다. 그래서 captioner의 경우 텍스트를 생성하는 image-grounded text decoder이며 LM loss를 사용하여 파인튜닝한다.

filter의 경우에는 image-grounded text encoder이며 ITC와 ITM loss를 사용하여 이미지가 텍스트와 매칭이 되는지 파인튜닝한다. 

 

그리고 ITM을 사용하여 이미지와 텍스트가 매칭이 되지않는다면 웹텍스트와 합성 텍스트를 제거하여 필터링한다. 그리고나서 최종적으로 필터링된 이미지, 텍스트 쌍과 사람이 주석 매긴 쌍과 결합하여 새로운 데이터셋을 생성한다. 

 

4. Experiments

4.1. Pre-training Details

Image transformer는 ImageNet에서 pre-train한 VIT로 초기화하고 text transformer는 BERT를 이용해서 초기화한다. Pre-training을 위해 사용한 데이테셋으로는 1400만장의 사람이 주석을 작성한 데이터셋 (COCO와 Visual Genome) 그리고 웹 데이터셋 3가지(Conceptual Captions, Conceptual 12M, SBU captions)를 합쳐서 사용한다. 

 

실험의 경우 더 많은 노이즈가 담겨있는 웹 데이터셋인 LAION을 가지고 실험한다. 

 

4.2. Effect of CapFilt

Table 1

위 실험의 경우 Captioner와 Filter가 있는 경우와 없는 경우를 비교하여 결과를 나타낸 표이다. 둘 중하나라도 있어도 성능이 좋아졌으며 둘 다 있는 경우에는 더 성능이 상승하였다. 따라서 노이즈를 필터링 하면서 학습하는데 있어서 효과가 있었다라고 해석할 수 있다.

 

Figure 4

위의 사진에서 처럼 웹에서의 데이터와 생성한 데이터에서 필터에 의해 통과되거나 거절되는 경우를 보여준다. 

 

4.3. Diversity is Key for Synthetic Captions

CapFilt에서 다음 단어를 예측하여 합성 캡션을 생성하기 위한 방법이 3가지 존재한다:

  1.  nucleus sampling : 확률적으로 디코딩하며 노이즈가 있지만 더 다양하고 새로운 정보가 존재한다.
  2. beam search : 결정적으로 디코딩하며 확률이 가장 높은 토큰을 샘플링하기 때문에 새로운 정보가 적다.

소제목에서 다양성이 중요하다고 강조하였듯이 nucleus search가 좋은 모습을 보여주었다. 새로운 정보가 모델에게 더 도움이 되기 때문인데 모델이 인식하기 어려운 부분을 창의적인 답을 통해서 풍부한 표현을 배운다고 생각해볼 수 있다. 

 

4.4. Parameter Sharing and Decoupling

Method의 3.2. 부분에서 언급하였듯이 self-atttention 부분을 제외한 나머지 부분들에 대해서 파라미터들을 공유하였을 때 성능이 가장 좋았는데 다음 실험결과를 통해서 확인해볼 수 있다. 

 

Table 3

모든 파라미터를 공유하는 것보다 self-attention 부분을 제외하고 공유하였을 때 성능이 더 좋았으며 아예 공유를 하지 않는 경우에 오히려 성능이 낮은 모습을 확인할 수 있다. 

 

그렇다면 captioner와 filter끼리 파라미터를 공유할 때는 성능이 어떻게 될까? 그래서 파라미터를 공유하는 경우와 분리(decoupled)한 경우가 아래 실험결과로 확인해볼 수 있다. 

파라미터를 공유하였을 때 노이즈는 줄어들었지만 성능은 오히려 떨어지는 모습인데 이는 captioner에서 생성한 텍스트가 filter에서 그냥 통과를 시켜버리는 현상이 발생하기 때문이다. 

 

5. Comparison with State-of-the-arts

이 섹션에서는 기존의 존재하는 VLP 방법들과 성능을 비교할 것이다. 

 

5.1. Image-Text Retrieval

Image-to-text retrieval (TR)과 text-to-image retrieval(IR)로 BLIP와 다른 방법들과의 성능을 비교한다.  

 

Table 5

COCO의 5천장과 Flickr30k의 1천장의 테스트셋으로 진행하였고 결과를 살펴보았을 때 기존 SOTA인 ALBEF와 학습 데이터수는 같지만 성능에서의 향상을 보여주었고 1억2천만장까지 데이터를 늘렸을 때 더욱 좋은 성능을 보여주었다. 

 

또한 zero-shot image-text retrieval에서 역시 BLIP가 ALBEF보다 좋은 성능을 보여주었다. 

 

5.2. Image Captioning

이미지 캡셔닝에서는 두가지 데이터셋(NoCaps, COCO)을 사용하였다. 텍스트를 생성하는 테스크이므로 LM loss를 사용해서 측정하였다. 

Table 7

기존의 SOTA인 LEMON보다 더 적은 데이터셋 (129M)으로도 더 좋은 성능을 BLIP가 보여준다. 또한 LEMON에서는 계산량이 많은 pretrained object detector가 있어서 더 높은 해상도 이미지가 필요하므로 BLIP는 추론시간에서도 이점을 갖는다. 

 

5.3. Visual Question Answering(VQA)

VQA란 이미지와 질문 텍스트가 주어졌을 때 답변을 생성하는 테스크이다. 

 

5.4. Natural Language Visual Reasoning (NLVR)

NLVR 쿼리 문장이 이미지 쌍을 묘사하는지 묻는다. 아래 표처럼 VQA와 NLVR 모두 BLIP가 SOTA 성능을 달성하였다는 것을 알 수 있다. 흥미로운점은 NLVR에서 BLIP의 이미지가 129M보다 적은 14M에서 오히려 성능이 더 좋았다는 점이다. 

Table 8

5.5. Visual Dialog (VisDial)

VisDial은 이미지-질문 텍스트 쌍뿐만 아니라 이전의 dialog의 기록와 이미지의 캡션도 답을 예측해야 한다. BLIP가 VisDial에서도 좋은 성능을 거두었다. 

Table 9

5.6. Zero-shot Transfer to Video-Language Tasks

한 번도 본적 없는 새로운 테스크에서 수행하는 zero shot에서 text-to-video retrieval과 video question answering(VQA)로 평가하였고 둘 다 좋은 BLIP가 SOTA 성능을 보여주었다. 

Table 10

 

Table 10

7. Conclusion

BLIP를 통해서 새로운 VLP 프레임워크를 소개하였고 다양한 다운스트림 비전-언어 테스크에서 SOTA 성능을 보여주었다. 이를 위해 MED 모델과 부트스트랩 데이터셋을 사용하여 학습하였고 더 많은 웹 데이터를 다양한 합성 캡션과 노이즈 캡션을 필터링하면서 학습할 수 있었다. 

반응형
저작자표시 비영리 동일조건 (새창열림)

'논문 리뷰' 카테고리의 다른 글

[논문리뷰] Sequence to Sequence Learning with Neural Networks  (0) 2026.07.05
[논문리뷰] Adding Conditional Control to Text-to-Image Diffusion Models  (0) 2026.05.11
[논문 리뷰] Learning Phrase Representation using RNN Encoder-Decoder for Statistical Machine Translation (2014)  (0) 2026.03.08
[논문 리뷰]Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling (2014)  (0) 2026.01.17
[논문리뷰] Recurrent neural network based language model (2010)  (0) 2025.12.31
'논문 리뷰' 카테고리의 다른 글
  • [논문리뷰] Sequence to Sequence Learning with Neural Networks
  • [논문리뷰] Adding Conditional Control to Text-to-Image Diffusion Models
  • [논문 리뷰] Learning Phrase Representation using RNN Encoder-Decoder for Statistical Machine Translation (2014)
  • [논문 리뷰]Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling (2014)
코드짜는 오리
코드짜는 오리
AI에 대한 글을 올립니다.
  • 코드짜는 오리
    코드짜는 오리
    코드짜는 오리
  • 전체
    오늘
    어제
    • 전체 글 (41)
      • AI숏츠 (17)
      • 논문 리뷰 (10)
      • [2025] CS231n (10)
      • 컴퓨터비전 (2)
      • LLM (1)
  • 링크

    • GitHub
  • 인기 글

  • 최근 글

  • 반응형
  • 태그

    attention
    논문리뷰
    ComputerVision
    transformer
    ChatGPT
    cs231n
    CS231n 강의노트
    옵티마이저
    deeplearning
    Optimizer
    컴퓨터비전
    SGD
    rnn
    ADAM
    머신러닝
    computer vision
    lstm
    경사하강법
    인공지능
    논문
    AI
    AI숏츠
    딥러닝
    쉽게배우는
    CV
    llm
    트랜스포머
    pytorch
    AlexNet
    GPT
  • hELLO· Designed By정상우.v4.10.5
코드짜는 오리
[논문 리뷰] BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation(2022)
상단으로

티스토리툴바