Vision & Language

[논문 리뷰] Unified-IO: A Unified Model for Vision, Language, and Multi-Modal Tasks

dhk1349 2022. 11. 6. 07:07

  안녕하세요. 오늘 리뷰할 논문은 Uunified-IO: A Unified Model for Vision, Language, and Multi-Modal Tasks라는 논문입니다. 해당 논문의 저자는 NLP와 비교했을 때 computer vision 분야는 범용적인 모델을 사용하기 힘든 형태라고 합니다. 상술하자면 NLP 분야의 다양한 task들을 보면 대부분 seq2seq(token sequence를 받아서 token sequence를 반환)형태를 띄고 있습니다. 반면 computer vision 분야의 task들은 I/O(input/output)의 형태가 굉장히 상이한 편입니다. 이미지를 생성하는데 text guidance + image를 받기도 하고, segmentation을 하고 나서 segmentation map을 반환하는 등이 그 예시입니다.

 

  저자들은 이러한 상황을 구조적으로 해결하고 image/text/vision&language를 모두 받을 수 있으면서 별다른 task-wise fine-tuning이 필요하지 않은 통합 모델인 Unified-IO를 제안합니다. 

 

첨언하자면 Transformer 기반의 vision&language 연구에서 서로 다른 modality(image+text)의 sequence를 하나로 연결해서 넣는 식의 방법이 연구되었던 바가 있습니다. 그래서 multimodal sequence를 만들어서 넣는 방식 자체는 이전에 사용되던 방법이긴 합니다. 

(해당 글은 개인적인 기록을 목적으로 잘못된 내용이 있을 수 있음을 알립니다.)

