Perception Encoder: The best visual embeddings are not at the output of the network | Research - AI at Meta
Abstract We introduce Perception Encoder (PE), a state-of-the-art encoder for image and video understanding trained via simple vision-language learning. Traditionally, vision encoders have relied on a variety of pretraining objectives, each tailored to spe
ai.meta.com
해당 논문을 보고 작성했습니다.
Abstract
Perception Encoder (PE)라는 SOTA vision encoder를 제안합니다. 이는 simple vision-language learning을 통해 image and video understanding을 수행하도록 학습됩니다. 일반적으로 vision encoder는 다양한 pretraining objective에 의존하며, 각 objective는 특정 downstream task에 맞춰져 있습니다. 흥미롭게도, 정교하게 설계한 image pretraining recipe를 대규모로 확장하고 robust video data engine을 이용하여 refine 한 결과, contrastive vision-language training만으로도 모든 downstream task에 대해 strong, general embedding을 생성할 수 있다는 것을 발견하였습니다.
다만, 이 embedding은 network의 intermediate layer에 존재합니다. 이를 효과적으로 활용하기 위해, 2가지 alignment method를 제안합니다. mutlimodal language modeling을 위한 language alignment와 dense prediction을 위한 spatial alignment입니다. 이 둘을 이용하여 PE model은 다양한 task에서 가장 좋은 성능을 달성하였습니다. zero-shot image and video classification and retrieval, document, image, and video Q&A task에서 뛰어난 성능을 달성할 뿐만 아니라, detection, tracking, depth estimation과 같은 spatial task에서도 SOTA를 달성하였습니다.
Introduction
지난 10년 동안 computer vision 분야에서, pretrained vision encoder는 perception을 필요로 하는 대부분의 application에서 core building block으로 자리 잡아 왔습니다. 오늘날에는 많은 pretraining objective가 존재하며, 각각 구분된 characteristic이 존재하며 task에 더 적합한 representation을 학습합니다. 예를 들어 vision-language contrastive loss는 zero-shot classification and retrieval에 적합한 global vision and language embedding을 학습할 뿐만 아니라, generative task를 위한 vision-language alignment를 제공합니다. captioning loss는 language decoder를 이용하여 image description을 생성하도록 학습하며, 이는 downstream multi-modal language model (MLLM) task에 효과적입니다.
많은 기존 연구들은 다양한 방식으로 이 기술들을 2개 또는 그 이상으로 결합하는 시도를 하고 있습니다. 많은 연구들이 성공적이었지만, 사용하는 technique의 수가 늘어남에 따라 complexity가 기하급수적으로 늘어나 scaling 하는데 어려움이 발생합니다. 아직 다양한 downstream task에서 SOTA를 달성하는 feature를 학습하는 single, simple, easiliy scalable 한 pretraining technique이 존재하지 않습니다.
본 연구에서 저자들은 global vision-language contrastive learning만 사용해도 가능하다는 것을 발견하였습니다. 저자들은 model 내부에 OCR, VQA, grounding, detection, depth estimation, tracking에 적합한 specific feature가 존재한다는 것을 발견하였습니다. captioning and spatially self-supervised pretraining을 이용하는 SOTA model과 비교했을 때, 저자들의 contrastive encoder는 특정 layer를 frozen 하였을 때, 각 task에서 가장 좋다고 알려진 다른 pretraining technique들과 비슷하거나 더 뛰어난 성능을 보였습니다. 저자들은 alignment tuning을 통해 이러한 phenomenon을 활용함으로써, 이 feature들을 network의 output과 align 하여 downstream MLLM task와 spatial task 모두에서 SOTA를 달성하는 encoder를 구축할 수 있었습니다.

