BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
- salesforce, ICML 2023
- “BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models”
💡 두 모달리티를 효율적으로 정렬하기 위해서 querying transformer (q-former)를 사용함
- bootstrapping? 기존에 이미 잘 만들어진 모델을 그대로 활용해서 새로운 능력을 스스로 끌어올리는 방식
abstract
- 대규모 모델을 엔드투엔드로 학습시키는 vision-language 사전 학습 비용이 지나치게 높아지고 있음
- 본 연구에서는 blip-2를 제안함: 잘 만들어져있는 vision encoder와 llm을 frozen해서 그대로 활용
- 두 모달리티를 정렬하기 위해서 querying transformer (q-former)를 사용함
- 두 단계 학습
- vision-language 표현 학습: frozen 비전 인코더로부터 텍스트와 관련된 시각적 표현을 배움
- vision-to-language 생성 학습: 학습된 시각 정보가 frozen llm에 의해 해석될수 있도록 연결하여 언어 생성 능력을 확보함
- 두 단계 학습
- 여러 vision-language task에서 학습가능한 파라미터수가 훨씬 작은데도 sota 달성함
- flamingo80b보다 학습 파라미터가 54배 적으면서, 제로샷 vqav2 성능은 8.7% 더 높임
- 자연어 instruction을 따르는 제로샷 image-to-text 생성 능력을 가짐
introduction
- 배경
- 최근 vision-language 사전학습 모델들은 규모가 커짐에 따라 end-to-end 학습에 엄청난 계산 비용이 듬
- 이미 고품질의 비전 모델과 llm이 있으므로 이를 최대한 활용하고자 함
- 이에 본 연구는 있는 모델을 최대한 활용하는 generic and compute-efficient vision language 사전학습 방법을 제안함
- 두 모달리티의 정렬
- 기존 방식들은 image-text 생성 loss를 사용했고, 이는 두 모달리티의 간극을 메우기에 충분하지 않음
본 연구에서는 두 unimodal 모델을 frozen한채로 잘 정렬시키기 위해서, **2단계로 사전학습된 querying trasformer**를 제시함
- q-former는 vision 인코더와 llm 사이에서 정보 병목 역할을 하는 가벼운 트랜스포머임
- 학습 가능한 쿼리 벡터를 사용해서 이미지 인코더에서 가장 유용한 visual 피처만 추출해서 llm에게 전달함
- 시각-언어 표현학습: Q-Former가 텍스트와 가장 관련성이 높은 시각적 표현을 배움
- 시각-언어 생성학습: Q-Former의 출력이 LLM에 의해 적절히 해석되어 원하는 텍스트를 출력할 수 있도록 연결 학습
- 학습 가능한 쿼리 벡터를 사용해서 이미지 인코더에서 가장 유용한 visual 피처만 추출해서 llm에게 전달함
- 기여점
- blip-2는 frozen 비전 인코더와 llm을 효과적으로 활용함
- q-former를 표현학습, 생성학습으로 사전학습해서 vision language 사이의 gap을 메움
- 여러 vision-language task에서 sota 달성함
- blip2는 zero-shot image-to-text 생성에서도 자연어 지시사항을 잘 따름 → 시각적 지식 추론이나 시각적 대화와 같은 새로운 능력
- frozen 모델과 가벼운 q-former를 사용하기 때문에 기존 모델들보다 훨씬 계산 효율적임
- 더 발전된 유니모달 모델이 나오면 그대로 가져와 성능을 높일 수 있는 generic한 방법임
### related work
- End-to-end Vision-Language Pre-training
- 모델 구조: 하위 task에 따라 여러 구조가 제안됨
- dual-encoder, fusion-encoder, encoder-decoder, unified transformer…
- 학습 목표
- image-text contrastive learning: 이미지와 텍스트 쌍의 유사도를 높이는 방식
- image-text matching: 특정 이미지와 텍스트가 서로 일치하는지 이진 분류하는 방식
- LM: 단어를 예측하며 문맥을 파악
- 한계
- 모델의 크기가 커질수록 사전 학습에 필요한 연산량이 기하급수적으로 증가함
- 개별적으로 잘 학습된 llm 등을 가져와 활용하기가 어렵고 비효율적임
- 모델 구조: 하위 task에 따라 여러 구조가 제안됨
- modular vision-language pre-training
- blip2처럼 이미 학습된 모델을 가져와서 frozen한채 학습하는 방법들
- image encoder를 동결하는 방식, llm을 동결하는 방식..
- visual 특징을 텍스트 공간에 어떻게 정렬할 것인가?
- Frozen (2021): 이미지 인코더 자체를 미세 조정하여 그 출력을 LLM의 소프트 프롬프트로 직접 사용
- Flamingo (2022): LLM 내부에 새로운 Cross-attention 계층을 삽입하고, 수십억 개의 이미지-텍스트 쌍을 통해 이 계층만 사전 학습
- 두 방식 모두 이미지를 조건으로 텍스트를 생성하는 언어 모델링 loss를 사용함
- blip2는 사전 연구들과 다르게 image encoder, llm을 둘다 frozen하고 효과적으로 결합함
- blip2처럼 이미 학습된 모델을 가져와서 frozen한채 학습하는 방법들
### method
3.1. model architecture
- q former는 visual encoder에서 고정된 수의 output feature를 추출함 (이미지 크기와 관계없이 고정된 수의 피처)
- 동일한 self-attention layer를 공유하는 2개의 트랜스포머 서브모듈로 구성됨
- 이미지 트랜스포머: frozen visual encoder와 상호작용해서 visual feature를 추출함
- 텍스트 트랜스포머: text encoder/decoder 기능을 모두 할 수 있음
- 학습가능한 쿼리: 이미지 트랜스포머의 입력으로 사용되는 고정된 개수의 임베딩
- self attention을 통해서 쿼리 간 상호작용을 함 → 정보 교환
- 두번째 트랜스포머 블록마다 삽입된 cross attention layer를 통해 frozen 이미지 feature와 상호작용
- 공유된 self attention을 통해 쿼리가 텍스트와도 상호작용 가능
- 사전학습 task에 따라서 다른 self-attention masking 방법을 사용함
- 세부사항
- q-former를 bert-base의 가중치로 초기화함
- cross attention은 랜덤 초기화
- 총 188m의 가벼운 파라미터로 구성됨, 쿼리도 모델 파라미터로 간주된 것
- 32개의 쿼리 사용, 각 쿼리는 768 dim
- q-former의 hidden dim도 768
- 최종 output query 표현은 (32 x 768)
- visual encoder의 output 피처 크기는 (257 x 1024)임 → (32 x 768)이라는 더 작은 크기의 피처로 줄어드는 것
- → 이 병목 구조는 사전 학습을 통해 쿼리가 이미지의 모든 정보를 가져오는 것이 아니라 텍스트와 가장 관련성이 높은 시각 정보만 선별해서 추출하도록 강제함
- q-former를 bert-base의 가중치로 초기화함
3.2. Bootstrap Vision-Language Representation Learning from a Frozen Image Encoder
- 사전학습 1단계 표현 학습
- 목표: 쿼리가 텍스트에 대해 가장 정보가 많은 시각적 표현을 추출하도록 q-former를 학습시키는 것
- 이를 위해 3가지 학습 목표를 설정함
- Image-text contrastive learning
- (image, text) positive pair의 유사도를 negative pair의 유사도와 대비시켜 학습
- 이미지 트랜스포머의 output query representation Z와 텍스트 트랜스포머에서 나온 representation t ([cls] token의 임베딩)
- Z에는 여러개의 query output이 있음 → 각 쿼리 output - t 사이의 유사도를 계산해서 가장 높은 값을 최종 image-text 유사도로 선택함
- attention masking: unimodal self-attention 마스킹을 사용
- 쿼리와 텍스트는 서로를 볼 수 없게 제한됨
- in-batch negative를 사용함
- Image-grounded text generation
- 이미지를 주었을 때, q-former가 적절한 텍스트를 생성하도록 훈련시킴
- 이미지 인코더와 text 토큰 사이에 q-former가 있어서 직접 상호작용 x
- query가 텍스트 생성에 필요한 정보를 추출하고, 그 후 self-attention 레이어를 통해 텍스트 토큰으로 전달됨
- multimodal causal self-attention masking
- UniLM과 유사한 방식
- 쿼리들은 서로 상호작용 가능, 텍스트 토큰은 볼 수 없음
- 텍스트 토큰은 모든 쿼리와 이전까지의 텍스트 토큰들을 볼 수 있음
- 기존 [CLS] 토큰을 [DEC]로 바꿔서 디코딩 작업을 알림
- Image-Text Matching
- 주어진 이미지-텍스트 pair가 서로 일치하는지 관련없는지 예측하는 이진분류 task
- bidirectional self attention masking
- 모든 쿼리와 텍스트 토큰이 서로 자유롭게 볼 수 있음
- 이를 통해 출력 쿼리 임베딩 Z는 시각 정보와 텍스트 정보가 모두 결합된 멀티모달 정보를 포착하게 됨
- 각 출력 쿼리 임베딩을 linear classifier에 입력해서 logit을 얻음 → 평균을 내서 최종적인 image-text matching score로 사용함
- hard negative mining
- 모델이 헷갈려할만한 어려운 negative pair를 골라 학습시킴
- Image-text contrastive learning
3.3. Bootstrap Vision-to-Language Generative Learning from a Frozen LLM
- 사전학습 2단계 생성 학습
- 목표 : 1단계에서 잘 학습한 q-former를 frozen llm에 연결해서 실제 언어 생성 능력을 부여하는 것
- q-former의 출력 쿼리 임베딩 Z를 fully connected layer를 통해 llm의 텍스트 임베딩과 동일한 차원으로 투사함
- 이 시각임베딩을 입력 텍스트 임베딩의 앞부분에 붙임
- llm이 시각적 표현에 기반해 답변할 수 있도록 유도하는 soft visual prompt 역할을 함
- q-former는 1단계를 통해 언어와 관련된 시각정보를 추출하도록 학습됨
- llm이 vision-language를 직접 배우지 않으므로, 기존 언어 능력을 망각하지 않음
- 2가지 타입의 llm을 실험함
- decoder 기반 llm: language modeling loss를 통해 학습
- 시각적 표현을 조건으로 해서 텍스트를 생성하는 task를 수행
- encoder-decoder 기반 llm: prefix language modeling loss를 통해 학습
- 텍스트를 두 부분으로 나누어서 prefix text는 시각적 표현과 함께 입력으로, suffix text (뒷 부분)은 디코더의 생성 목표로 설정
- decoder 기반 llm: language modeling loss를 통해 학습
3.4. Model Pre-training
- 사전학습 데이터셋
- 기존 blip 연구와 동일하게 총 129m 이미지를 사용함
- COCO, Visual Genome, SBU, CC3M, CC12M, LAION400M에서 추출한 115m의 이미지
- CapFilt 방법을 사용해서 웹 이미지에서 데이터를 정제함
- 웹 수집 이미지의 caption을 정확하게 하기 위함
- blip_large 모델을 사용해서 이미지당 10개의 캡션을 생성함
- 생성된 캡션과 기존 캡션들을 clip vit-l/14 모델을 이용해 이미지와의 유사도를 측정해서 순위를 매김
- 이미지당 상위 2개의 캡션만 학습 데이터로 남기고, 학습할 때마다 하나를 랜덤하게 선택해서 사용함
- 기존 blip 연구와 동일하게 총 129m 이미지를 사용함
- 모델
- image encoder
- 2가지 사용함
- clip vit-l/14
- eva-clip의 vit-g/14
- vit의 마지막 layer를 제거하고 마지막에서 두번째 레이어의 output feature를 사용했을 때 성능이 약간 더 좋았음
- 2가지 사용함
- llm
- unsupervised-trained OPT model family (메타, Open Pre-trained Transformer)
- instruction-tuned 기반의 FlanT5 (구글, Text-to-Text Transfer Transformer)
- image encoder
- 사전학습 설정
- 1단계 표현학습: 250k step
- 2단계 생성학습: 80k step
- vit, llm의 파라미터를 fp16으로 사용 (flant5는 bfloat16 사용)
- 학습시간: 16개의 a100 1대를 사용해서 1단계는 6일 미만, 2단계는 3일 미만이 소요됨
- 하이퍼파라미터는 모든 모델에 동일하게 적용함
- adamw optimizer
- cosine lr decay
- 이미지는 224x224 크기, random resized cropping, horizontal flipping 사용
### experiment
- 훨씬 적은 학습 파라미터로 기존 거대 모델을 뛰어넘음
4.1. Instructed Zero-shot Image-to-Text Generation
- llm이 이미지를 이해하게 만드는 동시에 원래 llm이 가지고 있던 텍스트 프롬프트 이행 능력을 그대로 보존
- 입력 : visual prompt + text prompt
- visual knowledge reasoning, visual commonsense reasoning, visual conversation, personalized image-to-text generation
Zero-shot VQA
- 설정
- OPT 모델:
"Question: {} Answer:"형식 - FlanT5 모델:
"Question: {} Short answer:"형식 - beam search (beam width 5)
- 짧은 답변을 유도하는 길이 페널티 -1를 설정
- OPT 모델:
- 결과
- vqav2, gqa에서 sota 달성함
- flamingo보다 학습 파라미터는 54배 적으면서, vqav2에서 8.7% 개선
- ok-vqa는 외부 지식이 많이 필요함
- flamingo 기반 70b chinchilla 모델이 blip2의 11b flant5보다 더 방대한 세상 지식을 갖고 있기 때문인걸로 보임
- blip-2끼리 비교
- vit l < vit g
- 같은 llm 내에서도 크기가 클수록 성능 더 나음
- opt < flant5
- 설정
- Effect of Vision-Language Representation Learning
4.2. Image captioning
- blip-2 모델을 캡셔닝 task에 맞춰서 finetuning함
- 프롬프트로 “a photo of~” → 캡션 생성을 유도함
- 똑같이 q-former만 학습, coco 데이터셋
- 결과
- blip이 nocaps에서 sota 달성함 → zero-shot 능력이 훌륭하다는걸 보여줌
4.3. Visual Question Answering
- vqa에 대해서도 finetuning을 함
- 마찬가지로 q-former만 학습, open-ended answer generation loss 사용
- vqa task에 맞춰서 구조적 변화
- 질문 토큰을 q-former의 입력으로
- open 모델 중에서 sota 달성함
4.4. Image-Text Retrieval
- image-text 검색은 언어를 생성하는 task가 아니기 때문에, 1단계 사전학습을 마친 모델 (llm 제외)만 fine-tuning했음
- 사전학습과 동일하게 1단계의 3가지 loss를 사용해서 coco 데이터 학습
- 추론
- ITC 기반의 특징 유사도를 이용해서 빠르게 128개의 후보를 뽑음 → 이 후보에 대해서 ITM 점수를 계산해서 re-ranking을 수행함
- 결과
### limitation
- in-context learning 능력의 부족
- Flamingo는 한 시퀀스 내에 여러 이미지와 텍스트가 교차하는 데이터셋(M3W)을 사용하여 이 능력을 확보
- BLIP-2의 답변이 틀리는 경우는 주로 다음 세 가지 이유
- LLM의 지식 오류: LLM 자체가 잘못된 정보를 알고 있는 경우.
- 잘못된 추론 경로: 시각 정보는 맞지만, 논리적인 추론 과정에서 오류가 발생하는 경우.
- 최신 정보 부재: 학습 데이터 이후에 등장한 새로운 이미지 콘텐츠나 사건에 대한 정보가 없는 경우.
- 동결된 모델의 위험성 상속
### Conclusion
- BLIP-2는 특정 모델에 국한되지 않고, 이미 존재하는 강력한 동결된 이미지 인코더와 LLM을 유연하게 연결할 수 있는 범용적인 방법론
- 전체 모델을 다시 학습시킬 필요가 없어 연산 자원을 획기적으로 아낌
- 학습에 필요한 파라미터 수는 매우 적지만, 성능 면에서는 기존의 거대 모델들을 압도하며 다양한 시각-언어 태스크에서 최고 기록을 경신
- 단순한 캡셔닝을 넘어, 사용자의 복잡한 지시를 이해하고 그에 맞춰 이미지를 해석하는 제로샷 이미지-텍스트 생성
- blip-2는 frozen 비전 인코더와 llm을 효과적으로 활용함
This post is licensed under CC BY 4.0 by the author.










