[Paper Review] Flamingo: a Visual Language Model for Few-Shot Learning

2025. 7. 29. 04:57·Paper Review/Multimodal
Flamingo: a Visual Language Model for Few-Shot Learning(2022 NeurIPS)
Jean-Baptiste Alayrac, Jeff Donahue, Pauline Luc, Antoine Miech 외 23명
https://arxiv.org/abs/2201.12086

 

오늘은 대규모 거대 언어 모델과 비전 인코더를 결합해 이미지와 텍스트를 동시에 처리하며, 적은 수의 예시만으로도 새로운 태스크에 빠르게 적응하는 Few-Shot Learning 특화 멀티모달 모델인 Flamingo를 다룬 논문인 Flamingo : a Visual Language Model for Few-Shot Learning 을 리뷰해보도록 하겠습니다!

 

📌 Abstract & Introduction

 

기존의 Vision-Language 모델들은 대부분 대규모의 지도 학습 데이터를 활용해 사전 학습한 후, 각 작업에 맞춰 별도로 fine-tuning을 수행하는 방식이 일반적이었습니다. 하지만 이러한 방식은 수천에서 수만 건의 Annotation된 고품질의 데이터를 요구하며, 작업별 하이퍼파라미터 조정과 많은 계산 자원이 필요하다는 한계가 있었습니다.

 

CLIP 같은 대조학습 기반 모델들 역시 제로샷 능력이 강회되긴 했으나 맥락 이해에만 치중되어 있고, 생성에는 부적합하다는 문제점이 있었습니다.

 

당시 개발되던 최신 대형 언어 모델들은 단 몇 개의 예시만을 프롬프트로 제공받아 새로운 작업을 수행할 수 있는 좋은 few-shot 학습 능력을 공개해가고 있었는데, 본 논문의 연구자들은 이에서 가능성을 보고 이를 멀티모달 영역으로 확장시켜 오늘 살펴볼 Flamingo라는 모델을 만들었습니다. 

 

Flamingo는 소수의 Annotated 데이터만으로도 새로운 작업에 빠르게 적응할 수 있는 멀티모달 학습의 도전 과제를 해결하고자 제안된 Visual Language Model 입니다. Flamingo는 이미지와 텍스트가 임의로 섞인 시퀀스를 입력으로 받아 자연스러운 텍스트를 생성할 수 있는 능력을 가지며, 시각 정보에 조건을 걸어 질문에 답하거나, 장면을 설명하거나, 분류하는 등 다양한 작업을 수행할 수 있습니다.

 

Flamingo는 사전학습된 비전 전용 모델과 대형 언어 모델을 중간 연결 아키텍처로 효과적으로 결합하였고, 고해상도 이미지나 영상도 Perceiver 기반 구조를 통해 효율적으로 처리하였습니다. 학습에는 별도의 주석 없이 웹에서 수집한 대규모 멀티모달 데이터를 활용하였으며, 이를 통해 일반적인 Vision-Language 이해 능력을 확보하였습니다.

 

Flamingo는 별도의 fine-tuning 없이도 다양한 이미지, 비디오 기반 과제에서 few-shot 방식으로 새로운 작업에 적응할 수 있으며, 16개 평가 과제 중 6개에서 기존 fine-tuned 모델보다 더 나은 성능을 보였습니다. 주요 내용은 아래 섹션들에서 조금 더 자세히 살펴보도록 하겠습니다.

 

📌 Approach

Flamingo Architecture

 

Flamingo는 텍스트와 이미지, 비디오가 섞인 입력을 받아 자유 형식의 텍스트를 생성하는 비전-언어 모델입니다. 모델은 사전학습된 비전 언어 모델을 효과적으로 연결하기 위해 두 가지 핵심 구조를 사용하는데요, 먼저 비전 인코더에서 추출된 시공간적 특징을 Perceiver Resampler가 고정된 개수의 시각 토큰으로 변환합니다. 이후, 이 시각 토큰들은 사전학습된 언어 모델 내부에 새로 추가된 Cross Attention 레이어를 통해 언어 생성 과정에 반영됩니다.

 