먼저, 위 그림의 왼쪽처럼 image and video 모두에서 SOTA zero-shot performance를 달성하는 large-scale contrastively pretrained model인 $\text{PE}_{\text{core}}$을 구현합니다. 이 model을 구현하기 위해, strong image-only contrastive pretraining recipe을 이용하여 수십 억 image-text data에서 general knowledge를 추출합니다. data와 training FLOPs을 동일하게 유지한 상태에서도, 이 recipe은 vanilla CLIP보다 performance와 robustness 모두 크게 향상시켰습니다. 이후 학습된 model을 frame-based encoder로 이용하여 well-aligned video caption을 생성하는 video data engine을 개발합니다. 이 synthetic video-text data를 이용하여 finetuning을 진행하고, 이를 통해 image and video classification and retrieval task 모두 성능을 크게 향상시켰습니다.
마지막으로 이 robust image pretraining and well-aligned video finetuning strategy를 2B parameter까지 확장하여 $\text{PE}_{\text{core}}\text{G}$을 생성합니다. 이 model은 대부분의 zero-shot video task와 zero-shot image task에서 SigLIP2보다 뛰어난 성능을 기록하는 single unified encoder입니다. 이후 distillation을 통해 해당 model의 knowledge를 더 작은 model에 transfer 합니다.
이제는 downstream task에 대해 진행합니다. CLIP loss로만 pretraining 되었음에도 불구하고 $\text{PE}_{\text{core}}\text{G}$의 intermediate layer가 각 task에서 가장 좋은 성능을 보인다고 알려진 pretrained model인 AIMv2-3B와 DINOv2-g와 비슷한 성능을 달성할 수 있습니다. 이는 저자들의 robust image pretraining strategy 덕분이라고 판단하였습니다. 하지만 여전히 몇 가지 문제가 존재합니다. model이 feature를 output 하지 않으며, intermediate에 hidden feature가 존재한다는 점입니다. 이를 해결하기 위해, 저자들은 2가지 alignment tuning method를 이용하였으며, 이를 통해 strong, general feature를 추출합니다.
먼저, large language model에 adapt 하는 방식으로 network의 output feature를 align 하는 technique들에 대한 탐구를 수행합니다. 이 language alignment는 MLLM task를 위해 사용되는 vision encoder보다 뛰어난 성능을 달성하는 $\text{PE}_{\text{lang}}\text{G}$을 구축하도록 만들어줍니다. 나아가 Percetion Language Model (PLM)을 이용하는 경우, InternVL3와 같은 SOTA MLLM과도 비교할 수 있을 정도의 성능을 기록합니다.
spatial task에 최적인 layer가 서로 달라지는 dichotomy가 존재함을 확인하였습니다. 저자들은 model의 frozen feature로부터 distillation을 수행하여 대부분의 alignment를 달성하고 spatial correspondence distillation을 수행하여 refine 합니다. 이를 통해 구한 model $\text{PE}_{\text{spatial}}\text{G}$은 depth estimation, tracking, semantic segmentation에서 좋은 성능을 달성하는 다른 model들보다 좋은 성능을 달성할 뿐만 아니라, COCO detection에서는 SOTA를 달성하였으며, 더욱 간단한 decoder를 사용하고도 이러한 성능을 달성할 수 있었습니다.
Perception Encoder: Core
perception encoder (PE)를 구축하기 위해, 먼저 image와 video에 대한 large-scale, robust, highly performant vision-language contrastive model을 학습합니다. 이때 2가지 objective가 있습니다. 첫째는 contrastive training의 scalability and data efficiency를 향상시키는 것이며, 둘째는 image와 video 모두에서 효과적으로 동작하는 unified model을 생성하는 것입니다.
하지만 이 두 가지 goal은 conflict 하는 부분이 존재합니다. image-text data는 풍부하고 image에 대한 학습은 효과적으로 진행할 수 있습니다. 하지만 video-text data는 부족하기 때문에 video에 대한 학습을 진행하는 것은 어려움이 존재합니다. 그러므로, 저자들은 image and vidoe training을 two-stage로 분리하였습니다. 첫 stage에서는 여러 regularization technique을 이용하는 strong image pretraining recipe을 개발하였습니다. 이후 학습된 image model을 frame encoder로 사용하여 video data engine을 구축하였습니다. 이 engine은 human-refined video-text dataset을 받아 video clip의 caption을 생성합니다. 마지막으로 image encoder를 aligned video data로 fine-tune 합니다. 이러한 data engine design을 이용하여 비교적 짧은 finetuning step으로도 image와 video 모두에서 성능을 크게 향상시켰습니다.
Robust Image Pretraining
pretraining의 첫 stage로, large image-text dataset으로부터 가능한 많은 visual information을 학습하는 것을 목표로 합니다. 주목할 점은 contrastive training의 독특한 특성 중 하나로, 하나의 특정 sample에 대한 loss 값이 같은 batch 내의 다른 sample들에 의해 결정된다는 점입니다. 각 batch는 다르기 때문에, 각 time마다 이전에 봤던 sample이더라도 해당 sample에 대해 새로운 정보를 학습할 수 있습니다. 그러므로, 저자들은 contrastive learning의 이점을 long training schedule을 통해 얻을 수 있다고 판단하여 high regularization을 이용하는 pretraining recipe을 design 하였습니다.
- Setup

