논문
https://arxiv.org/pdf/2301.12597
Abstract
문제 제기
대규모 모델을 end-to-end 방식으로 학습시키면서 Vision-and-Language Pre-training에 드는 비용이 기하급수적으로 증가
이를 해결하기 위해 저자들은 파라미터가 업데이트되지 않도록 고정된(frozen) 사전 학습 이미지 인코더와 LLM을 활용하여 비전-언어 사전 학습을 부트스트랩(bootstrap)하는 범용적이고 효율적인 전략인 BLIP-2를 제안
BLIP-2는 2단계로 이루어진 Querying Transformer를 사용
첫 번째 스테이지는 frozen image encoder에서 비전-언어 표현을 학습
두 번째 스테이지에서는 frozen language model에서 비전-언어 생성을 학습
Introduction
제안하는 해결책
이미 학습이 완료된 단일 모달리티 모델들을 활용하는 방식을 제안
전 학습 비전 모델과, 강력한 언어 생성 및 제로샷 전이 능력을 갖춘 LLM을 그대로 가져와 사용
이때 연산량을 줄이고 기존에 학습된 지식을 잊어버리는 catastrophic forgetting을 방지하기 위해,
이 거대 모델들의 가중치는 업데이트하지 않고 frozen 상태로 유지
Modality Gap
Frozen된 모델을 사용할 때 가장 큰 문제는 한 번도 이미지를 본 적이 없는 언어 LLM이 시각적 정보를 이해하도록 만드는 것이다.
기존 연구들은
이를 위해 단순히 이미지를 조건으로 텍스트를 생성하도록 하는 손실 함수에만 의존했는데, 저자들은 이 방식만으로는 두 모달리티 사이의 간극을 충분히 메울 수 없다고 지적한다.
Q-Former와 2단계 사전 학습
BLIP-2는 동결된 모델 사이의 간극을 효과적으로 잇기 위해 Q-Former(Querying Transformer) 라는 가벼운 모듈을 도입
Q-Former는 학습 가능한 쿼리 벡터들을 사용해 Frozen된 이미지 인코더로부터 텍스트 생성에 가장 유용한 시각적 특징만을 추출하는 information bottleneck 역할을 수행
1.Representation Learning
텍스트와 가장 관련성이 높은 시각적 표현을 학습하도록 Q-Former를 훈련
2.Generative Learning
Q-Former의 출력을 Frozen된 LLM에 연결하여, LLM이 전달받은 시각적 표현을 제대로 해석하고 원하는 텍스트를 생성할 수 있도록 훈련
Model Architecture (Q-former)
Frozen image Encoder와 LLM을 연결하는 학습 가능한 Transformer이다.
Q-Former는 크게 두 개의 transformer submodule로 구성되어 있으며, submodule에서 self-attention layer는 공유한다.
Q-former는 사전 학습된 BERTbase 가중치로 초기화, Cross-Attention Layer는 무작위로 초기화됨
transformer submodule
1. image transformer module
이미지 인코더로부터 전달된 feature와 learnable query embedding이 상호작용하게됨
learnable query embedding들은 self-attention을 통해 서로간에 상호작용을 하게되고
cross-attnetion layer를 통해 frozen image feature와 상호작용하여 text 생성에 필요한 시각정보를 선택적으로 추출
1.1 Learned Queries
Learned Queries는 이미지 특징(Visual Features)을 텍스트 특징(Language Features)으로 변환하는 데 필요한 중간 매개체 역할을 한다.
구체적으로, Q-Former 내에서 각 쿼리 벡터는 이미지에서 나온 시각적 특징 중에서 텍스트 생성에 대해서 필요한 정보를 선택적으로 추출하는 역활을 가지고 있다.
Learned Queries는 Q-Former의 학습 과정에서 최적화되며 self-attention을 통해 Query들 간에 상호작용을 학습하여
자신이 어떤 정보를 추출해야하는지 결정하게됨
cross-attnetion 상황에서는 Learned Queries가 image의 patch 특징으로 부터 Query 가장 적합한 정보를 선택적으로
강조하여 가져오게 된다.
ex) 특정 query는 사람,동물과 같은 객체 / 다른 query는 이미지 내의 배경이나 환경과 같은 정보를 선택적으로 가져올수 있도록 학습
2. text transformer
text encoder와 text decoder 두 가지로 기능가능
다양한 attention Mask를 활용하여 query와 text간의 상호작용을 효과적으로
Attention Mask
query와 text의 상호작용을 효과적으로 제어하기 위해 3가지 Attention Mask를 사용
Bi-directional Self-Attention Mask: 쿼리와 텍스트가 양방향으로 자유롭게 모든 정보를 주고받을 수 있도록 완전히 개방. 이미지-텍스트 매칭(ITM)에 사용된다
Multi-modal Causal Self-Attention Mask: 쿼리는 텍스트를 볼 수 없지만, 텍스트는 쿼리와 자신보다 앞에 있는 텍스트 토큰을 볼 수 있게 하는 '단방향/순차적' 마스크입니다. 이미지 기반 텍스트 생성(ITG)에 사용된다
Uni-modal Self-Attention Mask: 쿼리와 텍스트가 서로를 전혀 볼 수 없도록 벽을 칩니다. 이미지-텍스트 대조 학습(ITC)에 사용된다
왜 Attention Mask를 쓰는지?
정보 누설(Information Leak) 방지 (Image-Text Contrastive Learning): Image-Text Contrastive Learning은 두 모달리티의 독립적인 표현을 알맞게 정렬하는 것이 목적입니다. 이때 쿼리와 텍스트가 서로를 참조하지 못하게 하는 uni-modal mask를 사용하여, 서로 힌트를 얻는 정보 누설 현상을 차단
시각적 정보 추출 강제 (Image-Grounded Text Generation): Image-Grounded Text Generation 시, 쿼리들은 텍스트 토큰을 볼 수 없고 텍스트 토큰은 쿼리와 이전 텍스트만 볼 수 있는 multimodal causal mask를 사용한다.
직접적인 상호작용이 불가능한 상태에서 텍스트를 생성해야 하므로, 쿼리들이 텍스트 설명에 필요한 모든 시각적 특징을 완벽하게 추출해 내도록 강제하는 역할을 한다
세밀한 다중 모달 정보 융합 (Image-Text Matching): Image-Text Matching은 이미지와 텍스트가 실제로 일치하는지 세밀하게 분류하는 작업입니다. 이를 위해 모든 쿼리와 텍스트가 서로를 볼 수 있는 bi-directional mask를 적용하여, 두 모달리티의 정보가 양방향으로 자유롭게 교환되고 깊게 융합되도록 만든다
Generative Learning from a Frozen LLM
Q-Former를 Forzen LLM에 연결
Q-Former가 출력한 Query embedding은 Fully-Connected layer를 거쳐
LLM이 사용하는 text embedding과 동일 한 차원으로 변환됨
이렇게 차원이 변환된 쿼리 임베딩들은 입력 텍스트 임베딩의 맨 앞에 추가되고
이 쿼리들은 LLM에게 "이 이미지는 이런 내용이야"라고 알려주는 일종의 '소프트 시각적 프롬프트(Soft visual prompts)' 역할을 하여, LLM이 시각적 표현을 조건으로 텍스트를 생성하도록 돕는다.
이러한 과정으로 인해
Q-Former는 텍스트와 관련 없는 불필요한 시각 정보는 걸러내고, LLM이 필요로 하는 가장 유용한 정보만 쏙쏙 넘겨주는 Information Bottleneck 역할을 수행하게 된다.
두가지 유형의 LLM
1. Decoder-base(OPT)
단순 Lanuage modeling을 수행
모델은 Soft visual prompt에 따라 자연스럽게 이어지는 text를 생성하도록하는 단순 Lanuage modeling을 수행
2. Encoder_Decoder-base(Flan T5)
Prefix language modeling 수행
훈련에 사용되는 전체 텍스트를 접두사 텍스트(Prefix text)와 접미사 텍스트(Suffix text)라는 두 부분으로 쪼개어 활용
(예를 들어 전체 텍스트가 "a cat wearing sunglasses"라면, 접두사는 "a cat", 접미사는 "wearing sunglasses"로 나눌 수 있다.