Flamingo는 GPT-3처럼 In-context few-shot learning이 가능하며, 이미지,비디오와 텍스트가 섞인 시퀀스를 기반으로 다음 토큰의 확률을 예측하는 방식으로 동작됩니다. 모델은 다양한 데이터셋의 혼합으로 학습되어, 텍스트와 시각 정보를 함께 이해하고 생성하는 데 강점을 가집니다.

 

Visual processing and the Perceiver Resampler

Flamingo는 사전 학습된 NFNet-F6 비전 인코더를 사용해 이미지와 비디오에서 시각 특징을 추출합니다. 비디오는 초당 1프레임씩 샘플링해 개별적으로 인코딩하며, 시공간적 특징에 시간 임베딩을 더해 구성됩니다.

 

이렇게 얻은 가변 크기의 Vision feature들은 Perceiver Resampler에 입력되어, 고정된 개수인 64개의 시각 토큰으로 압축됩니다. Perceiver Resampler는 Transformer 기반의 모듈로, 효율적으로 비전 특징을 요약해 언어 모델에 전달하는 역할을 합니다. 실험 결과, 해당 리샘플러 구조가 단순 Transformer나 MLP보다 우수한 성능을 보였습니다.

 

Conditioning frozen language models on visual representations

 

텍스트 생성은 Perceiver Resampler가 만든 representation을 조건으로 하는 Transformer 디코더에서 이루어집니다.

 

기존에 학습된 텍스트 전용 언어 모델 블록들은 고정시키고, 그 사이사이에 시각 정보를 반영하는 새로운 게이트형 Cross Attention 블록을 삽입하여 학습을 진행합니다. 해당 게이트는 초기값이 0으로 설정되어, 학습 초기에는 원래 언어 모델과 동일한 출력을 내고 점진적으로 시각 정보를 반영하도록 하여 학습 안정성을 높이는데 기여합니다.

 

Flamingo는 3가지 크기의 모델을 실험했고, 비전 인코더와 Perceiver Resampler 크기는 고정하여 모델 규모에 맞춰 조정하였습니다.

 

Multi-visual input support: per-image/video attention masking

Flamingo는 텍스트와 이미지, 비디오가 섞인 순서를 모델에 입력할 때, 각 텍스트 토큰이 바로 앞에 나온 이미지나 비디오의 시각 토큰에만 주의를 기울이도록 마스킹을 합니다. 이렇게 하면 시퀀스 내의 여러 Vision 정보를 유연하게 다룰 수 있고, 훈련 시에는 최대 5개의 이미지까지만 사용했지만 평가 시에는 최대 32쌍의 시각-텍스트 입력도 효과적으로 처리할 수 있다고 주장하였습니다. 해당 방식이 모든 이전 이미지를 한꺼번에 참조하는 것보다 더 좋은 성능을 보였습니다.

 

Training on a mixture of vision and language datasets

Flamingo는 웹에서 수집한 다양한 유형의 데이터로 학습됩니다. 대표적으로, 웹페이지에서 텍스트와 이미지가 섞인 M3W 데이터셋, ALIGN과 LTIP등의 대규모 이미지-텍스트, 그리고 VTP로 대표되는 비디오-텍스트 쌍이 있습니다. M3W 데이터는 HTML 구조를 이용해 이미지 위치를 텍스트에 삽입하는 방식으로 구성되었습니다.

 

학습은 각 데이터셋별 텍스트의 negative log-likelihood loss를 가중합한 다중 objective 방식으로 이루어지고, 데이터셋별 가중치를 조절하는 것이 성능에 중요하였습니다. 또한, 여러 데이터셋에서 나온 그래디언트를 누적하여 업데이트하는 방식이 보다 효과적임을 확인하였습니다.

 

Task adaptation with few-shot in-context learning

Flamingo는 학습이 완료된 후, 이미지 혹은 비디오와 텍스트가 섞인 멀티모달 프롬프트를 조건으로 받아 Vision 과제를 수행합니다. GPT-3와 유사하게, (이미지, 텍스트) 또는 (비디오, 텍스트) 형태의 예시들을 쿼리 입력 앞에 배치하여 새로운 작업에 빠르게 적응하는 능력을 평가합니다.

 

