BEIT-3: 이미지를 외국어로 간주하여 Vision과 Language 작업을 통합한 범용 모델
BEIT-3는 언어, 비전, 멀티모달 사전학습의 통합을 목표로 하는 범용 멀티모달 foundation model이다. 이 모델의 핵심 아이디어는 이미지를 '외국어(Imglish)'로 간주하여, 이미지(Imglish), 텍스트(English), 그리고 이미지-텍스트 쌍("병렬 문장")에 대해 통합된 masked "language" modeling을 수행하는 것이다. Multiway Transformer라는 공유된 backbone 아키텍처를 기반으로, modality-specific 인코딩과 deep fusion을 모두 지원한다. 이 접근법을 통해 BEIT-3는 object detection, semantic segmentation과 같은 vision task부터 visual question answering, image captioning 등 vision-language task에 이르기까지 광범위한 벤치마크에서 최고 수준의 성능을 달성했다. 논문 제목: Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks
Wang, Wenhui, et al. "Image as a foreign language: Beit pretraining for vision and vision-language tasks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023.
Image as a Foreign Language: BEIT Pretraining for All Vision and Vision-Language Tasks
Wenhui Wang*, Hangbo Bao, Li Dong, Johan Bjorck, Zhiliang Peng, Qiang Liu Kriti Aggarwal, Owais Khan Mohammed, Saksham Singhal, Subhojit Som, Furu Wei <br>Microsoft Corporation<br>https://aka.ms/beit-3
Abstract
언어, 비전, 그리고 멀티모달 사전학습의 큰 융합이 나타나고 있다. 본 연구에서는 vision task와 vision-language task 모두에서 state-of-the-art 전이 성능을 달성하는 범용 멀티모달 foundation model인 BEIT-3를 소개한다. 구체적으로, 우리는 다음 세 가지 측면에서 이러한 큰 융합을 발전시킨다:
- backbone architecture
- pretraining task
- model scaling up
우리는 범용 모델링을 위한 Multiway Transformer를 도입했으며, 이 모듈형 아키텍처는 깊은 융합(deep fusion)과 modality-specific 인코딩을 모두 가능하게 한다. 공유된 backbone을 기반으로, 우리는 이미지(Imglish), 텍스트(English), 그리고 이미지-텍스트 쌍("parallel sentences")에 대해 마스킹된 "language" 모델링을 통합된 방식으로 수행한다. 실험 결과에 따르면, BEIT-3는 **객체 탐지(COCO), 의미론적 분할(ADE20K), 이미지 분류(ImageNet), 시각적 추론(NLVR2), 시각 질의응답(VQAv2), 이미지 캡셔닝(COCO), 그리고 cross-modal 검색(Flickr30K, COCO)**에서 state-of-the-art 성능을 달성한다.
Figure 1: BEIT-3는 다른 맞춤형(customized) 또는 foundation model과 비교하여 광범위한 task에서 state-of-the-art 성능을 달성한다. I2T/T2I는 image-to-text/text-to-image retrieval의 약자이다.
Category | Task | Dataset | Metric | Previous SOTA | BEIT-3 |
---|---|---|---|---|---|
Vision | Semantic Segmentation | ADE20K | mIoU | 61.4 (FD-SwinV2) | 62.8 (+1.4) |
Object Detection | COCO | AP | 63.3 (DINO) | 63.7 (+0.4) | |
Instance Segmentation | COCO | AP | 54.7 (Mask DINO) | 54.8 (+0.1) | |
Image Classification | ImageNet | Top-1 acc. | 89.0 (FD-CLIP) | 89.6 (+0.6) | |
Vision-Language | Visual Reasoning | NLVR2 | Acc. | 87.0 (CoCa) | 92.6 (+5.6) |
Visual QA | VQAv2 | VQA acc. | 82.3 (CoCa) | 84.0 (+1.7) | |
Image Captioning | CIDEr | 145.3 (OFA) | 147.6 (+2.3) | ||
Finetuned Retrieval | COCO | R@1 | 72.5 (Florence) | 76.0 (+3.5) | |
Zero-shot Retrieval | Flickr30K | R@1 | 86.5 (CoCa) | 88.2 (+1.7) |
Table 1: 다양한 vision 및 vision-language 벤치마크에서 BEIT-3 결과 개요. 우리는 FD-SwinV2 [WHX 22], DINO [ZLL 22], Mask DINO [ZLL+22], FD-CLIP [WHX 22], CoCa [YWV 22], OFA [WYM 22], Florence [YCC 21]를 포함한 이전 state-of-the-art 모델들과 비교한다. 검색(retrieval) task의 경우, top-1 image-to-text 및 text-to-image 결과의 평균을 보고한다. ""는 공개적으로 접근 가능한 자원만을 사용한 ImageNet 결과를 나타낸다. ""는 CIDEr 최적화 없이 얻은 이미지 캡셔닝 결과를 나타낸다.
1 Introduction: The Big Convergence
최근 몇 년간 언어 [RNSS18, DCLT19, 19], 비전 [BDPW22, PDB+22], 그리고 멀티모달 [WBDW21, ] 사전학습의 큰 융합(big convergence) 추세가 나타났다. 방대한 데이터에 대한 대규모 사전학습을 통해 모델을 다양한 다운스트림 task로 쉽게 전이(transfer)할 수 있게 되었다. 여러 모달리티를 처리하는 범용 foundation model을 사전학습할 수 있다는 점은 매우 매력적이다. 본 연구에서는 다음과 같은 세 가지 측면에서 vision-language 사전학습의 융합 추세를 더욱 발전시킨다.
첫째, Transformer [VSP 17]의 성공은 언어 분야에서 비전 [ 20] 및 멀티모달 [KSK21, WBDW21] 문제로 확장되었다. 네트워크 아키텍처의 통일은 여러 모달리티를 원활하게 처리할 수 있도록 해준다. vision-language 모델링의 경우, 다운스트림 task의 특성이 다르기 때문에 Transformer를 적용하는 다양한 방법이 존재한다. 예를 들어, dual-encoder 아키텍처는 효율적인 검색(retrieval)에 사용되고 [], encoder-decoder 네트워크는 생성 task에 사용되며 [WYY 21], fusion-encoder 아키텍처는 이미지-텍스트 인코딩에 사용된다 [KSK21]. 그러나 대부분의 foundation model은 특정 아키텍처에 따라 최종 task 형식을 수동으로 변환해야 한다. 또한, 파라미터가 모달리티 간에 효과적으로 공유되지 않는 경우가 많다. 본 연구에서는 범용 모델링을 위해 Multiway Transformer [WBDW21]를 채택한다. 즉, 다양한 다운스트림 task에 하나의 통합된 아키텍처를 공유한다. 이 모듈형 네트워크는 모달리티별 인코딩(modality-specific encoding)과 교차 모달리티 융합(cross-modality fusion)을 포괄적으로 고려한다.
둘째, masked data modeling 기반의 사전학습 task는 텍스트 [DCLT19], 이미지 [BDPW22, PDB 22], 이미지-텍스트 쌍 [BWDW22]과 같은 다양한 모달리티에 성공적으로 적용되었다. 현재의 vision-language foundation model은 일반적으로 다른 사전학습 목표(예: image-text matching)를 멀티태스킹하여, 확장(scaling-up)에 비우호적이고 비효율적이다. 이와 대조적으로, 우리는 단 하나의 사전학습 task, 즉 mask-then-predict만을 사용하여 범용 멀티모달 foundation model을 학습한다. 이미지를 **외국어(즉, Imglish)**로 간주함으로써, 근본적인 모델링 차이 없이 텍스트와 이미지를 동일한 방식으로 처리한다. 결과적으로, 이미지-텍스트 쌍은 모달리티 간의 정렬(alignment)을 학습하기 위한 "병렬 문장"으로 활용된다. 우리는 또한 이 간단하지만 효과적인 방법이 강력한 전이 가능한 표현(transferable representation)을 학습하여, 비전 및 vision-language task 모두에서 state-of-the-art 성능을 달성함을 보여준다. 이러한 뛰어난 성공은 생성적 사전학습(generative pretraining)의 우수성을 입증한다 [DCLT19, BDPW22].
셋째, 모델 크기와 데이터 크기를 확장하는 것은 foundation model의 일반화 품질을 보편적으로 향상시켜, 다양한 다운스트림 task로 전이할 수 있게 한다. 우리는 이러한 철학을 따르며 모델 크기를 수십억 개의 파라미터로 확장한다. 또한, 학술적 재현성을 위해 공개적으로 접근 가능한 리소스만을 사용하여 사전학습 데이터 크기를 확장한다.
Figure 2: BEIT-3 사전학습 개요. 우리는 공유된 Multiway Transformer를 backbone 네트워크로 사용하여 단일 모달(즉, 이미지 및 텍스트) 및 멀티모달(즉, 이미지-텍스트 쌍) 데이터에 대해 masked data modeling을 수행한다.
어떠한 사설 데이터도 사용하지 않았음에도 불구하고, 우리의 방법은 자체 데이터를 사용하는 state-of-the-art foundation model보다 상당한 차이로 우수한 성능을 보인다. 또한, 이미지를 외국어로 취급하는 방식은 대규모 언어 모델 사전학습을 위해 개발된 파이프라인을 직접 재사용할 수 있게 하여 확장(scaling up)에 이점을 제공한다.
본 연구에서는 위의 아이디어들을 활용하여 범용 멀티모달 foundation model인 BEIT-3를 사전학습한다. 우리는 이미지, 텍스트, 이미지-텍스트 쌍에 대해 masked data modeling을 수행하여 Multiway Transformer를 사전학습한다. 사전학습 동안, 우리는 텍스트 토큰 또는 이미지 패치의 일부를 무작위로 마스킹한다. self-supervised learning 목표는 손상된 입력이 주어졌을 때 원래 토큰(즉, 텍스트 토큰 또는 visual token)을 복구하는 것이다. 이 모델은 입력 모달리티나 출력 형식에 관계없이 다양한 task에 재활용될 수 있다는 점에서 범용적이다.
Figure 1과 Table 1에서 보여주듯이, BEIT-3는 광범위한 비전 및 vision-language task에서 state-of-the-art 전이 성능을 달성한다. 우리는 BEIT-3를 다양한 다운스트림 task 및 데이터셋에 대해 평가한다:
- 객체 탐지(object detection) (COCO)
- 인스턴스 분할(instance segmentation) (COCO)
- 의미론적 분할(semantic segmentation) (ADE20K)
- 이미지 분류(image classification) (ImageNet)
- 시각적 추론(visual reasoning) (NLVR2)
- 시각적 질문 답변(visual question answering) (VQAv2)
- 이미지 캡셔닝(image captioning) (COCO)
- 교차 모달 검색(cross-modal retrieval) (Flickr30K, COCO)
특히, 우리는 사전학습 및 fine-tuning에 공개 리소스만을 사용했음에도 불구하고, 우리의 모델은 이전의 강력한 foundation model들 [YWV 22, ]보다 우수한 성능을 보인다. 또한, 이 모델은 특정 task에 특화된 모델들보다도 더 나은 결과를 얻는다. 더욱이, BEIT-3는 vision-language task뿐만 아니라 비전 task(예: 객체 탐지, 의미론적 분할)에서도 뛰어난 성능을 발휘한다.
2 BEiT-3: A General-Purpose Multimodal Foundation Model
Figure 2에서 보여주듯이, BEIT-3는 단일 모달(monomodal) 및 멀티모달(multimodal) 데이터에 대해 masked data modeling 방식으로 사전학습되며, 이때 공유된 Multiway Transformer 네트워크를 사용한다. 이 모델은 다양한 vision 및 vision-language downstream task로 전이될 수 있다.
2.1 Backbone Network: Multiway Transformers
우리는 다양한 modality를 인코딩하기 위한 backbone 모델로 Multiway Transformers [WBDW21]를 사용한다. Figure 2에서 볼 수 있듯이, 각 Multiway Transformer 블록은 공유된 self-attention 모듈과 다양한 modality에 사용되는 feed-forward network 풀(즉, modality expert) 로 구성된다. 우리는 각 입력 token을 해당 modality에 따라 expert로 라우팅한다. 우리 구현에서는 각 layer에 vision expert와 language expert가 포함되어 있다. 또한, 상위 세 개 layer에는 fusion encoder를 위해 설계된 vision-language expert가 있다. 더 자세한 모델링 레이아웃은 Figure 3 (a)(b)(c)를 참조하라. modality expert 풀을 사용하면 모델이 더 많은 modality-specific 정보를 포착할 수 있다. 공유된 self-attention 모듈은 서로 다른 modality 간의 정렬(alignment)을 학습하고, 멀티모달(예: vision-language) task를 위한 깊은 융합(deep fusion)을 가능하게 한다.
Figure 3: BEIT-3는 다양한 vision 및 vision-language downstream task로 전이될 수 있다. 공유된 Multiway Transformer를 통해 모델을 (a)(b) vision 또는 language encoder; (c) 깊은 상호작용을 위해 이미지-텍스트 쌍을 공동으로 인코딩하는 fusion encoder; (d) 효율적인 검색을 위해 modality를 개별적으로 인코딩하는 dual encoder; (e) 이미지-텍스트 생성을 위한 sequence-to-sequence learning으로 재사용할 수 있다.
Figure 3에서 볼 수 있듯이, 통합된 아키텍처는 BEIT-3가 광범위한 downstream task를 지원할 수 있도록 한다. 예를 들어, BEIT-3는 이미지 분류, 객체 탐지, 인스턴스 분할, 의미론적 분할을 포함한 다양한 vision task를 위한 이미지 backbone으로 사용될 수 있다. 또한, 효율적인 이미지-텍스트 검색을 위한 dual encoder와 멀티모달 이해 및 생성 task를 위한 fusion model로 fine-tuning될 수 있다.
2.2 Pretraining Task: Masked Data Modeling
우리는 BEIT-3를 단일 마스크 데이터 모델링(unified masked data modeling) [BWDW22] objective를 통해 **단일 모달(monomodal, 즉 이미지 및 텍스트) 및 멀티모달 데이터(multimodal data, 즉 이미지-텍스트 쌍)**로 사전학습한다. 사전학습 과정에서 우리는 텍스트 토큰 또는 이미지 패치의 일부를 무작위로 마스킹하고, 마스킹된 토큰을 복구하도록 모델을 학습시킨다. 이 통합된 mask-then-predict task는 표현 학습(representation learning)뿐만 아니라 서로 다른 모달리티 간의 정렬(alignment)도 학습한다.
구체적으로,
- 텍스트 데이터는 **SentencePiece tokenizer [KR18]**에 의해 토큰화된다.
- 이미지 데이터는 BEIT v2 [PDB22]의 tokenizer에 의해 토큰화되어, 재구성 대상(reconstructed targets)으로서 이산적인 visual token을 얻는다.
우리는 단일 모달 텍스트의 15% 토큰과 이미지-텍스트 쌍의 텍스트에서 50% 토큰을 무작위로 마스킹한다. 이미지의 경우, BEIT [BDPW22, PDB22]에서와 같이 블록 단위 마스킹 전략(block-wise masking strategy)을 사용하여 이미지 패치의 40%를 마스킹한다.
우리는 단 하나의 사전학습 task만을 사용하여 학습 과정을 확장(scaling-up)에 용이하게 만들었다. 이와 대조적으로, 이전의 vision-language model들 [LYL20, ZLH21, KSK21, LSG21, WBDW21, LLXH22, YWV22]은 일반적으로 **이미지-텍스트 대조(image-text contrast), 이미지-텍스트 매칭(image-text matching), 단어-패치/영역 정렬(word-patch/region alignment)**과 같은 여러 사전학습 task를 사용했다. 우리는 mask-then-predict task를 사용하면 훨씬 작은 사전학습 batch size를 사용할 수 있음을 보여준다. 이에 비해 contrastive 기반 모델들 [RKH21, JYX21, YCC21, YWV22]은 일반적으로 사전학습을 위해 매우 큰 batch size가 필요하며, 이는 GPU 메모리 비용과 같은 더 많은 엔지니어링 문제를 야기한다.
Model | #Layers | Hidden <br> Size | MLP <br> Size | #Parameters | ||||
---|---|---|---|---|---|---|---|---|
V-FFN | L-FFN | VL-FFN | Shared Attention | Total | ||||
BEIT-3 | 40 | 1408 | 6144 | 692 M | 692 M | 52 M | 317 M | 1.9 B |
Table 2: BEIT-3의 모델 구성. 아키텍처 레이아웃은 ViT-giant [ZKHB21]를 따른다.
Data | Source | Size |
---|---|---|
Image-Text Pair | CC12M, CC3M, SBU, COCO, VG | 21 M pairs |
Image | ImageNet-21K | 14 M images |
Text | English Wikipedia, BookCorpus, OpenWebText, CC-News, Stories | 160 GB documents |
Table 3: BEIT-3의 사전학습 데이터. 모든 데이터는 학술적으로 접근 가능하다.
2.3 Scaling Up: BEIT-3 Pretraining
Backbone Network
BEIT-3는 ViT-giant [ZKHB21]의 설정을 따르는 거대 규모의 foundation model이다. Table 2에서 볼 수 있듯이, 이 모델은 40-layer Multiway Transformer로 구성되어 있으며, 1408 hidden size, 6144 intermediate size, 16 attention heads를 갖는다. 모든 layer에는 vision experts와 language experts가 모두 포함되어 있다. Vision-language experts는 상위 3개의 Multiway Transformer layer에도 사용된다. Self-attention 모듈은 서로 다른 modality 간에 공유된다. BEIT-3는 총 1.9B 파라미터로 구성되며, 이 중 vision experts에 692M, language experts에 692M, vision-language experts에 52M, 공유 self-attention 모듈에 317M 파라미터가 할당된다. 모델이 vision encoder로 사용될 때는 vision 관련 파라미터(즉, ViT-giant와 유사한 약 1B 규모)만 활성화된다는 점에 유의해야 한다.
Pretraining Data
BEIT-3는 Table 3에 제시된 monomodal 및 multimodal 데이터 모두로 사전학습된다.
Multimodal 데이터의 경우, Conceptual 12M (CC12M) [CSDS21], Conceptual Captions (CC3M) [SDGS18], SBU Captions (SBU) [OKB11], COCO [LMB14], Visual Genome (VG) [KZG17] 등 5개의 공개 데이터셋에서 수집된 약 1,500만 개의 이미지와 2,100만 개의 이미지-텍스트 쌍이 사용된다.
Monomodal 데이터의 경우, ImageNet-21K의 1,400만 개 이미지와 **English Wikipedia, BookCorpus [ZKZ15], OpenWebText, CC-News [LOG19], Stories [TL18]**에서 수집된 **160GB 규모의 텍스트 코퍼스 [BDW20]**가 사용된다.
Pretraining Settings
우리는 BEIT-3를 100만 스텝 동안 사전학습한다. 각 배치(batch)는 총 6144개의 샘플을 포함하며, 이 중 2048개는 이미지, 2048개는 텍스트, 2048개는 이미지-텍스트 쌍이다. 배치 크기는 contrastive 모델들 [\mathrm{RKH}^{+} 21, \mathrm{JYX}^{+} 21, \mathrm{YWV}^{+} 22]보다 훨씬 작다. BEIT-3는 patch size를 사용하며, 해상도로 사전학습된다. 우리는 BEIT [BDPW22]와 동일한 이미지 증강 기법을 사용하는데, 여기에는 **random resized cropping, horizontal flipping, color jittering [WXYL18]**이 포함된다. 텍스트 데이터 토큰화를 위해 **64k vocab size를 가진 SentencePiece tokenizer [KR18]**가 사용된다. 최적화를 위해 AdamW [LH19] optimizer를 사용하며, 로 설정한다. 학습률 스케줄러로는 cosine learning rate decay scheduler를 사용하며, 최고 학습률은 , 10k 스텝의 linear warmup을 적용한다. Weight decay는 0.05이다. Stochastic depth [HSL+ 16]는 0.1의 비율로 사용된다. Transformer 학습의 안정화를 위해 **BEiT initialization algorithm [BDPW22]**이 사용된다.
3 Experiments on Vision and Vision-Language Tasks
우리는 BEIT-3를 vision-language 및 vision task의 주요 공개 벤치마크에서 광범위하게 평가하였다. Table 1은 결과 개요를 보여준다. BEIT-3는 다양한 vision 및 vision-language task에서 state-of-the-art 성능을 달성한다.
Model | VQAv2 | NLVR2 | COCO Captioning | |||||
---|---|---|---|---|---|---|---|---|
test-dev | test-std | dev | test-P | B @ 4 | M | C | S | |
Oscar [LYL+20] | 73.61 | 73.82 | 79.12 | 80.37 | 37.4 | 30.7 | 127.8 | 23.5 |
VinVL [ZLH 21] | 76.52 | 76.60 | 82.67 | 83.98 | 38.5 | 30.4 | 130.8 | 23.4 |
ALBEF [LSG 21] | 75.84 | 76.04 | 82.55 | 83.14 | - | - | - | - |
BLIP [LLXH22] | 78.25 | 78.32 | 82.15 | 82.24 | 40.4 | - | 136.7 | - |
SimVLM [WYY+ 21] | 80.03 | 80.34 | 84.53 | 85.15 | 40.6 | 33.7 | 143.3 | 25.4 |
Florence [YCC 21] | 80.16 | 80.36 | - | - | - | - | - | - |
OFA [WYM 22] | 82.00 | 82.00 | - | - | 43.9 | 31.8 | 145.3 | 24.8 |
Flamingo [ADL+22] | 82.00 | 82.10 | - | - | - | - | 138.1 | - |
82.30 | 82.30 | 86.10 | 87.00 | 40.9 | 33.9 | 143.6 | 24.7 | |
BEIT-3 | 84.19 | 84.03 | 91.51 | 92.58 | 44.1 | 32.4 | 147.6 | 25.4 |
Table 4: Visual Question Answering, Visual Reasoning, Image Captioning task 결과
VQAv2 test-dev 및 test-standard split에 대한 vqa-score, **NLVR2 development set 및 public test set (test-P)**에 대한 accuracy를 보고한다. COCO image captioning의 경우, Karpathy test split에 대해 **BLEU@4 (B@4), METEOR (M), CIDEr (C), SPICE (S)**를 보고한다. 편의를 위해, CIDEr 최적화를 사용하지 않은 captioning 결과를 보고한다.
3.1 Vision-Language Downstream Tasks
우리는 BEIT-3의 성능을 널리 사용되는 vision-language 이해 및 생성 벤치마크에서 평가한다. 여기에는 visual question answering [GKS 17], visual reasoning [ 19], image-text retrieval [], image captioning [] 등이 포함된다.
Visual Question Answering (VQA)
이 task는 모델이 입력 이미지에 대한 자연어 질문에 답하는 것을 요구한다. 이전 연구들 []을 따라, 우리는 **VQA v2.0 데이터셋 [GKS 17]**에서 fine-tuning 실험을 수행하고, 이 task를 분류 문제로 정식화한다. 모델은 학습 세트에서 가장 빈번한 3129개의 정답 후보 중에서 정답을 예측하도록 학습된다.
BEIT-3는 VQA task를 위해 이미지와 질문 간의 깊은 상호작용을 모델링하는 fusion encoder로 fine-tuning된다. 우리는 주어진 질문과 이미지의 embedding을 연결한 다음, 이 입력 embedding을 Multiway Transformers에 넣어 이미지-질문 쌍을 공동으로 인코딩한다. 최종 pooled output은 분류기 layer에 입력되어 정답을 예측한다.
Table 4에 제시된 결과에 따르면, BEIT-3는 모든 이전 모델들을 큰 차이(1.7점 이상)로 능가하며, 단일 모델로 state of the art를 84.03까지 끌어올렸다.
Visual Reasoning
이 task는 모델이 이미지와 자연어 설명에 대해 공동으로 reasoning을 수행해야 한다. 우리는 인기 있는 NLVR2 [SZZ 19] 벤치마크에서 모델을 평가하는데, 이 벤치마크는 텍스트 설명이 한 쌍의 이미지에 대해 참인지 여부를 판단하는 것이다. 이전 연구들 [21, KSK21]을 따라, 우리는 세 개의 입력(triplet input)을 기반으로 두 개의 이미지-텍스트 쌍을 구성한다. BEIT-3는 fusion encoder로 fine-tuning되어 이미지-텍스트 쌍을 공동으로 인코딩한다. 두 쌍의 최종 pooled output은 연결된 다음, 분류기 layer에 입력되어 label을 예측한다.
Table 4에서 볼 수 있듯이, BEIT-3는 visual reasoning에서 새로운 state-of-the-art 결과를 달성했으며, CoCa를 약 5.6점 차이로 능가한다. NLVR2에서의 성능은 처음으로 90%를 넘어섰다.
Image Captioning
이 task는 주어진 이미지에 대한 자연어 캡션을 생성하는 것을 목표로 한다. 우리는 COCO [] 벤치마크를 사용하고, **Karpathy split [KF15]**에서 모델을 fine-tuning 및 평가한다. UniLM [DYW 19] 및 s2s-ft [BDW 21]를 따라, BEIT-3는 masked fine-tuning을 통해 조건부 생성 모델로 사용된다.
더 구체적으로, image captioning task를 위해 특별한 self-attention mask가 사용된다. 이미지 토큰(즉, 이미지 패치)은 이미지 시퀀스 내에서 양방향으로 서로에게만 attend할 수 있다. 캡션의 토큰은 이미지 토큰, 왼쪽 캡션 토큰, 그리고 자기 자신에게 attend할 수 있다. fine-tuning 동안, 우리는 캡션 토큰의 일부를 무작위로 마스킹한다. 모델은 이미지의 단서와 왼쪽 캡션 문맥을 기반으로 이러한 토큰을 복구하도록 학습된다. 우리는 또한 모델이 생성을 종료하는 것을 돕기 위해 특수 경계 토큰 [SEP]도 마스킹한다.
간단하게, BEIT-3는 CIDEr 최적화 없이 단순한 cross-entropy loss로 학습된다. 추론 시에는 캡션 토큰을 autoregressive 방식으로 하나씩 생성한다.
Model | Flickr30K ( test set) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Image Text | Text Image | Image Text | Text Image | |||||||||
R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | |
Fusion-encoder models | ||||||||||||
UNITER [CLY 20] | 65.7 | 88.6 | 93.8 | 52.9 | 79.9 | 88.0 | 87.3 | 98.0 | 99.2 | 75.6 | 94.1 | 96.8 |
VILLA [GCL 20] | - | - | - | - | - | - | 87.9 | 97.5 | 98.8 | 76.3 | 94.2 | 96.8 |
Oscar [LYL+20] | 73.5 | 92.2 | 96.0 | 57.5 | 82.8 | 89.8 | - | - | - | - | - | - |
VinVL [ 21] | 75.4 | 92.9 | 96.2 | 58.8 | 83.5 | 90.3 | - | - | - | - | - | - |
Dual encoder + Fusion encoder reranking | ||||||||||||
ALBEF [LSG 21] | 77.6 | 94.3 | 97.2 | 60.7 | 84.3 | 90.5 | 95.9 | 99.8 | 100.0 | 85.6 | 97.5 | 98.9 |
BLIP [LLXH22] | 82.4 | 95.4 | 97.9 | 65.1 | 86.3 | 91.8 | 97.4 | 99.8 | 99.9 | 87.6 | 97.7 | 99.0 |
Dual-encoder models | ||||||||||||
ALIGN [JYX 21] | 77.0 | 93.5 | 96.9 | 59.9 | 83.3 | 89.8 | 95.3 | 99.8 | 100.0 | 84.9 | 97.4 | 98.6 |
FILIP [ 21] | 78.9 | 94.4 | 97.4 | 61.2 | 84.3 | 90.6 | 96.6 | 100.0 | 100.0 | 87.1 | 97.7 | 99.1 |
Florence [YCC 21] | 81.8 | 95.2 | - | 63.2 | 85.7 | - | 97.2 | 99.9 | - | 87.9 | 98.1 | - |
BEIT-3 | 84.8 | 96.5 | 98.3 | 67.2 | 87.7 | 92.8 | 98.0 | 100.0 | 100.0 | 90.3 | 98.7 | 99.5 |
Table 5: COCO 및 Flickr30K에서의 image-to-text retrieval 및 text-to-image retrieval fine-tuning 결과. dual-encoder 모델이 retrieval task에서 fusion-encoder 기반 모델보다 더 효율적이라는 점에 주목하라.
Model | Flickr30K ( test set) | |||||
---|---|---|---|---|---|---|
Image Text | Text Image | |||||
R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | |
FLAVA [SHG 21] | 67.7 | 94.0 | - | 65.2 | 89.4 | - |
CLIP [ 21] | 88.0 | 98.7 | 99.4 | 68.7 | 90.6 | 95.2 |
ALIGN [JYX 21] | 88.6 | 98.7 | 99.7 | 75.7 | 93.8 | 96.8 |
FILIP [YHH 21] | 89.8 | 99.2 | 99.8 | 75.0 | 93.4 | 96.3 |
Florence [YCC 21] | 90.9 | 99.1 | - | 76.7 | 93.6 | - |
Flamingo [ADL 22] | 89.3 | 98.8 | 99.7 | 79.5 | 95.3 | 97.9 |
92.5 | 99.5 | 99.9 | 80.4 | 95.7 | 97.7 | |
BEIT-3 | 94.9 | 99.9 | 100.0 | 81.5 | 95.6 | 97.8 |
Table 6: Flickr30K에서의 zero-shot image-to-text retrieval 및 text-to-image retrieval 결과.
Table 4는 COCO captioning 결과를 보여준다. BEIT-3는 cross-entropy loss로 학습된 모든 이전 모델들을 능가하며, 새로운 state-of-the-art image captioning 결과를 만들어냈다. 이 결과는 vision-language 생성에 대한 BEIT-3의 우수성을 입증한다.
Image-Text Retrieval
이 task는 이미지와 텍스트 간의 유사도를 측정하는 것이다. 검색 대상의 modality에 따라 image-to-text retrieval과 text-to-image retrieval의 두 가지 방향이 있다. 모델 평가를 위해 **COCO []**와 **Flickr30K [PWC 15]**라는 두 가지 인기 있는 retrieval 벤치마크가 사용된다. 이전 연구들 []을 따라, 우리는 두 벤치마크 모두에 대해 **Karpathy split [KF15]**을 사용한다. BEIT-3는 효율적인 image-text retrieval을 위해 dual encoder로 fine-tuning된다. Dual-encoder 모델은 이미지와 텍스트를 개별적으로 인코딩하여 그 표현(representation)을 얻는다. 그런 다음, 우리는 이러한 표현들의 cosine 유사도 점수를 계산한다. Dual-encoder 모델은 모든 가능한 이미지-텍스트 쌍을 공동으로 인코딩할 필요가 없기 때문에 fusion-encoder 모델보다 더 효율적이다.
우리는 BEIT-3가 image-text contrastive loss로 사전학습되지 않았음에도 불구하고 COCO와 Flickr30K에서 직접 fine-tuning한다. 놀랍게도, BEIT-3는 소량의 contrastive 학습만으로 이전 state-of-the-art 모델들을 능가한다. 이 결과는 BEIT-3가 masked data modeling을 통해 이미지와 텍스트 간의 정렬(alignment)을 효과적으로 학습한다는 것을 보여준다. 성능을 향상시키기 위해, 우리는 사전학습 이미지-텍스트 쌍에 대해 image-text contrastive objective를 사용하여 중간 fine-tuning을 수행한다. 우리는 사전학습보다 훨씬 적은 step으로 모델을 fine-tuning한다. 그런 다음, 이 모델을 사용하여 zero-shot 및 fine-tuned image-text retrieval을 평가한다.
Model | Extra OD Data | Maximum Image Size | COCO test-dev | |
---|---|---|---|---|
AP | AP | |||
ViT-Adapter [CDW 22] | - | 1600 | 60.1 | 52.1 |
DyHead [DCX 21] | ImageNet-Pseudo Labels | 2000 | 60.6 | - |
Soft Teacher [ 21] | Object365 | - | 61.3 | 53.0 |
GLIP [LZZ 21] | FourODs | - | 61.5 | - |
GLIPv2 [ 22] | FourODs | - | 62.4 | - |
Florence [YCC 21] | FLOD-9M | 2500 | 62.4 | - |
SwinV2-G [LHL+21] | Object365 | 1536 | 63.1 | 54.4 |
Mask DINO [ 22] | Object365 | 1280 | - | 54.7 |
DINO [ZLL+22] | Object365 | 2000 | 63.3 | - |
BEiT-3 | Object365 | 1280 | 63.7 | 54.8 |
Table 7: COCO 벤치마크에서의 object detection 및 instance segmentation 결과. BEIT-3는 detection head로 Cascade Mask R-CNN [CV21]을 사용한다. 우리의 결과는 multiscale evaluation으로 보고된다. 우리는 학습에 사용된 최대 이미지 크기를 보고한다. FLOD-9M 및 FourODs는 Object365도 포함한다. 비교 시스템의 결과는 paperswithcode.com 리더보드(타임스탬프: 2022년 8월 22일)에서 가져왔다.
fine-tuned 결과는 Table 5에 제시되어 있다. dual-encoder BEIT-3는 이전 모델들을 큰 차이로 능가하며, COCO top-1 image-to-text/text-to-image retrieval에서 3.0/4.0 절대 개선을, Flickr30K top-1 image-to-text/text-to-image retrieval에서 0.8/2.4 절대 개선을 달성한다. BEIT-3는 추론에 더 많은 계산 비용이 필요한 fusion-encoder 기반 모델들보다도 훨씬 우수한 성능을 보인다. Table 6에 제시된 바와 같이, BEIT-3는 Flickr30K zero-shot retrieval에서도 이전 모델들보다 더 나은 성능을 달성한다.
3.2 Vision Downstream Tasks
vision-language 다운스트림 task 외에도, BEIT-3는 **객체 탐지(object detection), 인스턴스 분할(instance segmentation), 의미론적 분할(semantic segmentation), 이미지 분류(image classification)**를 포함한 광범위한 vision 다운스트림 task에 전이될 수 있다. BEIT-3가 vision encoder로 사용될 때, 유효 파라미터 수는 **ViT-giant [ZKHB21]**와 유사한 약 1B 수준이다.
객체 탐지 및 인스턴스 분할 (Object Detection and Instance Segmentation)
우리는 **COCO 2017 벤치마크 [LMB14]**에서 fine-tuning 실험을 수행했다. 이 벤치마크는 118k개의 학습 이미지, 5k개의 검증 이미지, 20k개의 test-dev 이미지로 구성된다. 우리는 BEIT-3를 backbone으로 사용하고, **ViTDet [LMGH22]**를 따라 간단한 feature pyramid와 window attention을 포함하여 객체 탐지 및 인스턴스 분할 task를 수행했다. 일반적인 관행 [LHL21, ZLL22]에 따라, 우리는 먼저 Objects365 [SLZ19] 데이터셋에서 중간 fine-tuning을 수행했다. 그 다음 COCO 데이터셋에서 모델을 fine-tuning했다. 추론 시에는 **Soft-NMS [BSCD17]**를 사용했다. Table 7은 COCO 객체 탐지 및 인스턴스 분할에서 BEIT-3와 이전 state-of-the-art 모델들을 비교한다. BEIT-3는 fine-tuning에 더 작은 이미지 크기를 사용했음에도 불구하고 COCO test-dev 세트에서 63.7 box AP 및 54.8 mask AP에 도달하며 최고의 결과를 달성했다.
의미론적 분할 (Semantic Segmentation)
의미론적 분할은 주어진 이미지의 각 픽셀에 대한 레이블을 예측하는 것을 목표로 한다. 우리는 150개의 의미론적 카테고리를 포함하는 도전적인 **ADE20K 데이터셋 [ZZP19]**에서 BEIT-3를 평가했다. ADE20K는 학습을 위한 20k 이미지와 검증을 위한 2k 이미지를 포함한다. 우리는 ViT-Adapter [CDW22]의 task transfer 설정을 직접 따랐다. 우리는 dense prediction task adapter를 사용하고 Mask2Former [CMS21]를 분할 프레임워크로 채택했다. Table 8에서 보듯이, BEIT-3는 62.8 mIoU로 새로운 state-of-the-art 결과를 달성했으며, 3B 파라미터를 가진 FD-SwinV2 [WHX22] giant 모델보다 1.4점 높은 성능을 보였다. 이는 BEIT-3가 dense prediction task에서 우수한 성능을 달성함을 보여준다.
이미지 분류 (Image Classification)
우리는 1k 클래스에 1.28M개의 학습 이미지와 50k개의 검증 이미지를 포함하는 **ImageNet-1K [RDS15]**에서 모델을 평가했다. vision encoder에 task layer를 추가하는 대신 [DBK20, BDPW22], 우리는 이 task를 image-to-text retrieval task로 공식화했다. 우리는 카테고리 이름을 텍스트로 사용하여 이미지-텍스트 쌍을 구성했다. BEIT-3는 이미지에 가장 관련성 높은 레이블을 찾기 위한 dual encoder로 학습된다. 추론 시, 우리는 먼저 가능한 클래스 이름의 feature embedding을 계산하고 이미지의 feature embedding을 계산한다. 그런 다음 이들의 코사인 유사도 점수를 계산하여 각 이미지에 대한 가장 확률 높은 레이블을 예측한다. Table 9는 ImageNet-1K에 대한 결과를 보고한다. 우리는 먼저 ImageNet-21K에서 중간 fine-tuning을 수행한 다음, ImageNet-1K에서 모델을 학습시켰다. 공정한 비교를 위해, 우리는 공개된 이미지-태그 데이터만 사용한 이전 모델들과 비교했다. BEIT-3는 공개된 이미지-태그 데이터만 사용했을 때 이전 모델들을 능가하며 새로운 state-of-the-art 결과를 달성했다.
Model | Crop Size | ADE20K | |
---|---|---|---|
mIoU | +MS | ||
HorNet [RZT | 57.5 | 57.9 | |
SeMask [JSO | 57.0 | 58.3 | |
SwinV2-G [LHL+21] | 59.3 | 59.9 | |
ViT-Adapter [CDW+22] | 59.4 | 60.5 | |
Mask DINO [LZX ] | - | 59.5 | 60.8 |
FD-SwinV2-G [WHX | - | 61.4 | |
BEIT-3 |
Table 8: ADE20K에서의 의미론적 분할 결과. "MS"는 multi-scale의 약자이다. 비교 시스템의 결과는 paperswithcode.com 리더보드(타임스탬프: 2022년 8월 22일)에서 가져왔다.
Model | Extra Data | Image Size | ImageNet |
---|---|---|---|
With extra private image-tag data | |||
SwinV2-G [LHL+21] | IN-22K-ext-70M | 90.2 | |
ViT-G [ZKHB21] | JFT-3B | 90.5 | |
CoAtNet-7 [DLLT21] | JFT-3B | 90.9 | |
Model Soups [WIG 22] | JFT-3B | 91.0 | |
JFT-3B | 91.0 | ||
With only public image-tag data | |||
BEIT [BDPW22] | IN-21K | 88.6 | |
CoAtNet-4 [DLLT21] | IN-21K | 88.6 | |
MaxViT [TTZ 22] | IN-21K | 88.7 | |
MViTv2 [LWF 22] | IN-21K | 88.8 | |
FD-CLIP [WHX 22] | IN-21K | 89.0 | |
BEiT-3 | IN-21K | 89.6 |
Table 9: ImageNet-1K에서의 Top-1 정확도.
4 Conclusion
본 논문에서는 범용 멀티모달 foundation model인 BEIT-3를 소개한다. BEIT-3는 다양한 vision 및 vision-language 벤치마크에서 state-of-the-art 성능을 달성한다. BEIT-3의 핵심 아이디어는 이미지를 외국어처럼 모델링하여, 이미지, 텍스트, 이미지-텍스트 쌍에 대해 masked "language" modeling을 통합된 방식으로 수행할 수 있다는 것이다. 또한, Multiway Transformer가 다양한 vision 및 vision-language task를 효과적으로 모델링할 수 있음을 보여주며, 이는 범용 모델링을 위한 매력적인 선택지가 된다. BEIT-3는 간단하고 효과적이며, 멀티모달 foundation model을 확장하는 데 유망한 방향을 제시한다.
향후 연구에서는 다국어 BEIT-3를 사전학습하고, 더 많은 modality(예: 오디오)를 BEIT-3에 포함하여 cross-lingual 및 cross-modality transfer를 촉진하고, task, 언어, modality 전반에 걸친 대규모 사전학습의 큰 수렴(big convergence)을 발전시키는 작업을 진행 중이다. 또한, BEIT-3와 MetaLM [HSD 22]의 강점을 결합하여 멀티모달 foundation model의 in-context learning 능력을 구현하는 데에도 관심을 가지고 있다.
A Effects of Intermediate Finetuning for Retrieval
Table 10에서 보여주듯이, 우리는 BEIT-3를 COCO와 Flickr30K에 직접 fine-tuning하였다. BEIT-3는 사전학습 시 image-text contrastive objective를 사용하지 않았음에도 불구하고 기존의 state-of-the-art 모델들을 여전히 능가한다. 이 결과는 crossmodal representation 학습에 있어 masked data modeling의 효과를 입증한다.
다음으로, 우리는 **사전학습 이미지-텍스트 쌍 데이터에 대해 5 epoch 동안 16k batch size로 중간 fine-tuning(intermediate finetuning)**을 수행하였다. 최대 learning rate는 3e-5였으며, 첫 epoch 동안 linear warmup을 적용했다. 이미지 입력 크기는 224x224였다. Weight decay는 0.05로 설정했으며, 사전학습과 마찬가지로 dropout은 비활성화하고 drop path는 0.3의 비율로 사용했다. Layer-wise learning rate decay는 0.95였다. 우리는 AdamW [LH19] optimizer를 사용했으며, 로 설정했다.
Model | MSCOCO (5K test set) | Flickr30K ( test set) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Image | Text | Text | Image | Image | Text | Text Image | ||||||
R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | |
BEIT-3 | 82.7 | 96.0 | 98.2 | 65.1 | 86.6 | 92.3 | 97.5 | 99.9 | 100.0 | 89.1 | 98.6 | 99.3 |
+ Intermediate Finetuning | 84.8 | 96.5 | 98.3 | 67.2 | 87.7 | 92.8 | 98.0 | 100.0 | 100.0 | 90.3 | 98.7 | 99.5 |
Table 10: COCO와 Flickr30K에 대한 image-text retrieval fine-tuning 결과. BEIT-3는 사전학습 데이터에 대한 중간 fine-tuning 없이 다운스트림 벤치마크에 직접 fine-tuning되었다.
B Hyperparameters Used for Pretraining
Hyperparameters | BEIT-3 |
---|---|
Layers | 40 |
Hidden size | 1408 |
FFN inner hidden size | 6144 |
Attention heads | 16 |
Patch size | |
Relative positional embeddings | |
Training steps | 1 M |
Batch size | 6144 |
AdamW | |
AdamW | (0.9, 0.98) |
Peak learning rate | |
Learning rate schedule | Cosine |
Warmup steps | 10k |
Gradient clipping | 3.0 |
Dropout | |
Drop path | 0.1 |
Weight decay | 0.05 |
Data Augment | RandomResizeAndCrop |
Input resolution | |
Color jitter | 0.4 |
Table 11: BEIT-3 사전학습을 위한 하이퍼파라미터.
C Hyperparameters Used for Finetuning
Hyperparameters | NLVR2 | VQAv2 | |
---|---|---|---|
Peak learning rate | |||
Fine-tuning epochs | 20 | 10 | |
Warmup epochs | 5 | 1 | |
Layer-wise learning rate decay | 0.8 | 1.0 | |
Batch size | 256 | 128 | |
AdamW | |||
AdamW | |||
Weight decay | 0.05 | 0.01 | |
Drop path | 0.4 | ||
Dropout | |||
Input resolution |
Table 12: NLVR2 및 VQAv2에 대한 BEIT-3 fine-tuning을 위한 하이퍼파라미터.
Hyperparameters | COCO Captioning |
---|---|
Peak learning rate | |
Fine-tuning steps | 16k |
Warmup steps | 1600 |
Layer-wise learning rate decay | 1.0 |
Batch size | 256 |
AdamW | |
AdamW | (0.9, 0.999) |
Weight decay | 0.01 |
Drop path | 0.3 |
Dropout | |
Input resolution | |
Mask prob | 0.6 |
Label smoothing | 0.1 |
Beam size | 3 |
Table 13: COCO captioning에 대한 BEIT-3 fine-tuning을 위한 하이퍼파라미터.
Hyperparameters | COCO Flickr30K |
---|---|
Peak learning rate | |
Fine-tuning epochs | 1520 |
Warmup epochs | 35 |
Layer-wise learning rate decay | 0.95 |
Batch size | 3k |
AdamW | |
AdamW | (0.9, 0.999) |
Weight decay | 0.05 |
Drop path | 0.3 |
Dropout | |
Input resolution |
Table 14: 이미지-텍스트 검색에 대한 BEIT-3 fine-tuning을 위한 하이퍼파라미터.
Hyperparameters | ADE20K |
---|---|
Peak learning rate | |
Fine-tuning steps | 80 k |
Warmup steps | 1500 |
Layer-wise learning rate decay | 0.95 |
Batch size | 16 |
AdamW | |
AdamW | |
Weight decay | 0.05 |
Drop path | 0.5 |
Dropout | |
Input resolution |
Table 15: semantic segmentation에 대한 BEIT-3 fine-tuning을 위한 하이퍼파라미터.
Hyperparameters | Object365 | COCO | |
---|---|---|---|
Learning rate | |||
Fine-tuning epochs | 15 | 20 | |
Warmup steps | 250 | ||
Layer-wise learning rate decay | 0.9 | ||
Batch size | |||
AdamW | |||
AdamW | 0.1 | ||
Weight decay | 0.6 | ||
Drop path | |||
Input resolution |
Table 16: object detection에 대한 BEIT-3 fine-tuning을 위한 하이퍼파라미터.
Hyperparameters | ImageNet-21K | ImageNet-1K |
---|---|---|
Peak learning rate | ||
Fine-tuning epochs | 50 | 15 |
Warmup epochs | 5 | 3 |
Layer-wise learning rate decay | 0.85 | 0.95 |
Batch size | 16k | 2k |
AdamW | ||
AdamW | (0.9, 0.98) | (0.9, 0.999) |
Weight decay | 0.05 | |
Drop path | 0.4 | |
Dropout | ||
Input resolution | ||
Label smoothing | 0.1 |
Table 17: 이미지 분류에 대한 BEIT-3 fine-tuning을 위한 하이퍼파라미터.
- 동등 기여. 교신 저자. 예를 들어, CoCa는 65k batch size를 사용하고, CLIP은 32k batch size를 사용하며, Florence는 24k batch size를 사용한다. BEIT-3는 사전학습을 위해 훨씬 작은 6k batch size를 사용한다. http://skylion007.github.io/OpenWebTextCorpus 우리는 먼저 작은 범위, 예를 들어 내에서 파라미터를 무작위로 초기화한다. 다음으로, self-attention 및 FFN의 -번째 Transformer layer의 출력 행렬(즉, 각 sublayer 내의 마지막 선형 투영)을 로 재조정한다.