(https://arxiv.org/abs/2206.08916)

 

Unified-IO
Unified-IO Concept

 

 

0. Abstract

  위 Unified-IO의 컨셉 이미지를 보시면 알 수 있듯이 Unified-IO는 굉장히 많은 task를 별도의 tuning 없이도 수행할 수 있는 모델입니다. 입출력(Input/output) 형식이 상이한 다양한 task를 하나의 모델이 수행하도록 해야하기 때문에 입출력을 이산적인(discrete) token sequence 형태로 통일하였습니다. 그래서 Binary mask, segmentation map, image pixel, bounding box, language 등의 상이한(heterogeneous) 데이터 형식을 어느정도 통일하여 학습을 진행하였습니다. 해당 모델은 90개 이상의 데이터셋(vision + language)의 데이터셋으로 학습이 진행된 transformer based 모델이며 다양한 benchmark에서 task-specific fine-tuning 없이도 준수한 성능을 보여주고 있습니다. 

 

 

1. Introduction

  처음에 말했던 것처럼 NLP 계열의 모델들의 task들은 보통 Seq2Seq 형태를 띄고 있습니다. 그렇기 때문에 task, dataset, benchmark 같은 것들이 다양하고 많아도 모델을 쉽게 적용해서 사용할 수 있습니다. 이러한 구조적인 특징은 NLP의 발전에도 긍정적인 영향을 끼쳤다고 볼 수 있습니다. 반면 vision 분야의 task들은 task마다 요구하는 입출력 형식이 굉장히 상이합니다. 이런 특징은 범용적인 vision 모델을 고안하는데 방해가 되었습니다. A라는 task에서 사용된 모델 a를 B라는 task에 적용하기 위해서는 a의 backbone을 가져와서 사용하는 제한적인 방법이 최선이라고 할 수 있습니다. 

 

  입출력의 형식을 통일하기 위해서 데이터 형식을 동질화 해주었는데, 이는 주로 Vector quantization variational auto-encoder(VQ-VAE)를 사용하여 가능하게 했습니다. Unified-IO는 처음으로 General Robust Image Task(GRIT) Benchmark의 모든 7개 task를 수행할 수 있는 첫번 째 모델이며 평균 64.3점으로 두 번째로 좋은 성능인 32.0점 모델을 큰 차이로 앞질렀습니다. 아래 나오겠지만 32.0점을 얻은 모델은 GPV-2로 Categorization / Localization / VQA / Refexp 실험에 대해서만 성능을 측정하여 평균을 낸 수치입니다. 추가적으로 16개의 다른 vision 및 NLP benchmark들에서 fine-tuning 없이 우수한 성능을 보여주었습니다.

 

 

2. Vision, Language and Multi-modal Tasks

  모델에 들어가고, 모델에서 나오는 데이터의 형식을 동질화하기 위해서 일단 데이터를 크게 4개의 부류로 구분했습니다. 

  • Image: RGB 이미지
  • Text: 자연어 token
  • Dense: depth map, surface normal map 같이 픽셀 별로 labeling이 되어있는 데이터. 픽셀 갯수만큼 값이 존재하기에 dense하다고 분류
  • Sparse: 이미지 내부의 좌표 값처럼 비교적 갯수가 적은 데이터

 

그리고 Unified-IO가 수행할 task들을 아래와 같이 분류를 하였습니다. 

Tasks for Unifoed-IO
Tasks for Unifoed-IO

  크게 Image Synthesis / Sparse Labelling / Dense Labelling / Image Classification / Image Caption / Vision&Language / NLP / Language modelling으로 분류가 되어있으며, Percent 열은 전체 데이터 중에 해당 데이터셋이 차지하는 비중이고, Rate 열은 실제로 학습할 때 차출한 데이터의 비율입니다. 

 

 

3. Unified-IO

  아래는 Unified-IO의 구조입니다. 다양한 종류의 데이터가 일련의 동질화 과정을 거쳐서 input sequence로 만들어진 후에 Unified-IO로 들어가는 모습입니다. 자연어는 SentencePiece tokenizer를 통해 인코딩이 되었습니다. 이미지는 ViT등의 transformer based vision encoder들과 동일하게 겹치지 않는 격자 patch들로 나누어서 linear projection을 하여 patch sequence로 만들었습니다. 그리고 이미지 관련(depth map 등의 dense structured data 포함) 정보는 VQVAE의 decoder를 통해 인간이 인지 가능한 정보로 변환이 됩니다. 아래서 말해겠지만 sparse structured data는 자연어 형태로 encoding이 되고 decoding이 될 때도 자연어 부분과 공유하는SentencePiece decoder를 통해 인간이 인지 가능한 형태의 정보로 변환됩니다. 아래 구조를 보시면 알 수 있듯이 다양한 modality의 token들이 하나의 sequence를 이루며 Unified-IO에 들어가게 됩니다. 

 

Unified-IO 구조
Unified-IO 구조

 

3.1. Unified Task Representations

Text Representation

자연어는 SentencePiece를 통해 tokeninzing되었습니다. 또한 모델이 수행하는 task의 요수사항도 모두 자연어의 형태로 들어가기 때문에 SentencePiece를 거치게 됩니다. 가령 위 이미지에 우산과 고양이 사진에 대해 Localization task를 진행하려면 "Localize the cat"이라는 문장을 tokenizing하여 넘겨주면 됩니다. 이미지의 depth map을 구하기 위해서는 "What is the depth map of the image?"를 tokenizing해서 넘겨주면 됩니다. 

 

Images and dense structure representation

Per-pixel labels(dense structure representation) 같은 경우에는 정보를 RGB이미지처럼 3차원 정보로 만듭니다. segmentation 같은 경우에는 객체에 대한 class와 색을 사전에 따로 mapping하지 않았다고 합니다. 그리고 이러한 이미지를 가지고 VQVAE를 별도로 학습해서 encoder / decoder를 활용하였습니다. 

 

이미지는 imagenet-pretrained VQ-GAN을 사용했다고 합니다. 제가 VQ-GAN을 따로 읽어본 적은 없어서 확실하진 않지만 VQVAE와 크게 다르진 않을 것 같을 것 같습니다. 그런데 해당 논문의 모델과 weight 값을 그대로 가져와서 사용했기 때문에 VQ-GAN이라고 워딩이 사용된 것 같습니다. VQ-GAN에서는 256x256이미지를 크기 16,384의 codebook을 가지고 16x16 patch로 압축했다고 합니다. 

 

Sparse structure representation

Bounding box좌표, human joint좌표 같이 정보의 상대적으로 적은 sparse structure representation 같은 경우에는 tokenizer에 vocabulary로 1000개의 special token을 추가하여 처리하였다고 합니다. 

 

Appendix A.1에 나온 I/O 예시

아래 이미지들은 실제로 task들이 어떤 식으로 수행되는지 보여주는 이미지입니다. 혹시 더 궁금하시다면 해당 논문을 찾아보시면 좋을 것 같습니다. Image inpainting이나 object detection 쪽을 보면 입력으로 들어가는 bounding box 값이나 object detection 예측 bounding box(빨간색 박스로 나와있지만 실제로는 텍스트로 나옴) 같은 값들이 SentencePiece tokenizer를 통해 처리되었다고 보시면 될 것 같습니다. 

Image generation 예시
Image generation 예시
Image Inpainting 예시
Image Inpainting 예시
Object Detection 예시
Object Detection 예시

 

3.2. Unified Architecture

Unified-IO는 기본 transformer 구조에서 T5 setting을 따랐다고 합니다. 이미지를 관련 task에서 positional embedding이 필수적이라 하여 absolute positional embedding이 사용되었다고 합니다. input text token은 최대 256개, output text token은 최대 128개, input image token은 최대 576개, output image token은 최대 256개의 token까지 처리할 수 있다고 합니다. 

Unified-IO SMALL~XL은 아래와 같은 configuration을 가집니다.

 

Model Configuration
Model Configuration

 

 

3.3. Training

3.4. Implementation Detail 

해당 부분들은 논문에 간단하게 서술되어있어서 논문을 참고하시면 좋을 것 같습니다. 첨언을 하자면 vision&language domain은 위에 테이블에서도 보이는 것처럼 모델의 파라미터 수가 굉장히 큽니다. 이를 실험하고 학습 하는데 굉장히 많은 자원을 필요로 합니다. 흔히 초대거대AI라고 부르는 모델들이 여기에 해당되고 모델 연산을 위한 클러스터가 필요합니다. 

 

 

4. Experiments

GRIT Benchmark
GRIT Benchmark

위 표에 보이는 것처럼 GRIT benchmark에 있는 모든 task를 수행할 수 있는 첫 모델이면서 가장 높은 성능을 보이고 있습니다. 

 

 

5. Related Work

해당 부분이 궁금하신 분은 논문을 참고하시면 좋을 것 같습니다. 

 

6. Conclusion

다양한 데이터를 동시에 다룰 수 있는 Unified-IO를 제안했습니다. 전문의 요약이 서술되어있습니다.