BLIP-2: 제로샷 이미지-텍스트 생성

BLIP-2는 Salesforce Research에서 개발한 제로샷 비주얼-언어 모델로, 고정된 사전 학습된 비전 인코더와 고정된 대형 언어 모델(LLM)을 연결하여 최첨단 이미지-텍스트 생성이 가능하도록 합니다. 이 접근 방식은 엔드투엔드 멀티모달 사전 학습에 비해 사전 학습 비용과 학습 가능한 파라미터를 크게 감소시킵니다.

BLIP-2는 비전과 언어 사이의 모달리티 격차를 메우기 위해 경량 Querying Transformer(Q-Former)를 활용합니다. Q-Former는 아키텍처에서 유일하게 학습 가능한 구성 요소이며, 이미지 인코더와 LLM은 학습 중에도 고정된 상태를 유지합니다.

Q-Former 아키텍처

Q-Former 하위 모듈

Q-Former는 동일한 self-attention 레이어를 공유하는 두 개의 하위 모듈로 구성됩니다:

  • Image Transformer: 고정된 이미지 인코더와 상호 작용하여 시각적 특징을 추출합니다. 학습 가능한 쿼리 임베딩을 입력으로 받아 입력 이미지 해상도와 무관하게 고정된 수의 출력 특징을 추출합니다.
  • Text Transformer: 텍스트 인코더와 텍스트 디코더 역할을 모두 수행합니다.

두 단계 사전 학습

Q-Former는 두 개의 구별된 단계에서 학습됩니다:

  1. 첫 번째 단계: 이미지 인코더는 고정되고, Q-Former는 세 가지 특정 손실을 사용하여 학습됩니다:

    • Image-text contrastive loss: 쿼리 출력과 텍스트 출력 CLS 토큰 간의 쌍별 유사성을 계산합니다.
    • Image-grounded text generation: 텍스트 트랜스포머는 인과 마스크를 사용하고 쿼리에 주의를 기울이며, 쿼리는 서로에게는 주의를 주지만 텍스트 토큰에는 주의를 주지 않습니다.
    • Image-text matching loss: 쿼리와 텍스트가 상호 작용하여 텍스트가 이미지와 일치하는지를 나타내는 로짓을 생성하며, 부정 예시를 위한 하드 네거티브 마이닝을 활용합니다.
  2. 두 번째 단계: 이제 관련 시각 정보를 정보 병목을 통해 필터링한 쿼리 임베딩을 LLM 입력에 대한 시각적 프리픽스로 사용합니다. 이 단계에서는 이미지 기반 텍스트 생성을 위해 인과 LM 손실을 사용합니다.

모델 기능 및 구현

BLIP-2는 유연하도록 설계되어, 시각 백본(예: ViT)과 LLM(예: OPT 또는 Flan T5)의 어떤 조합도 사용할 수 있습니다.

지원 작업

  • Image Captioning: BOS(beginning-of-sequence) 토큰에서 시작하여 텍스트 프롬프트 없이 이미지에 대한 설명을 생성합니다.
  • Prompted Image Captioning: 이미지의 시각적 내용에 기반하여 제공된 텍스트 프롬프트를 이어서 생성합니다.
  • Visual Question Answering (VQA): Question: {} Answer: 형식의 프롬프트를 사용해 이미지에 대한 특정 질문에 답합니다.
  • Chat-based Prompting: 이전 질문-답변 쌍을 연결하여 컨텍스트를 구축함으로써 대화형 인터페이스를 만듭니다. 컨텍스트는 512 토큰으로 제한되며, 이는 기반 LLM(OPT 및 T5)의 컨텍스트 길이와 일치합니다.

Hugging Face Transformers와의 통합

BLIP-2는 Hugging Face Transformers 라이브러리의 Blip2ForConditionalGeneration 클래스를 통해 사용할 수 있습니다. 특수한 아키텍처이기 때문에 표준 AutoModel API로 로드할 수 없으며, Blip2ForConditionalGeneration 클래스를 명시적으로 사용해야 합니다. 다만 AutoProcessor를 사용하여 Blip2Processor를 가져올 수 있습니다.

Sources