NLP 성능을 LLM 수준으로 유지시키면서 VLM을 scratch로 학습시키는 건 굉장히 어려움. 따라서, frozen pretrained language model로부터 어떤 식으로 VLM을 학습시키는지를 investigate하는 방향으로 연구가 진행되어 옴.
기존 연구 방향
Shallow alignment (such as InstructBLIP, MiniGPT-4)
vision encoder와 language model을 둘 다 freeze시킨 후에 학습 가능한 Q-Former 혹은 linear layer를 두 encoder 사이에 넣어서 연결하여 image feature를 language model의 embedding space에 매핑하는 형태로 VLM 설계
그러나, shallow alignment 방법론 같은 경우에는 각 모달리티 간 deep fusion이 이루어지지 않기 때문에 performance가 suboptimal하다는 한계가 있음.
LLM unfreeze
catastrophic forgetting 문제 -> 기존 학습된 데이터 / 태스크를 잊어버리는 문제. 따라서, 아래의 그림과 같이 기존 얻었던 Natural language understanding 능력이 급격히 저하되는 걸 볼 수 있음.
CogVLM
CogVLM은 두 가지 모달리티에서 모두 좋은 성능을 보여줄 수 있는 방안으로 visual-textual feature 간의 deep fusion이 필요하다고 주장. 이에 따라 visual expert module을 제안함. side adapter 방식으로 language model 내부 side에 visual feature를 위한 별도의 trainable alignment module (attention, FFN)을 추가함으로써 llm freeze를 시킴에 따라 nlp capa는 그대로 유지하고 visual feature를 language model에 맞게 더 잘 align시킬 수 있다고 주장.
CogVLM-17B는 아래와 같이 17개의 cross-modal benchmarks (including multiple datasets & benchmarks from image captioning, vqa, LVLM, visual grounding)에서 SOTA 성능을 보여줌.
Method Highlights
Architecture
총 4개의 component.
ViT Encoder
EVA2-CLIP-E (4.4B) / final layer is removed (마지막 레이어는 abstract 정보를 뽑아내므로)
MLP Adapter
word embedding과 동일한 space로 mapping하기 위한 adpater. two-layer mlp로 구현.
Pre-trained large language model
GPT-style의 PLM과는 다 호화됨. CogVLM-17B 같은 경우에는 Vicuna1.5-7B를 사용함. causal mask attention 사용 (image feature에까지 다)
Visual expert module
모든 레이어에 deep feature alignment를 위해 QKV matrix (attention)와 MLP를 side에 붙여서 image feature만 processing하도록 함. language model의 각 attention head는 semantic information의 특정 aspect를 각자 뽑아내기 위한 목적이었다면, visual expert module은 image feature를 각 다른 head와 align시키기 위한 방향으로 작용함.
positional embedding은 visual feature가 llm에 feed될 때는 position id 공유하는 형태로.
Pre-training (image captioning & grounding)과 alignment (sft) 두 가지 단계를 거침.
Pre-raining
pre-training 데이터는 아래와 같이 collect
1.5B image-text pairs from LAION-2B and COYO-700M
visual grounding dataset (each noun in the image caption is associated with bounding boxes): 40M images (filtered from LAION-115M; 75% 이상의 이미지가 최소한 2개의 bounding box를 가질 수 있도록).
pre-training 중 첫번째 스테이지는 image-captioning으로 학습.
batch size of 8,192
120,000 iterations
두번째 스테이지는 image captioning과 Referring Expression Comprehension (Referring expression이 주어지면, bbox 좌표 리턴하는 형태)의 mixture로 학습
normalized position for bounding boxes
batch size of 1,024
60,000 iterations (during final 30,000 iterations, upscale the input resolution from 224 $\times$ 224 to 490 $\times$ 490
# total trainable parameters: 6.5B
Training setting
Instruction alignment
trained two generalist models - CogVLM-Chat and CogVLM-Grounding
VQA 데이터셋 같은 경우에는 짧은 답변을 요구하는 경우가 많아서 input prompt format을 다음과 같이 구성.
trained for 6,000 iterations with lr of 1e-5 and a batch size of 1024. 이때, visual encoder의 parameter unfreeze시키고 이 부분의 lr은 1e-6으로 조정.
CogVLM-Grounding
: Grounded Captioning, Referring Expression Generation, Referring Expression Comprehension, Grounded Visual Question Answering 4가지 태스크에 대해 데이터 수집 (from Flickr30K Entities, Ref-COCO, Visual7W, VisualGenome, and Grounded CoT-VQA).
Training setting
Experiment Highlights
Image Captioning
NoCaps와 Flickr는 zero-shot, COCO & TextCaps는 fine-tuning한 결과. 성능이 매우 잘 나오고, OCR 데이터 없이도 textcaps에서 SOTA와 비견되는 성능을 보여줌.
VQA and LVLM benchmarks
VQA 잘함. LVLM 벤치마크에서도 잘함 (더 큰 llm 쓴 모델보다도 잘함). 다양한 LVLM에서 잘하는 걸로 보았을 때, 다양한 태스크에서 robust하고 generalize된 reasoning 능력을 보여준다.
ShalIow alignment (InstructBLIP과 MiniGPT-4)을 사용한 모델은 성능이 좋지 못함 -> deep fusion의 중요성이 부각 (?)
Referring Expression Comprehension and GroundedVQA
generalist 중 가장 잘할 뿐 아니라, 해당 태스크에 맞춰서 학습된 specialist 모델들보다도 잘함 (5 out of 9 splits)
Ablations
Model structure and tune params: adapter만 training하거나 LLM과 adapter 둘 다 training하는 방식은 성능 하락을 가져옴. visual expert의 variation의 경우에는 성능 하락이 있긴 했지만 봐줄 만한 정도 (어느 정도 model scale과 performance 간의 타협점 찾는 방안도 괜찮을 것 같다)
+) 실제로 visual expert를 학습하게 되면 LLM을 training할 때보다 외부 지식을 요구하는 데이터셋에서 더 좋은 성능을 보여줌.
Initialization Method: LLM init이 낫다 (어느 정도 llm이 visual tokens를 process하는 데 좋은 prior를 제공해준 듯)
Visual Attention Mask: Causal이 full보다 낫다 (LLM 구조 자체에 조금 더 적합했기 때문이 아닐까..)
Image SSL Loss: image feature에 self-supervised objective를 추가했을 때, 눈에 띄는 추가 improvement는 보이지 않음.
Visual Encoder: 조금 더 scale이 작은 vision encoder를 사용했을 때 (4.4B -> 300M), 성능이 조금 떨어지는 경향. 이러한 decrease는 TextVQA에서 특히 두드러짐.
Summary
NLP 성능을 LLM 수준으로 유지시키면서 VLM을 scratch로 학습시키는 건 굉장히 어려움. 따라서, frozen pretrained language model로부터 어떤 식으로 VLM을 학습시키는지를 investigate하는 방향으로 연구가 진행되어 옴.
기존 연구 방향
Shallow alignment (such as InstructBLIP, MiniGPT-4) vision encoder와 language model을 둘 다 freeze시킨 후에 학습 가능한 Q-Former 혹은 linear layer를 두 encoder 사이에 넣어서 연결하여 image feature를 language model의 embedding space에 매핑하는 형태로 VLM 설계 그러나, shallow alignment 방법론 같은 경우에는 각 모달리티 간 deep fusion이 이루어지지 않기 때문에 performance가 suboptimal하다는 한계가 있음.
LLM unfreeze catastrophic forgetting 문제 -> 기존 학습된 데이터 / 태스크를 잊어버리는 문제. 따라서, 아래의 그림과 같이 기존 얻었던 Natural language understanding 능력이 급격히 저하되는 걸 볼 수 있음.
CogVLM
CogVLM은 두 가지 모달리티에서 모두 좋은 성능을 보여줄 수 있는 방안으로 visual-textual feature 간의 deep fusion이 필요하다고 주장. 이에 따라 visual expert module을 제안함. side adapter 방식으로 language model 내부 side에 visual feature를 위한 별도의 trainable alignment module (attention, FFN)을 추가함으로써 llm freeze를 시킴에 따라 nlp capa는 그대로 유지하고 visual feature를 language model에 맞게 더 잘 align시킬 수 있다고 주장.
cf.) side adapter
CogVLM-17B는 아래와 같이 17개의 cross-modal benchmarks (including multiple datasets & benchmarks from image captioning, vqa, LVLM, visual grounding)에서 SOTA 성능을 보여줌.
Method Highlights
Architecture
총 4개의 component.
positional embedding은 visual feature가 llm에 feed될 때는 position id 공유하는 형태로.
Pre-training (image captioning & grounding)과 alignment (sft) 두 가지 단계를 거침.
Pre-raining
pre-training 데이터는 아래와 같이 collect
pre-training 중 첫번째 스테이지는 image-captioning으로 학습.
두번째 스테이지는 image captioning과 Referring Expression Comprehension (Referring expression이 주어지면, bbox 좌표 리턴하는 형태)의 mixture로 학습
# total trainable parameters: 6.5B
Instruction alignment
trained two generalist models - CogVLM-Chat and CogVLM-Grounding
VQA 데이터셋 같은 경우에는 짧은 답변을 요구하는 경우가 많아서 input prompt format을 다음과 같이 구성.
trained for 6,000 iterations with lr of 1e-5 and a batch size of 1024. 이때, visual encoder의 parameter unfreeze시키고 이 부분의 lr은 1e-6으로 조정.
CogVLM-Grounding : Grounded Captioning, Referring Expression Generation, Referring Expression Comprehension, Grounded Visual Question Answering 4가지 태스크에 대해 데이터 수집 (from Flickr30K Entities, Ref-COCO, Visual7W, VisualGenome, and Grounded CoT-VQA).
Training setting
Experiment Highlights
Image Captioning
NoCaps와 Flickr는 zero-shot, COCO & TextCaps는 fine-tuning한 결과. 성능이 매우 잘 나오고, OCR 데이터 없이도 textcaps에서 SOTA와 비견되는 성능을 보여줌.
VQA and LVLM benchmarks
VQA 잘함. LVLM 벤치마크에서도 잘함 (더 큰 llm 쓴 모델보다도 잘함). 다양한 LVLM에서 잘하는 걸로 보았을 때, 다양한 태스크에서 robust하고 generalize된 reasoning 능력을 보여준다.
ShalIow alignment (InstructBLIP과 MiniGPT-4)을 사용한 모델은 성능이 좋지 못함 -> deep fusion의 중요성이 부각 (?)
Referring Expression Comprehension and GroundedVQA
generalist 중 가장 잘할 뿐 아니라, 해당 태스크에 맞춰서 학습된 specialist 모델들보다도 잘함 (5 out of 9 splits)
Ablations
추가로, computational efficiency는 아래와 같음.
Strengths
Weaknesses