정답이 정해져 있지 않은 경우에는 beam search를 통해 응답을 생성하고, 선택지가 있는 경우에는 각 후보에 대해 log-likelihood 점수를 계산해 평가를 진행합니다. 또한, 이미지 없이 텍스트 예시만으로 구성된 프롬프트를 통해 제로샷 일반화 능력도 실험합니다.

 

📌 Experiments

Flamingo 모델은 다양한 멀티모달 작업에 빠르게 적응할 수 있도록 설계되었으며, 이를 검증하기 위해 총 16개의 이미지,비디오,언어 벤치마크를 사용해 실험을 진행했습니다. 이 중 5개는 개발용으로 활용되어 모델 설계와 하이퍼파라미터 튜닝에 사용되었으며, 나머지 11개는 편향 없는 few-shot learning 성능을 평가하기 위해 활용되었습니다.

 

모든 평가에서 동일한 하이퍼파라미터를 사용하고, 작업에 따라 네 가지 프롬프트 템플릿을 적용하여 실험을 진행하였습니다. few-shot 성능은 support-query 구조로 측정되었고, 개발 벤치마크는 검증과 테스트에 각각 support/query를 나누어 사용했습니다. 

 

Few-shot learning on vision-language tasks

Flamingo는 16개의 벤치마크에서 기존의 제로샷 및 퓨샷 기법들을 큰 차이로 능가했으며, 작업당 단 4개의 예시만으로도 효과적인 적응 성능을 보였습니다. 일부 작업에서는 수십만 개의 정답 데이터를 활용해 파인튜닝된 당시 최신 기법들보다도 더 나은 성능을 보였었고, 설계에 사용되지 않은 벤치마크에서도 일반화 성능이 매우 우수한 모습을 보였습니다. 또한 모델 크기와 예시 수가 많을수록 성능이 향상되는 모습을 보였습니다.

 

Fine-tuning Flamingo as a pretrained vision-language model

 

Flamingo는 본래 few-shot learning에 초점을 맞췄지만, 더 많은 Annotated 데이터를 사용할 경우 파인튜닝을 통해 성능을 추가로 향상시킬 수 있음을 확인했습니다. 특히 비전 백본을 해제하고 고해상도 입력에 맞춰 작은 학습률로 짧게 파인튜닝한 결과, 기존 퓨샷 성능을 뛰어넘어 5개 과제에서 새로운 최고 성능을 달성했습니다.

 

Ablation studies

 

Ablation study에서는 Flamingo-3B 모델을 벤치마크 5개에서 4-shot 설정으로 평가했습니다. 성능에 가장 큰 영향을 준 요소는 훈련 데이터 구성으로, 이미지-텍스트가 섞인 M3W 데이터를 제거하면 성능이 17% 이상 하락했고, 일반적인 이미지-텍스트 쌍이나 비디오-텍스트 쌍을 제거해도 성능이 감소하는 모습을 보였습니다. 또한, gradient accumulation 전략이 기존 방식보다 더 효과적임을 보였습니다.

 

시각 조건 연결 구조에서는 0으로 초기화된 tanh 게이팅이 없을 경우 성능이 4.2% 하락하고, 학습도 불안정해지는 모습을 보였습니다. 여러 조건부 연결 구조를 비교한 결과, GATED XATTN-DENSE 구조가 가장 효과적임을 보였습니다. 계산 효율성과 성능 간 트레이드오프 측면에서는, GATED XATTN-DENSE 블록을 모든 층에 넣는 게 가장 좋지만, 네 번째마다 넣는 방식이 66% 빠르고 성능 저하도 1.9%에 불과해 효율적이었습니다.

 

또한, Perceiver Resampler가 동일 파라미터 기준에서 MLP나 일반 Transformer보다 더 좋은 성능과 속도를 보였습니다. 더불 시각 인코더 사용에 따라 성능 차이가 두드러져 강력한 비전 백본의 중요성이 파악되었습니다.

 

