본문 바로가기
데이터 어쩌구/기술 써보기

[Papaer] OFA : Language-Image pretraining model (2022)

by annmunju 2023. 8. 28.

0. 요약

  • 과업 상관없이 적용 가능한 멀티 모달 프레임워크
  • image generation, visual grounding, image captioning, image classification, language modeling, etc.
  • 사전 학습과 파인 튜닝이 동시에 진행됨
  • 적은 데이터로도 높은 훈련 성능

1. 소개

  • “Pretrain-Finetuning” 패러다임 제시
  • 한번에 ~처음부터 끝까지~ 하기 위한 조건
    • Task-Agnostic
    • Modality-Agnostic
    • Task Comprehensiveness
  • 현재 언어 및 멀티모달 사전 훈련된 모델은 다음과 같은 설계로 인해 이러한 특성의 일부에서 쉽게 실패한다
    • Extra learnable components for finetuning : 모델마다 헤드 형태 등등 다 달라서
    • Task-specific formulation : 작업별 구채적 형태를 만드니까
    • Entangling modality representation with downstream tasks. : 아래로 흘러가는 테스크의 모달리티에 얽혀있음.
  • 그래서
    • 작업 무시, 양식 무시 프레임워크 개발
    • 통합된 명령 기반 작업 표현으로 시퀀스 학습 프레임워크를 사용
    • 2,000만 개 이미지-텍스트 쌍으로 사전훈련됨.
    • RoBERTa, ELECTRA, DeBERTa랑 비교할 수 있을만한 SOTA 성능

2. 관련 연구

  • Language Pretraining & Vision Pretraining
    • BERT, GPT → 이런 pretraining model들이 정교해짐
    • 비전 관련 self-supervised learning
    • Mirroring masked language modeling (MLM)
    • ViT
  • Multimodal Pretraining
    • 생성 모델에 마스킹 전략과 encoder-decoder 적용
    • VQVAE, VQGAN → 고해상도의 높은 퀄리티 이미지로 생성
    • 다만 단일 타입 데이터는 불가능하다는 제한점도 있음.
    • open-ended data의 제한점도 있음
  • Unified Framworks (통합 프레임워크)
    • NLP에서는 텍스트 생성 기반 다중 모델을 타겟으로 사전 훈련된 모델이 있음. (text-generation-based multimodal pretrained model)
    • 하지만 오히려 사전 훈련된 모델에 휩쓸리다가 성능 하락하는 경우 있음 (ex. VQA, image captioning, etc.)

3. OFA

3.1 I/O & Architecture

  • input
    • 일반적인 방법 : image-text pair corpus. 전처리 혹은 모달리티별 어댑터 필요 (복잡하고 비용 많이듦)
    • 단순성을 목표로 ResNet 모듈을 직접 사용.
    • GPT와 BART가 사용한 BPE를 적용
  • output
    • 테스크별 다른 방식으로 출력하지 않으려면 모달리티를 통일된 공간에서 표현해야 함.
    • 해결책은 텍스트, 이미지 및 개체를 분리하여 통합된 어휘로 토큰으로 표시.
      • 해상도 256×256의 이미지는 길이 16×16의 부호열로 표현
      • 서브워드, 이미지 코드 및 위치 토큰을 포함한 모든 언어 및 시각 토큰에 대해 통합된 어휘를 사용.
  • Architecture
    • 다른 멀티모달 사전 훈련의 성공 사례를 참고함.
    • 모든 사전 훈련, 파인 튜닝 및 제로샷 테스크를 위한 ****통합 ****아키텍처로서 인코더-디코더(트렌스포머 레이어) ****프레임워크를 채택.
    • A Transformer encoder layer consists of a self attention and a feed-forward network (FFN), while a Transformer decoder layer consists of a self attention, an FFN and a cross attention for building the connection between the decoder and the encoder output representations.
    • To stabilize training and accelerate convergence, we add head scaling to self attention, a post-attention layer normalization (LN) [65], and an LN following the first layer of FFN [66]. For positional information, we use two absolute position embeddings for text and images, respectively. Instead of simply adding the position embeddings, we decoupling the position correlation from token embeddings and patch embeddings [67]. In addition, we also use 1D relative position bias for text [30] and 2D relative position bias for image [22, 62].
    • 트레이닝을 안정화하고 컨버전스를 가속화하기  위해 자기 주의에 헤드 스케일링, 사후 ****주의 레이어 정규화(LN)를  추가합니다. FFN의 첫 번째 ****레이어 ****뒤에 LN이 표시됩니다. 위치 정보는 텍스트와 이미지에 대해 각각 2개의 절대위치 임베딩을 사용합니다. 단순히 위치 임베딩을 추가하는 대신 **** 토큰 임베딩 및  패치 임베딩에서  위치 상관 관계를  분리합니다. 또한 텍스트에는 1D, 2D 상대 위치 바이어스를 사용합니다.

