SimVLM: Simple Visual Language Model Pretraining with Weak Supervision
https://arxiv.org/pdf/2108.10904.pdf
Last updated
Was this helpful?
https://arxiv.org/pdf/2108.10904.pdf
Last updated
Was this helpful?
해당 논문 이전의 모델들은 MLM, ITM 등 다양한 auxiliary loss들을 사용하여 pretraining 자체가 복잡함 ⇒ 복잡한 technique이나 auxiliary loss 없이 end-to-end로 학습할 수 있는 모델을 만들고자 함
Objective
Prefix Language Modeling
Architecture
Encoder-Decoder 구조
ViT 처럼 raw image를 input으로 넣는 방식 사용
Data
large-scale weakly labeled dataset을 사용해 zero-shot generalization 성능을 확보하고자 함
Masked Language Modeling (MLM)
Encoder 구조 모델에서 사용하는 pretraining objective
마스킹 된 토큰의 앞 뒤 시퀀스를 바탕으로 양방향 attention을 통해 마스킹 토큰 예측
문맥적인 부분을 이해하고 문맥에 맞춰 masking 된 단어 예측
Language Modeling (LM)
Decoder 구조 모델에서 사용하는 pretraining objective
이전 시퀀스 기반 다음 토큰 예측
이전 시퀀스만 참조하기 때문에 단방향이라는 특징
generation에 특화
Prefix Language Modeling이란?
Language Modeling과 비슷한데 이제 이전 시퀀스를 Prefix로 사용한다고 보면 됨 즉, prefix를 given으로 주고 나머지 부분을 예측
: prefix length 는 랜덤하게 설정하나 이미지 sequence 보다는 길게 설정해서 loss가 text에 대해서만 계산
Prefix Language modeling은 sequence-to-sequence framework를 사용하기 때문에 다음과 같은 이점을 얻을 수 있다.
prefix가 미리 주어지기 때문에 그 내에서 bi-directional attention 계산으로 문맥 이해가 가능
LM처럼 다음 토큰을 예측하면서 generation에도 강점
이후의 논문인 Flamingo도 일종의 prefix LM으로 볼 수 있음
Encoder-Decoder 구조
Contextualized한 정보를 담은 patch를 생성하기 위해 ResNet 상위 3개의 block을 사용해 이미지에 대한 1D embedding
저자는 modality type embedding은 성능 향상에 도움이 되지 않았다고 함
Transformer 인코더의 last layer에서 cross attention하는 co-attention 방식
Large-scale nosiy image-text data
zero-shot 성능에 도움이 됨
ALIGN에서 사용한 데이터 (1.8B) + C4 (test-only data) (300M)
ViT setup을 참고
Base : ResNet101 사용
Large : ResNet152 사용
Huge : ResNet152 with more channel 사용
Image Resolution: 224x224
Patch-size: 16x16
Max sequence length: 256
Random crop augmentation
512 TPU
특히 NLVR2, SNLI-VE에서 높은 향상을 보임
Encoder 모델 + Prefix + 많은 데이터의 강점
다른 모델들을 supervised 한 경우와 SimVLM을 few-shot 한 것이 성능이 비슷함
여기서 few-shot은 prompt learning이 아니라 1%의 데이터만 가지고 supervised 한 것임
Classification task에서는 다른 모델들이 SimVLM에 비해 성능이 좋음
가장 성능이 높은 ALIGN은 dual encoder의 dot product로 fusion 함에 비해 SimVLM은 token by token으로 fusion하는 더 복잡한 방식임에도 성능이 더 낮음 ⇒ SimVLM의 architecture가 좋다고는 못하겠음
w/o Image2Text
Align data가 없을 때 성능이 크게 하락
Align data가 중요하다!
w/o Text2Text
text 데이터만으로 학습해도 2점 정도 올릴 수 있다.
w/o conv stage
이미지 tokenization 할 때 linear 보다는 conv가 더 도움됨
ViT 논문에서도 conv가 더 advantage가 있다고 했었음
본 논문은 pretrain부터 처음부터 다시 했는데, 요새는 vision encoder block을 이미 image-text align 되어있는 CLIP이나 ALIGN의 vision encoder를 가져와서 사용하는 추세이다.
⇒ 좀 더 fusion 하기 용이함
VLM을 위한 encoder-decoder 구조의 아키텍쳐 제시
Encoder에서 prefix로 image token과 text token(prefix token length까지의)을 input으로 받아서 Decoder에서 auto-regressive하게 text 생성
이전 논문들의 모델들은 Objective detector 형태의 vision encoder로 visual feature를 추출하지만 SimVLM은 ViT처럼 raw image를 patch로 잘라서 사용
MLM, ITM 등 여러개의 pretraining objective로 훈련시키는 ALBEF와 달리 simple한 Prefix LM objective만을 사용
Prefix LM objective는 zero/few shot 성능에 도움이 됨
large-scale의 weakly labeled dataset도 성능 향상에 도움이 되었을 것
더 복잡한데도 Classification에서 성능이 안나오는 것을 보면 굳이 Encoder-Decoder 구조를 사용해야할까 싶다.
하지만 generation task에서는 Prefix LM이 더 적합해보이기는 한다.