마지막으로, 언어 모델을 고정하지 않으면 성능이 크게 떨어졌으며, 이는 새로운 목표로 학습하는 과정에서 기존의 사전학습 지식을 잊는 catastrophic forgetting 현상 때문으로 추측된다고 본 논문의 연구자들은 주장하였습니다. 따라서 본 논문에서는 언어 모델을 고정하는 것이 가장 효과적인 전략으로 확인되었습니다.

 

📌 Conclusion

Flamingo는 사전학습된 비전 모델과 대형 언어 모델을 중간 연결 아키텍처를 통해 결합하며, 웹에서 수집한 대규모 비주석 데이터로 학습되어 범용적인 Vision Language 이해 능력을 획득한 모델입니다. 이를 통해 다양한 이미지 및 비디오 기반 과제에 대해 fine-tuning 없이도 뛰어난 성능을 보였으며, 일부 과제에서는 기존 SOTA 대비 1000배 적은 데이터로 더 나은 결과를 달성하기도 했습니다.

 

그러나 몇 가지 한계도 있습니다. 사전학습된 언어 모델을 기반으로 하기 때문에 그 약점인 할루시네이션이나 긴 시퀀스를 처리하는 능력 저하, 낮은 샘플 효율성 등의 문제를 그대로 계승하며, 분류 성능은 대조 학습 기반 모델에 비해 떨어진다는 문제점이 있고, 또한 In-context 학습은 오히려 입력 예시 수가 많아질수록 성능과 계산 비용 측면에서 비효율적일 수 있으며, 예시 구성에도 민감하게 반응한다는 특징이 있습니다.

 

추가로 Flamingo는 사회적으로 언어 및 시각적 편향, 유해 발화, 개인정보 유출 등 기존 대형 언어 모델과 유사한 위험을 수반한다는 문제점이 제시되기도 하지만, 이러한 위험 완화에 있어서 Flamingo의 few-shot 능력은 오히려 대응 수단이 될 수 있다는 가능성도 제시됩니다. 

 

📌 느낀점(논문을 읽으면서..)

백본부터 학습의 연결 다리 역할을 하는 perceiver resampler와 gated attention 등 구조가 꽤나 복잡하고, 부가적으로 다양한 개별 요소들이 섞여있어 디테일들을 잘 이해하는 것이 어려웠지만, VLM 쪽 논문들을 읽기 시작한 이후, 처음으로 대형 언어 모델의 특장점을 제대로 활용하기 시작한 논문으로 생각되어 매우 흥미롭게 보며 읽었던 논문인 것 같습니다!

 

📌 References

https://cocoa-t.tistory.com/entry/Flamingo-a-Visual-Language-Model-for-Few-Shot-Learning  

https://www.youtube.com/watch?v=InSyuzRWFzc  

 

'Paper Review > Multimodal' 카테고리의 다른 글

[Paper Review] LLaVA : Visual Instruction Tuning  (0) 2025.08.13
[Paper Review] BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models  (0) 2025.08.06
[Paper Review] BLIP : Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation  (0) 2025.07.28
[Paper Review] Whisper : Robust Speech Recognition via Large-Scale Weak Supervision  (0) 2025.07.21
[Paper Review] Align before Fuse: Vision and Language Representation Learning with Momentum Distillation  (0) 2025.07.14
'Paper Review/Multimodal' 카테고리의 다른 글
  • [Paper Review] LLaVA : Visual Instruction Tuning
  • [Paper Review] BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
  • [Paper Review] BLIP : Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
  • [Paper Review] Whisper : Robust Speech Recognition via Large-Scale Weak Supervision
gaegulcode
gaegulcode
무지한 올챙이가 성숙한 개구리 AI 리서처가 되는 과정
  • gaegulcode
    개굴코드
    gaegulcode
  • 전체
    오늘
    어제
    • 전체 (49) N
      • Paper Review (32) N
        • NLP (7)
        • CV (10)
        • LLM (4)
        • Multimodal (8)
        • Synthetic Data Generation (2) N
        • Etc. (1)
      • Coding Test (11)
      • ML & DL (5)
        • 패턴인식과 머신러닝 (3)
        • HuggingFace (1)
        • Reinforcement Learning (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 관리
    • 글쓰기
  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
gaegulcode
[Paper Review] Flamingo: a Visual Language Model for Few-Shot Learning
상단으로

티스토리툴바