3.2 Tasks & Modalities

  • 핵심 포인트는 멀티 태스킹과 멀티 모달리티를 고려
  • 작업과 양식을 통합하기 위해, 우리는 다른 양식과 관련된 모든 작업에 대한 사전 훈련, 미세 조정 및 추론을 위한 통합된 시퀀스 대 시퀀스 학습 패러다임을 설계한다.
    • 사전 훈련 작업과 다운스트림 작업 모두 Seq2Seq 생성
      • 모델에 포괄적인 기능을 부여하기 위해 멀티모달 및 유니모달 데이터에 대해 멀티태스킹 사전 훈련을 수행
      • 모든 태스크에서 동일한 스키마를 공유하면서 식별을 위한 수작업 지침을 지정
    • 교차 모달 표현 학습을 위해 5가지 작업을 설계 : visual grounding (VG), grounded captioning (GC), image-text matching (ITM), image captioning (IC), and visual question answering (VQA).
      • VG : 이미지 + "{텍스트}는 어느 범위를 설명합니까?"
        • 명령에 따라 지역 위치*(x1,* y1, x2, *y2)*를 **지정하는 위치 토큰을 생성하는 방법을 학습
        • 여기서 {텍스트} 지역 캡션을 참조합니다.
      • GC : 이미지 + "{텍스트}는 어느 범위를 설명합니까?"
        • VG의 역으로 작업함
        • 이 모델은 입력 이미지 xi와 "지역 위치(x1, y1, x2, *y2)*은 무엇을 설명합니까?" 명령을 기반으로 설명을 생성하는 방법을 학습
      • ITM : 오리지날 이미지-텍스트 페어를 랜덤하게 치환된 캡션과 페어링 해 새로운 이미지를 작성. **
        • 입력 이미지 "Doescription the image description {텍스트}?" 지침에 따라 "Yes" 또는 "No" 생성 방법을 학습하여 주어진 이미지와 텍스트가 쌍을 이루는지 여부를 판별
      • IC : 시퀀스 투 시퀀스 형식으로 적용. 주어진 이미지와 지시에 따라 캡션을 생성하는 방법을 학습. “이미지는 무엇을 설명합니까?”
      • VQA : 이미지와 질문을 입력으로 전송하고 모델이 올바른 답변을 생성하는 방법을 학습.
        • 이미지 테스크 모델 2개 (이미지 주입 모델, 객체 감지 기능) - 텍스트 테스크 모델 1개를 각각 설계.
          • 이미지 주입 모델) 이미지의 중간 부분을 입력으로 마스킹합니다. 모델은 손상된 입력과 "중간 부분의 이미지는 무엇입니까?"라는 지정된 명령을 기반으로 이미지의 중앙 부분에 대한 스파스 코드를 생성하는 방법을 학습합니다.
          • 객체 감지 기능 모델) 입력 이미지와 명령어인 "What are the objects in the image?"라는 텍스트를 기반으로 객체 위치 및 라벨 순서와 같이 인간이 주석으로 표시한 객체 표현을 생성하는 방법을 학습합니다.
          • 언어 표현 학습) 텍스트 채우기를 사용하여 일반 텍스트 데이터에 대한 통합 모델을 사전 교육

3.3 Pretraining Datasets

  • vision data(예: 원시 이미지 데이터, 객체 레이블 데이터) langage data 통합 데이터

3.4 Training & Inference

  • We optimize the model with the cross-entropy loss. (교차 엔트로피를 최소화)
  • this paradigm has several problems in classification tasks
    • 전체 어휘에 대한 검증 불필요
    • 추론용 레이블 집합에서 잘못된 레이블 생성 가능
  • 이런 문제를 해결하기 위해…
    • we introduce a search strategy based on prefix tree (Trie, [68]).

3.5 Scaling Models

  • 확장 가능한 5가지 OFA 모델 개발 (OFA-Tiny, OFA-Medium, OFA-Base, OFA-Large, OFA)
728x90