저자들은 vanilla CLIP model을 baseline으로 사용하였습니다. training budget을 약 1T GFLOPs으로 고정하고 약 2.3B image-text dataset을 이용하여 학습을 진행하였습니다. pretraining에서 발생하는 information의 generality를 평가하기 위해, 저자들은 zero-shot ImageNet result 뿐만 아니라 다양한 robustness 지표들의 평균을 구하여 사용했습니다. 다른 CLIP model처럼 저자들이 사용한 vanilla model 또한 InageNet 보다는 robustness를 위한 metric 수치가 더 낮게 측정되었습니다.
- Progressive Resolution
더 긴 학습을 가능하게 하기 위해, 저자들은 학습 효율성을 향상시켰습니다. 기존 연구들에서 보여주었듯이, vision encoder는 점진적으로 resolution을 증가시키는 training schedule에서 잘 동작합니다. 그래서 저자들은 3가지 resolution을 이용하여 학습을 진행하였으며, 성능을 유지하면서 training FLOP을 절반으로 줄일 수 있었습니다.
- Increasing Batch Size
batch size를 32K에서 64K로 증가시켰습니다. batch size가 커질수록 새로운 sample pair가 등장할 확률이 높아집니다. 이는 CLIP의 task difficulty를 향상시키는 것과 동일하며, 결과적으로 ImageNet test에서 0.6%, robustness에서 1.1% 성능 향상을 이끌어냈습니다.
- LAMB Optimizer
AdamW대신 LAMB optimizer를 사용하였습니다. LAMB는 기존의 learning rate보다 좀 더 큰 값을 사용하여도 학습을 안정적으로 진행할 수 있습니다. 높은 learning rate를 사용하는 것이 다양한 resolution에서 model이 adapt 하는데 중요한 역할을 한다는 것을 알아냈으며, LAMB를 이용하여 ImageNet val에서 0.4%, robustness에서 0.7% 성능 향상을 이끌어냈습니다.
- Increasing Final Resolution
저자들은 4번째 resolution stage로 336 resolution을 사용하는 stage를 추가하였습니다. training FLOP을 유지하기 위해, 98 resolution에서는 10B개 sample을 사용하고 154에서는 8B, 224에서는 4B, 336에서는 2B개 sample을 사용합니다. 이를 통해 ImageNet val에서 0.5%, robustness에서는 1.4% 성능 향상을 이끌어냈습니다.
- RoPE
extrapolation을 향상하기 위해, 각 attention layer에 positional embedding은 유지한 채로 2D RoPE를 추가하였습니다. 2D RoPE는 ImageNet val을 0.3%, robustness에서는 0.9% 성능 향상을 이끌어냈습니다.
- Attenting Pooling
저자들은 attention probing transformer block을 이용하여 CLIP embedding을 구현하였습니다. class token을 유지하여 input으로 사용하는 것이 small model performance에 영향을 준다는 것을 발견하였으며, 이를 통해 ImageNet val을 0.3%, robustness에서는 0.9% 성능 향상을 이끌어냈습니다.
- Tuned Data Augmentation
수십 억 sample을 이용하여 학습함에도 불구하고, 여전히 data augmentation이 중요하다는 것을 알아냈습니다. 그래서 저자들은 random cropping, brightness/saturation jitter, horizontal flip을 사용하였습니다. 이를 통해 robustness를 0.7% 향상시켰습니다.
- Scaling Behavior

위 그림과 같이 다양한 크기의 model을 이용하였습니다. 각 benchmark에서 저자들의 recipe이 original CLIP recipe과 비슷하거나 더 좋은 성능을 기록하였습니다. ObjectNet과 ImageNet Adversarial과 같이 어려운 dataset에서도 저자들의 recipe이 더 나은 scaling을 성능을 기록하였습니다.
Bootstrapping a Video Data Engine with Perception Encoder
이번에는 image-only encoder가 video에도 동작할 수 있도록 확장하기 위해 unified image-video model을 build 합니다. web-scale image-text data와 달리, language annotation이 있는 video data는 부족합니다. high-quality human-annotated caption 또한 더욱 드뭅니다. 이러한 문제로 인해 encoder가 video input을 효과적으로 처리할 수 있도록 학습하는 것에 대한 어려움을 제시합니다. image data engine의 최근 성공에 영감을 받아, 저자들은 다양한 video에 잘 align 된 synthetic caption을 생성하는 robust video data를 개발하고, 이를 이용하여 video encoder를 학습합니다.
3가지 stage를 통해 data engine을 개발하였습니다. 먼저 Perception Language Model (PLM)이라 부르는 strong aseline video captioner를 설계합니다. 이후, captioner의 quality를 더욱 향상시키기 위해, human-refined caption이 있는 high quality video data를 추가합니다. 마지막으로, LLM을 이용하여 생성한 video caption을 refine 하고 summarize 합니다. 이를 통해 Perception Encoder의 contrastive video finetuning에서 사용하는 large video dataset을 생성할 수 있습니다.
- Phase 1: Base Video Caption (PLM)
PE를 vision encoder로 사용하고 Llama를 language decoder로 사용하는 multimodal large language model인 PLM을 설계합니다. PLM을 large scale image & video dataest으로 학습합니다. 이때 64.7M 개의 image and video를 사용하여 학습을 진행하며, natural image, chart, documents, exocentric, egocentric video 등 다양한 분야의 data를 활용합니다.
- Phase 2: PLM + Refined Data

