Post

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)를 사용함
    • 두 단계 학습
      1. vision-language 표현 학습: frozen 비전 인코더로부터 텍스트와 관련된 시각적 표현을 배움
      2. 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**를 제시함

      image.png

    • q-former는 vision 인코더와 llm 사이에서 정보 병목 역할을 하는 가벼운 트랜스포머임
      • 학습 가능한 쿼리 벡터를 사용해서 이미지 인코더에서 가장 유용한 visual 피처만 추출해서 llm에게 전달함
        1. 시각-언어 표현학습: Q-Former가 텍스트와 가장 관련성이 높은 시각적 표현을 배움
        2. 시각-언어 생성학습: Q-Former의 출력이 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 등을 가져와 활용하기가 어렵고 비효율적임
    • 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하고 효과적으로 결합함

    ### method

    image.png

    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)이라는 더 작은 크기의 피처로 줄어드는 것
        • → 이 병목 구조는 사전 학습을 통해 쿼리가 이미지의 모든 정보를 가져오는 것이 아니라 텍스트와 가장 관련성이 높은 시각 정보만 선별해서 추출하도록 강제함

    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를 골라 학습시킴

    3.3. Bootstrap Vision-to-Language Generative Learning from a Frozen LLM

    image.png

    • 사전학습 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 (뒷 부분)은 디코더의 생성 목표로 설정

    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개의 캡션만 학습 데이터로 남기고, 학습할 때마다 하나를 랜덤하게 선택해서 사용함
    • 모델
      • image encoder
        • 2가지 사용함
          • clip vit-l/14
          • eva-clip의 vit-g/14
          • vit의 마지막 layer를 제거하고 마지막에서 두번째 레이어의 output feature를 사용했을 때 성능이 약간 더 좋았음
      • llm
        • unsupervised-trained OPT model family (메타, Open Pre-trained Transformer)
        • instruction-tuned 기반의 FlanT5 (구글, Text-to-Text Transfer Transformer)
    • 사전학습 설정
      • 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

    image.png

    • 훨씬 적은 학습 파라미터로 기존 거대 모델을 뛰어넘음

    4.1. Instructed Zero-shot Image-to-Text Generation

    image.png

    • llm이 이미지를 이해하게 만드는 동시에 원래 llm이 가지고 있던 텍스트 프롬프트 이행 능력을 그대로 보존
    • 입력 : visual prompt + text prompt
    • visual knowledge reasoning, visual commonsense reasoning, visual conversation, personalized image-to-text generation
    • Zero-shot VQA

      image.png

      • 설정
        • OPT 모델: "Question: {} Answer:" 형식
        • FlanT5 모델: "Question: {} Short answer:" 형식
        • beam search (beam width 5)
        • 짧은 답변을 유도하는 길이 페널티 -1를 설정
      • 결과
        • 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
      • 1단계 표현학습이 성능에 미치는 영향?

        image.png

      • 1단계 학습이 없을 경우, 두 llm 모두 zero-shot vqa 성능이 대폭 하락
      • opt의 경우 학습을 진행할수록 성능이 오히려 떨어짐… → catastrophic forgetting

    4.2. Image captioning

    C:CIDEr,S:SPICE,B@4:BLEU@4

    • blip-2 모델을 캡셔닝 task에 맞춰서 finetuning함
      • 프롬프트로 “a photo of~” → 캡션 생성을 유도함
      • 똑같이 q-former만 학습, coco 데이터셋
    • 결과
      • blip이 nocaps에서 sota 달성함 → zero-shot 능력이 훌륭하다는걸 보여줌

    4.3. Visual Question Answering

    image.png

    • vqa에 대해서도 finetuning을 함
      • 마찬가지로 q-former만 학습, open-ended answer generation loss 사용
      • vqa task에 맞춰서 구조적 변화
        • 질문 토큰을 q-former의 입력으로
    • open 모델 중에서 sota 달성함

    4.4. Image-Text Retrieval

    image.png

    • image-text 검색은 언어를 생성하는 task가 아니기 때문에, 1단계 사전학습을 마친 모델 (llm 제외)만 fine-tuning했음
      • 사전학습과 동일하게 1단계의 3가지 loss를 사용해서 coco 데이터 학습
    • 추론
      • ITC 기반의 특징 유사도를 이용해서 빠르게 128개의 후보를 뽑음 → 이 후보에 대해서 ITM 점수를 계산해서 re-ranking을 수행함
    • 결과
      • zero-shot (flickr30k)에서 기존 방식들을 큰 차이로 이김

        image.png

      • ITC + ITM이 검색 성능의 핵심
      • ITG는 생성 손실인데 검색 성능 향상에도 도움을 주었음 - 쿼리가 텍스트와 관련있는 더 미세한 특징을 뽑게 강제함

    ### limitation

    • in-context learning 능력의 부족
      • Flamingo는 한 시퀀스 내에 여러 이미지와 텍스트가 교차하는 데이터셋(M3W)을 사용하여 이 능력을 확보
    • BLIP-2의 답변이 틀리는 경우는 주로 다음 세 가지 이유
      • LLM의 지식 오류: LLM 자체가 잘못된 정보를 알고 있는 경우.
      • 잘못된 추론 경로: 시각 정보는 맞지만, 논리적인 추론 과정에서 오류가 발생하는 경우.
      • 최신 정보 부재: 학습 데이터 이후에 등장한 새로운 이미지 콘텐츠나 사건에 대한 정보가 없는 경우.
    • 동결된 모델의 위험성 상속

    ### Conclusion

    • BLIP-2는 특정 모델에 국한되지 않고, 이미 존재하는 강력한 동결된 이미지 인코더LLM을 유연하게 연결할 수 있는 범용적인 방법론
      • 전체 모델을 다시 학습시킬 필요가 없어 연산 자원을 획기적으로 아낌
    • 학습에 필요한 파라미터 수는 매우 적지만, 성능 면에서는 기존의 거대 모델들을 압도하며 다양한 시각-언어 태스크에서 최고 기록을 경신
    • 단순한 캡셔닝을 넘어, 사용자의 복잡한 지시를 이해하고 그에 맞춰 이미지를 해석하는 제로샷 이미지-텍스트 생성
This post is licensed under CC BY 4.0 by the author.