AI바라기의 인공지능
VLM : 논문리뷰 : Florence: A New Foundation Model for Computer Vision 본문
Florence: A New Foundation Model for Computer Vision
Abstract
CLIP, ALIGN 및 Wu Dao 2.0과 같은 기존 비전 기반 모델은 주로 이미지 및 텍스트 표현을 교차 모달 공유 표현에 매핑하는 데 중점을 두는 반면,
새로운 컴퓨터 비전 기반 모델인 Florence는 개략적(장면)에서 상세(객체) 표현, 정적(이미지)에서 동적(비디오) 표현, RGB에서 다중 모달(캡션, 깊이) 표현으로 확장합니다.
웹 규모 이미지-텍스트 데이터의 보편적인 시각-언어 표현을 통합함으로써 Florence 모델은 분류, 검색, 객체 감지, VQA, 이미지 캡션, 비디오 검색 및 동작 인식과 같은 다양한 컴퓨터 비전 작업에 쉽게 적용할 수 있습니다.
또한 Florence는 완전 샘플링 미세 조정, 선형 프로빙, 퓨샷 전이 및 새로운 이미지 및 객체에 대한 제로샷 전이와 같은 여러 유형의 전이 학습에서 뛰어난 성능을 보여줍니다.
이러한 모든 속성은 우리의 비전 기반 모델이 범용 비전 작업을 수행하는 데 중요합니다. Florence는 44개의 대표적인 벤치마크에서 대부분 새로운 최첨단 결과를 달성했습니다.
예를 들어
ImageNet-1K 제로샷 분류에서 상위 1 정확도 83.74 및 상위 5 정확도 97.18,
COCO 미세 조정에서 62.4 mAP, VQA에서 80.36, Kinetics-600에서 87.8을 달성했습니다.
Introduction
인간과 유사한 AI는 특정 문제를 해결하기 위한 특정 모델을 설계함으로써 달성되는 것이 아니라, 인간의 개입 없이 다양한 실제 문제를 동시에 해결할 수 있는 전체론적이고 통합적인 모델을 통해 달성됩니다. 따라서 인간이 하듯이 제한된 추가적인 도메인 지식으로 광범위한 다운스트림 AI 작업을 지원할 수 있는 공통적이고 근본적인 표현을 학습하는 새로운 AI 아키텍처가 필요합니다.
최근에는 웹 규모 이미지-텍스트 쌍에서 직접 학습하는 CLIP (Radford et al., 2021), ALIGN (Jia et al., 2021) 및 Wu Dao 2.0 (Wud)과 같은 대규모 사전 훈련 방법이 효율적인 전이 학습 및 제로샷 기능에 대해 매우 고무적인 발전을 보여주고 있습니다. 그러나 이러한 모델은 분류, 검색 및 태깅과 같은 이미지-텍스트 매핑 작업으로만 제한됩니다.
우리는 "컴퓨터 비전을 위한 기반 모델은 무엇인가?"라는 질문을 제기합니다.
하지만 먼저, 컴퓨터 비전에서 "기반"이 의미하는 바를 더 잘 정의하기 위해,
우리는 3개의 직교 축을 가진 문제 공간(그림 1)에서 작업 스펙트럼을 포착합니다:
1) 공간: 개략적(예: 장면 수준 분류)에서 세밀(예: 객체 감지)까지,
2) 시간: 정적(예: 이미지)에서 동적(예: 비디오)까지,
3) 모달: RGB 전용에서 다중 감각(예: 캡션 및 깊이)까지.
시각적 이해의 다양한 특성으로 인해, 우리는 컴퓨터 비전을 위한 기반 모델을 제로/퓨샷 학습 및 완전 미세 조정과 같은 전이성을 통해 이 공간-시간-모달 공간의 모든 비전 작업을 해결하기 위한 사전 훈련된 모델 및 어댑터로 재정의합니다.
전이성을 위한 적응은 사전 훈련된 기반 모델에 대한 최소한의 커스터마이징으로 제한됩니다.
예를 들어 모델 매개변수를 크게 늘리거나 변경하지 않고 미세 조정을 위한 추가 훈련, 몇 에폭 또는 몇 레이어만 수행하는 방식입니다.
이 논문에서 우리는 Florence라는 비전 기반 모델을 구축하기 위한 새로운 패러다임을 제시합니다.
Florence는 통합 목표를 가지고 노이즈가 있는 웹 규모 데이터에 대해 엔드 투 엔드로 훈련되어, 광범위한 벤치마크에서 동급 최고의 성능을 달성할 수 있습니다.
그림 2에서 보듯이 Florence 구축의 생태계는 데이터 큐레이션, 모델 사전 훈련, 작업 적응 및 훈련 인프라로 구성됩니다.
Data curation.
다양하고 대규모의 데이터는 기초 모델의 생명선입니다.
인터넷에서 자연어 약 감독과 함께 공개적으로 사용 가능한 방대한 양의 이미지를 활용하여, 우리는 훈련을 위해 9억 개의 이미지-텍스트 쌍으로 구성된 새로운 데이터 세트를 선별했습니다.
Model pretraining
이미지-텍스트 쌍에서 좋은 표현을 학습하기 위해 CLIP 및 ALIGN에서 일반적으로 사용되는 것처럼 이미지 인코더와 언어 인코더를 포함하는 두 개의 타워 아키텍처를 사용했습니다.
이미지 인코더의 경우 계층적 Vision Transformers(예: Swin, CvT, Vision Longformer, Focal Transformer 및 CSwin)를 선택했습니다.
이러한 계층적 아키텍처는 Transformer 자체 주의 연산의 성능 이점을 상속하면서 이미지의 스케일 불변성을 모델링하고 이미지 크기와 관련하여 선형 계산 복잡성을 갖습니다. 이는 객체 감지 및 분할과 같은 밀집 예측 작업에 필수적인 속성입니다.
Task adaptations
컴퓨터 비전 기초 모델이 다양한 다운스트림 작업에 적응하도록 정의했으므로 Florence가 이러한 목적을 위해 확장 가능하고 전송 가능한 것이 중요합니다.
우리는 동적 헤드 어댑터를 사용하여 학습된 특징 표현을 공간(장면에서 객체로),
제안된 비디오 CoSwin 어댑터를 통해 시간(정적 이미지에서 비디오로),
METER 어댑터를 통해 모달(이미지에서 언어로)로 확장했습니다.
Florence는 몇 번의 에폭으로 추가 훈련(예: 검색)을 통해 효율적인 배포 기능과 함께 퓨샷 및 제로샷 전이 학습을 통해 개방형 환경에서 효과적으로 적응하도록 설계되었습니다. 우리 모델은 응용 프로그램 개발자가 사용할 수 있는 다양한 도메인에 맞게 사용자 정의할 수 있습니다.
Training infrastructure.
에너지 및 비용 문제 모두를 위해 가능한 한 저렴한 비용으로 기초 모델을 구축하는 것이 중요합니다.
여기에는 메모리 소비를 크게 줄여 교육 처리량을 향상시키는 ZeRO, 활성화 체크포인팅, 혼합 정밀도 교육, 그라디언트 캐시와 같은 몇 가지 주요 기술이 포함됩니다.
Florence는 이전의 대규모 사전 훈련 방법보다 훨씬 뛰어나며 광범위한 비전 및 비전-언어 벤치마크에서 새로운 최첨단 결과를 달성합니다.
Approach
2.1. Dataset Curation
우리는 인터넷에서 공개적으로 사용 가능한 대량의 이미지-텍스트 데이터를 활용합니다.
구체적으로는 약 30억 개의 인터넷 이미지와 원시 설명을 병렬로 처리하는 프로그래밍 방식의 데이터 큐레이션 파이프라인을 사용하여 FLD-900M(FLD는 FLorenceDataset의 약자)이라는 9억 개의 이미지-텍스트 쌍 데이터 세트를 구성합니다.
법적 및 윤리적 제약을 준수하면서 데이터 관련성과 품질을 보장하기 위해 선택 및 사후 필터링을 사용합니다.
데이터 품질을 개선하기 위해 ALIGN (Jia et al., 2021)과 유사하게 간단한 해시 기반 유사 이미지 제거, 작은 크기 이미지 제거, 이미지-텍스트 관련성 등 엄격한 데이터 필터링을 수행했습니다. 또한 (Radford et al., 2021; Ramesh et al., 2021)에서 소개된 샘플링 전략을 따릅니다. 샘플링된 데이터 세트의 균형, 정보 제공 및 학습 가능성을 개선하는 것을 목표로 합니다.
FLD-900M 데이터 세트의 최종 형태는 9억 개의 이미지와 9억 개의 자유 형식 텍스트(한 단어, 구에서 문장까지), 970만 개의 고유한 쿼리 및 총 75억 개의 토큰으로 구성됩니다.
2.2. Unified Image-Text Contrastive Learning
CLIP은 각 이미지-텍스트 쌍이 고유한 캡션을 가지고 있다고 암묵적으로 가정하며, 이를 통해 다른 캡션을 부정적인 예시로 간주할 수 있습니다.
그러나 웹 규모 데이터에서는 여러 이미지가 동일한 캡션과 연결될 수 있습니다. 예를 들어 FLD-900M에는 하나의 동일한 텍스트에 해당하는 이미지가 두 개 이상 있는 이미지-텍스트 쌍이 3억 5천만 개 있으며, 동일한 텍스트와 관련된 모든 이미지는 대조 학습에서 긍정적인 쌍으로 처리될 수 있습니다.
이 문제를 해결하기 위해 Florence가 이미지-레이블-설명 공간에서 사전 훈련되는 통합 이미지-텍스트 대조 학습(UniCL)을 활용합니다.
이미지-텍스트 쌍이 주어지면 텍스트 해시 테이블을 통해 (x, t, y) triplet을 생성합니다.
여기서
x는 이미지,
t는 언어 설명(즉, 해시 값),
y는 데이터 세트에서 고유한 언어 설명의 색인을 나타내는 언어 레이블(즉, 해시 키)입니다.
동일한 언어 설명만 동일한 해시 키, 즉 언어 레이블에 매핑한다는 점에 유의해야 합니다. 따라서 동일한 레이블 y에 매핑된 모든 이미지-텍스트 쌍은 범용 이미지-텍스트 대조 학습에서 긍정적인 것으로 간주됩니다. 다른 것들은 여전히 부정적인 것으로 간주됩니다.
공통 이미지-레이블-설명 공간에서 통합 학습 목표는 두 가지 인기 있는 학습 패러다임을 통합합니다.
이미지를 레이블에 매핑하여 판별 표현을 학습하는 것(즉, 지도 학습)과 각 설명에 고유한 레이블을 할당하여 언어-이미지 사전 훈련(즉, 대조 학습)을 수행하는 것입니다.
실증적인 실험 결과, 풍부한 내용을 담은 긴 언어 설명이 짧은 설명(예: 한두 단어)보다 이미지-텍스트 표현 학습에 더 유익한 것으로 나타났습니다.
생성된 언어 프롬프트는 이미지에 대한 정확한 설명이 아니며 일반적으로 인터넷의 관련 텍스트 설명만큼 유익하지 않습니다.
생성된 언어 프롬프트를 포함해도 분류 정확도에 영향을 미치지 않을 수 있지만 검색 및 비전 언어 작업의 성능은 저하됩니다. 증강 프롬프트의 부정적인 영향을 완화하기 위해 교육은 두 단계로 나뉩니다.
첫 번째 단계에서는 증강된 텍스트를 포함한 모든 데이터를 사용하여 교육합니다.
두 번째 단계에서는 모든 증강 데이터를 제외하고 지속적인 교육을 위해.
첫 번째 단계에서 1M 반복을 훈련했고
두 번째 단계에서 180K 반복을 계속 훈련했습니다.
모델 훈련에는 분리된 가중치 감소 정규화가 있는 Adam optimizer가 사용됩니다.
이미지 크기는 224 × 224이고
최대 언어 설명 길이는 76에서 잘립니다.
배치 크기는 24, 576입니다.
기존 사전 훈련 접근 방식에 따라 성능을 높이기 위해 384 × 384의 더 높은 해상도에서 80K 반복을 추가로 훈련했습니다.
2.3. Transformer-based Florence Pretrained Models
Florence 사전 훈련 모델은 두 개의 타워 아키텍처를 사용합니다: CLIP과 유사하게 언어 인코더로 12층 transformer(Vaswani et al., 2017)를 사용하고, 이미지 인코더로 계층적 Vision Transformer를 사용합니다. 계층적 Vision Transformer는 CoSwin Transformer라고 하는 컨볼루션 임베딩을 사용하는 수정된 Swin Transformer(Liu et al., 2021a)입니다.
구체적으로, Swin Transformer의 패치 임베딩 및 패치 병합 모듈을 CvT(Wu et al., 2021)에 설명된 컨볼루션 임베딩 레이어로 대체합니다. CoSwin Transformer와 전역 평균 풀링을 사용하여 이미지 특징을 추출합니다. 이미지 및 언어 특징의 차원을 일치시키기 위해 이미지 인코더와 언어 인코더 위에 두 개의 선형 투영 레이어가 추가됩니다.
Florence 사전 훈련 모델에는 총 8억 9천 3백만 개의 매개변수가 있으며, 여기에는 2억 5천 6백만 개의 매개변수를 가진 언어 변환기와 6억 3천 7백만 개의 매개변수를 가진 CoSwin-H 변환기가 포함됩니다. 이 모델은 GPU당 40GB 메모리가 있는 512개의 NVIDIA-A100 GPU에서 훈련하는 데 10일이 걸립니다.
2.4. Object-level Visual Representation Learning
우리는 Florence 사전 훈련 모델을 확장하여 객체 감지와 같은 밀집 예측 작업의 기본이 되는 세밀한 (즉, 객체 수준) 표현을 학습합니다.
이를 위해 사전 훈련된 이미지 인코더(즉, CoSwin)에 감지 헤드용 통합 어텐션 메커니즘인 어댑터 Dynamic Head (또는 Dynamic DETR)를 추가합니다. 이렇게 하면 시각적 표현 학습을 개략적(장면)에서 세밀(객체)로 계속할 수 있습니다.
이미지 인코더 CoSwin-H의 계층적 구조를 기반으로 서로 다른 스케일 레벨에서 출력 피처 피라미드를 얻을 수 있습니다. 피처 피라미드 스케일 레벨은 level × space × channel 차원의 3차원 텐서로 연결 및 축소 또는 확대될 수 있습니다.
Dynamic Head의 핵심 아이디어는 텐서의 직교 차원 각각, 즉 레벨별, 공간별 및 채널별로 세 가지 주의 메커니즘을 배포하는 것입니다. 이 텐서에 단일 자체 주의 메커니즘을 구축하는 것과 비교하여 Dynamic Head는 계산을 더욱 저렴하게 만들고 보다 효율적인 학습을 가능하게 합니다. 위의 세 가지 주의 메커니즘은 순차적으로 적용되며, 이러한 세 가지 주의 레이어로 구성된 여러 블록을 효과적으로 함께 쌓을 수 있습니다.
그림 3은 Dynamic Head 빌딩 블록을 보여줍니다. 이 작업에서 Dynamic Head는 단일 단계 ATSS 프레임워크 및 손실로 훈련됩니다.
객체 감지 사전 훈련을 위해 FLOD-9M(FLorence Object detection Dataset)이라는 대규모 객체 감지 데이터 세트를 구축했습니다. COCO, LVIS, OpenImages, Object365를 포함한 몇 가지 잘 알려진 객체 감지 데이터 세트를 병합합니다. 또한 (Zoph et al., 2020)에 따라 ImageNet-22K 데이터 세트에 pseudo 경계 상자를 생성하여 데이터를 더욱 확대합니다. 결국 FLOD-9M은 8,967,286개의 이미지, 25,190개의 객체 범주 및 주석 및 pseudo 레이블을 포함하여 33,408,237개의 경계 상자로 구성됩니다. 그런 다음 128개의 NVIDIA-A100 GPU에서 7일이 걸리는 배치 크기 128로 12 epoch 동안 Dynamic Head 모델을 사전 훈련합니다.
2.5. Fine-Grained V+L Representation Learning
우리는 METER 어댑터를 사용하여 세밀한 비전-언어 표현으로 확장합니다.
시각 질문 답변(VQA) 및 이미지 캡션과 같은 비전-언어 영역에서는 세밀한 표현(즉, 객체 수준)이 필수적입니다.
Florence V+L 적응 모델에서는 METER의 이미지 인코더를 Florence 사전 훈련 모델 CoSwin으로 교체하고 사전 훈련된 Roberta를 언어 인코더로 사용합니다(그림 4 참조).
Florence 사전 훈련된 언어 인코더는 BERT 기반 아키텍처를 활용하기 때문에 이 어댑터에 사용할 수 있습니다. 그런 다음 두 가지 양식을 함께 융합하여 공동 주의를 기반으로 하는 변환기 네트워크를 사용하여 상황별 표현을 학습합니다.
공동 주의 모델(그림 4)은 텍스트 및 시각적 기능을 두 개의 Mco-layer 변환기에 별도로 제공할 수 있으며 각 상위 변환기 인코딩 레이어는 하나의 자체 주의 블록, 하나의 교차 주의 블록 및 하나의 피드 포워드 네트워크 블록으로 구성됩니다. 먼저 이미지-텍스트 매칭 손실과 마스크된 언어 모델링 손실을 사용하여 모델을 훈련합니다. 그런 다음 VQA 작업과 같은 다운스트림 작업에 대해 모델을 미세 조정합니다.
2.6. Adaption to Video Recognition
Transformer의 자체 주의 기반 설계는 이미지 및 비디오 인식 시스템을 통합할 수 있도록 합니다.
Video CoSwin 어댑터는 이전 연구와 유사하게 최소한의 변경으로 비디오 도메인에 대해 CoSwin의 이미지 인코더를 차용할 수 있습니다.
첫째, 이미지 토큰화 계층이 비디오 토큰화 계층으로 대체됩니다. 따라서 비디오 CoSwin은 CoSwin의 토큰화 계층을 2D 컨볼루션 레이어에서 3D 컨볼루션 레이어로 대체하여 각 3D 튜브를 하나의 토큰으로 변환합니다. 3D 컨볼루션 가중치 초기화로 CoSwin의 사전 훈련된 2D 컨볼루션 가중치가 시간 차원을 따라 복제되고 시간 커널 크기로 나누어 출력의 평균과 분산을 변경되지 않도록 유지합니다.
둘째, video CoSwin은 (Liu et al., 2021b)에서 사용된 2D 패치 병합 연산자 대신 3D 컨볼루션 기반 패치 병합 연산자를 사용합니다. 이러한 겹치는 토큰 병합은 토큰 간의 공간적 및 시간적 상호 작용을 향상시킬 수 있습니다.
셋째, 이전 연구(Liu et al., 2021b)에 따라 자체 주의 레이어에서 2D 이동 창 디자인을 3D 이동 로컬 창으로 대체합니다. 사전 훈련된 CoSwin의 2D 상대 위치 임베딩 매트릭스를 시간 차원을 따라 복제하여 3D 위치 임베딩 매트릭스를 초기화합니다. 이러한 방식으로 2D 상대 위치 임베딩은 각 시간 이동에 대해 동일합니다. 또한 다른 모든 레이어와 가중치(자체 주의, FFN 포함)는 사전 훈련된 CoSwin에서 직접 상속할 수 있습니다.
비디오 교육의 메모리 문제를 완화하기 위해 동적 창 크기 전략을 채택합니다. 즉, CoSwin의 초기 단계에서는 비교적 작은 창 크기를, 이후 단계에서는 큰 창 크기를 사용합니다.
2.7. Scalable Training Infrastructure
대규모 데이터 세트에서 Florence 모델을 훈련하기 위해 확장 가능한 훈련 인프라는 두 가지 주요 과제에 직면합니다. 각 GPU의 메모리 비용을 줄이고 처리량을 늘리는 것입니다. 메모리 비용을 줄이면 각 GPU에 더 많은 데이터를 공급하고 더 큰 배치 크기를 사용할 수 있으며, 이는 대조 학습에 효과적인 것으로 입증되었습니다. 처리량을 늘리면 전체 교육 프로세스의 속도를 크게 높여 탄소 배출량을 줄일 수 있습니다.
우리는 두 가지 목표를 달성하기 위해 결합할 수 있는 몇 가지 기술을 개발했습니다:
Zero Redundancy Optimizer (ZeRO): ZeRO 기술은 최적화 상태, 기울기 및 매개변수를 GPU에서 분할하며 각 분할은 로컬에서만 업데이트됩니다. 따라서 메모리 소비가 크게 줄어듭니다.
Activation Checkpointing : 체크포인트된 모델 구성 요소(예: 다중 헤드 어텐션)의 경우 역방향 패스 중에 순방향 패스를 다시 실행합니다. 이러한 방식으로 구성 요소의 내부 기울기를 순방향 패스에 저장할 필요가 없으므로 교육 시 메모리 비용이 절감됩니다.
Mixed-precision Training : 혼합 정밀도 훈련에서는 다양한 연산이 서로 다른 숫자 정밀도(즉, float-32 또는 float-16)로 훈련됩니다. Float-32는 레이어 정규화와 같이 수치적으로 덜 안정적인 작업에 사용됩니다. float-16은 다른 작업에 사용됩니다. 이러한 조합은 교육 처리량을 향상시키고 모델 성능을 유지합니다.
Gradient Cache: 그래디언트 캐시 기술은 교육 단계에서 총 배치 크기를 늘릴 수 있습니다. 이전 연구에서는 큰 배치 크기가 더 나은 표현을 배우는 데 도움이 되는 것으로 나타났습니다. 그러나 사용 가능한 GPU 메모리에 의해 제한됩니다. 이 문제를 해결하기 위해 대규모 배치 기울기 업데이트를 GPU 메모리에 맞출 수 있는 여러 하위 업데이트로 분할하여 대조 손실을 고려합니다. 큰 배치 크기로 대규모 모델을 훈련할 수 있습니다.
위의 최적화 덕분에 그림 5와 같이 다양한 수의 NVIDIA-A100에서 다양한 배치 크기에 대한 GPU 메모리 감소를 지속적으로 개선할 수 있습니다.