captioning performance를 더욱 향상시키기 위해, PLM model로 caption을 생성하고 사람이 refine 한 265K 개의 video를 준비합니다. 이후 base PLM model을 이 data로 finetuning 하여 captioning quality를 크게 향상시킵니다.
- Phase 3: LLM Summarization
마지막으로 PLM video caption과 Llama 3.2 image-only frame caption, video 제목과 설명 등 video metadata를 incorporate 하여 최종 aligned video caption을 합성합니다. video metadata는 image와 video captioning model을 통해 cover 되지 않는 knowledge를 포함하는 경우가 많습니다. 따라서 이렇게 video metadata를 결합하면 더욱 포괄적인 caption을 생성할 수 있습니다. Llama 3.3 70B model을 이용하여 video caption, frame caption, video metadata를 summarize 하여 final caption을 생성합니다.
- Training with Recaptioned Videos
unified image and video encoder를 개발하는 것이 goal입니다. image encoder를 이용하여 video를 encoding 하기 위해, 저자들은 video clip에서 8개 frame을 sampling 하고 image encoder를 통해 frame-level embedding을 추출합니다. 이후 average pooling을 이용하여 video embedding을 얻습니다. 이 embedding과 text encoder를 통해 구한 encoded video caption을 이용하여 contrastive learning을 수행합니다. 매우 간단한 방식임에도 불구하고, strong joint image-video encoder를 생성할 수 있었습니다.
Core Results
- Zero-shot Image Results

위 표를 통해 zero-shot image classification / retrieval benchmark 성능을 보여줍니다. SigLIP2와 JFT-3B를 baseline으로 사용하여 비교를 진행합니다. 저자들의 model이 다른 contrastive model보다 모든 zero-shot task에서 뛰어난 성능을 달성하는 것을 볼 수 있습니다. 이는 JFT-3B나 WebLI dataset을 사용하지 않고도 3년 만에 SOTA를 달성했습니다. 동시에 image-text retrieval task에서도 SOTA 성능을 달성하였으며, fine-grained classification에서도 유의미한 성능 향상을 달성하였습니다.
video data engine을 통해 상대적으로 작은 양의 video data와 합성한 caption으로 학습하여 image benchmark에서도 성능 향상을 달성하였습니다. 생성한 caption은 high level detail이 존재하고 align 되어 있기 때문에, zero-shot retrieval도 큰 성능 향상이 있었습니다. 이러한 결과를 통해 잘 align 된 video-text data로 학습하는 것이 video performance 뿐만 아니라 image에 대한 성능도 향상을 이끌어 낸다는 것을 알 수 있었습니다.
- Zero-shot Video Results

8개 frame을 sampling 하여 동작하는 video encoder를 이용하여 평가를 진행하였으며, 결과는 위와 같습니다. video로 finetuning을 진행한 저자들의 model은 full temporal attention을 수행하는 video model보다 video classification을 잘 수행할 뿐만 아니라, 거의 SOTA video retrieval을 달성합니다. 이러한 결과는 video data engine의 중요성을 강조하고 zero-shot video classification, retrieval 성능 향상에 기여한다는 것을 의미합니다. 그리고 더욱 적은 양의 video data를 이용하여 joint image-video encoder를 구축하였습니다.
Conclusion
본 연구에서 저자들은 Perception Encoder (PE)를 제안합니다. 이는 기존의 뛰어난 baseline보다 zero-thos image recognition을 잘 수행할 뿐만 아니라 video에 대해서도 뛰어난 성능을 달성합니다. 또한 multimodal language model에도 이용할 수 있음을 보였으며, object detection에서도 SOTA를 달성함을 보였습니다. 이러한 결과를 통해, PE는 단순한 contrastive vision-language pretraining을 확장하여, 광범위한 downstream vision task를 효과적으로 해결할 수 있음을 보였습니다.