Vision & Multimodal · NeurIPS 2022 2022

Flamingo: 퓨샷 학습을 위한 비전-언어 모델

고정된 NFNet + Chinchilla를 Perceiver Resampler와 gated cross-attention으로 연결 — 인터리빙 이미지·텍스트로 퓨샷 비전-언어.

Jean-Baptiste Alayrac, Jeff Donahue, Pauline Luc, Antoine Miech, Iain Barr, et al. · DeepMind

flamingomultimodalfew-shotperceivercross-attention

1. 핵심 요약

2. 왜 중요한가 — 쉬운 설명

30초 비유

사진 전문가(고정 비전 인코더) 와 작가(고정 LLM) 를 그대로 두고, 둘 사이에 두 부품만 새로 답니다: (1) 사진을 64장 메모로 요약하는 요약기, (2) 작가가 그 메모를 얼마나 반영할지 조절하는 볼륨 노브(처음엔 0으로 꺼 둠).

무엇을 제안했나

  • Perceiver Resampler — 크기가 제각각인 비전 특징을 이미지당 64 토큰으로 압축.
  • Gated Cross-Attention — y ← y + tanh(α)·XAttn(...), α를 0에서 시작해 서서히 키움(안정적 통합).
  • 이미지·텍스트 인터리빙 프롬프트로 GPT-3식 few-shot을 멀티모달로.

그래서 무엇이 달라졌나

  • 태스크별 파인튜닝 없이 몇 개 예시만으로 VQA·캡셔닝 수행(VQAv2 32-shot 67.6%).
  • 고정 백본 + 경량 커넥터 계보의 대표 — BLIP-2·GPT-4V 등의 선구.

더 공부할 가치가 있을까?

  • 멀티모달을 한다면 필수 — BLIP-2 바로 앞 계보라, 둘을 함께 보면 “커넥터 설계”의 두 갈래가 보입니다.
  • 먼저 볼 것 — CLIP, Chinchilla.

3. 배경 · 비전-언어 퓨샷의 난관

GPT-3는 몇 개의 예시만으로 새 언어 태스크를 풉니다. 멀티모달에서 같은 걸 하려면: 이미지·텍스트를 한 시퀀스에 자연스럽게 인터리빙하고, 프롬프트마다 다른 이미지 수를 다루며, 비디오(프레임 시퀀스)까지 처리해야 합니다. Flamingo의 목표는 “비전-언어의 GPT-3”.

왜 Flamingo인가

비전-언어 퓨샷의 3가지 난관 + 목표. 카드를 클릭하세요.

GPT-3가 언어에서 그랬듯, 몇 개의 예시만으로 새 시각 태스크를 푸는 퓨샷 비전-언어 모델. 태스크별 파인튜닝 없이 VQA·캡셔닝·분류를 수행합니다.

인터리빙 · 가변 이미지 수 · 비디오 · 목표. 카드를 클릭하세요.

4. Perceiver Resampler

Z=CrossAttn(R,  [ Xf ; R ])∈R64×dZ = \mathrm{CrossAttn}\big(R,\; [\,X_f\,;\,R\,]\big) \in \mathbb{R}^{64 \times d}
64개 학습 latent 쿼리 R이 비전 특징을 압축
Perceiver Resampler수식 상세 →
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

Perceiver Resampler

가변 크기 비전 특징 → 고정 64 토큰/프레임. 프레임 수·해상도를 바꿔 보세요.

입력 (가변)
2561 × 256
→
64학습 latent 쿼리
→
출력 (고정)
641 × 64
압축비4.0×
LLM이 보는 토큰64
cross-attn 비용O(64)

64개 학습 latent 쿼리가 [비전 특징 ; latent]에 크로스-어텐션해 정보를 뽑습니다. 출력 길이는 이미지 수·해상도와 무관하게 항상 64/프레임 — 그래서 LLM의 cross-attention 비용이 고정됩니다.

프레임 수·해상도를 바꿔도 출력은 64/프레임 고정.

비전 인코더 출력은 [T_img × H_feat × W_feat × D]로 이미지 수·해상도에 따라 길이가 제각각입니다. 64개의 학습 가능한 latent 쿼리가 [비전 특징 ; latent]에 크로스-어텐션해 항상 [T_img × 64 × d]를 냅니다. 덕분에 LLM에 붙는 cross-attention 비용이 입력 크기와 무관하게 고정됩니다.

5. Gated Cross-Attention

y←y+tanh⁡(α)⋅CrossAttention(y, xvis)y \leftarrow y + \tanh(\alpha)\cdot \mathrm{CrossAttention}(y,\, x_{\mathrm{vis}})
논문 §3.2 — α 초기값 0으로 안정적 시작
게이트 크로스-어텐션수식 상세 →
기호를 클릭하면 의미를 볼 수 있습니다
단계별 설명

Gated Cross-Attention

y = y + tanh(α) · CrossAttention(y, x_vis). α를 움직여 게이트를 여닫아 보세요.

y= y +tanh(α) = 0.000·CrossAttn(y, x_vis)
비전 무시비전 완전 통합
α0.00
tanh(α)0.000
비전 기여0%

α = 0 → tanh(α) = 0. 게이트가 닫혀 있어 새로 삽입된 cross-attention·FFN이 LLM 출력에 전혀 영향을 주지 않습니다. 즉 학습 시작 시점의 Flamingo = 원래 언어 모델 그대로 → 발산 없이 안정적으로 출발.

게이팅은 FFN 블록에도 별도 α로 적용됩니다. 고정된 Chinchilla LM 사이에만 이 gated 블록을 끼워 넣고, 학습되는 파라미터는 이 블록 + Resampler 뿐입니다.

α를 움직여 tanh 게이트를 여닫아 보세요.

고정된 Chinchilla 층 사이에 새 gated cross-attention + FFN 블록(XATTN-DENSE)을 끼워 넣습니다. 게이팅 계수 tanh(α)는 α=0에서 시작 → 초기에는 비전 정보가 LLM 출력에 전혀 영향을 주지 않아, 학습 시작 시점의 Flamingo가 원래 언어 모델과 정확히 같습니다. 학습이 진행되며 층마다 다른 값으로 α가 커지고 비전 정보가 점진적으로 통합됩니다.

6. 인터리빙 멀티모달 입력

인터리빙 퓨샷 프롬프트

이미지·텍스트를 섞은 예시를 앞에 두면 GPT-3식 in-context 학습이 멀티모달로 확장됩니다. 샷 수를 바꿔 보세요.

🧑‍🔬이 사람은 누구인가요?아인슈타인입니다.
👩‍🔬이 사람은?퀴리 부인입니다.
👨‍🚀이 사람은?→ 닐 암스트롱입니다.

2개의 <image>+Q+A 예시가 “짧게 이름만 답하라”는 태스크 형식을 알려줍니다. 파인튜닝 없이 4-shot 63.1% → 32-shot 67.6%로 오릅니다.

각 <image>는 Resampler를 거친 64 토큰. 어텐션 마스크는 각 텍스트가 바로 앞의 이미지 하나만 보도록 제한합니다.

샷 수를 바꿔 in-context 학습을 확인하세요.

<image> 텍스트 <image> 텍스트 ... <image> ? 형식으로 이미지와 텍스트를 자유롭게 섞습니다. 각 <image>는 Resampler를 거친 64 토큰이고, 어텐션 마스크는 각 텍스트가 바로 앞의 이미지 하나만 보도록 제한합니다. 학습 데이터는 M3W(웹에서 크롤한 인터리빙 문서), ALIGN(18억 이미지-텍스트 쌍), LTIP(3.12억 장문 캡션), VTP(2,700만 짧은 비디오)의 혼합입니다.

7. 아키텍처 · 모델 크기

아키텍처

❄ 고정 · 🔥 학습. 블록을 클릭하세요.

🖼 / 🎬
→→
텍스트
학습Resampler + XATTN
고정NFNet + Chinchilla
Flamingo-80B~10B 학습

🔥 고정 LM 층 사이에 삽입한 gated cross-attention + FFN. y = y + tanh(α)·XAttn(y, x_vis), α 초기값 0. 학습됨.

3B / 9B / 80B는 각각 Chinchilla 1.4B / 7B / 70B + NFNet-F6 + 추가 gated 층. 사전학습 백본을 얼려 두어 적은 학습 파라미터로 대형 모델을 만듭니다.

❄ 고정 · 🔥 학습. 블록을 클릭하세요.
ModelLM (frozen)Vision (frozen)Total
Flamingo-3BChinchilla-1.4BNFNet-F6~3B
Flamingo-9BChinchilla-7BNFNet-F6~9B
Flamingo-80BChinchilla-70BNFNet-F6~80B
LM·비전 인코더는 고정, Perceiver Resampler + Gated Cross-Attention만 학습.

비전 인코더: NFNet-F6 (Normalizer-Free ResNet) — 배치 정규화 없이 대규모 학습, ALIGN 데이터로 CLIP식 대조 사전학습 후 고정. 언어 모델: Chinchilla 전 층 고정 → 언어 능력 보존, 재앙적 망각 방지. 사전학습 백본을 얼려 두어 상대적으로 적은 학습 파라미터로 대형 멀티모달 모델을 구성합니다.

8. 실험 · 의의

퓨샷 (0–32 shot)

  • VQA-v2: 0-shot 56.3 · 4-shot 63.1 · 32-shot 67.6 (파인튜닝 이전 SOTA 80.9)
  • COCO 캡셔닝: 0-shot 84.3 · 4-shot 93.1 CIDEr (지도학습 SOTA 138.0)
  • 16개 벤치 중 다수에서 퓨샷만으로 이전 제로/퓨샷 SOTA를 능가; 규모(3B→80B)와 샷 수가 늘수록 성능 상승.

퓨샷 성능

태스크별 파인튜닝 없이 컨텍스트 예시만으로. 탭을 전환하세요.

Flamingo 0-shot
56.3
Flamingo 4-shot
63.1
Flamingo 32-shot
67.6
Prior SOTA (FT)
80.9

VQA-v2. 샷이 늘수록 단조 상승: 0 → 56.3, 4 → 63.1, 32 → 67.6. 태스크별로 파인튜닝한 이전 SOTA(80.9)에는 못 미치지만, 단일 모델·무학습으로 근접.

VQA-v2 · COCO CIDEr · 규모 탭.

의의 · 영향

  • 인터리빙 멀티모달 이해의 선구자 — 이미지·텍스트를 자유롭게 섞은 컨텍스트
  • Perceiver Resampler: 이후 많은 VLM에서 커넥터로 채택 (BLIP-2 Q-Former 등과 계보)
  • 비디오+언어 통합 처리 최초 시연
  • GPT-4V·Gemini 등 상업 멀티모달 LLM 설계에 영향; 오픈소스 재현 OpenFlamingo

한계

분류 태스크는 대조 모델(CLIP)에 뒤짐 · 프롬프트 예시 순서·구성에 민감 · 고정 LM의 편향·환각을 상속.

IdeaRole
Perceiver ResamplerVariable vision features → 64 fixed tokens/image
Gated cross-attentiontanh(α), α=0 → gradual, stable vision integration
Interleaved inputImage/text mixed → GPT-3-style multimodal few-shot
Frozen backbonesNFNet + Chinchilla frozen; train only connectors
Data mixM3W + ALIGN + LTIP + VTP (image & video)

이해도 점검

보기를 골라 정답과 해설을 확인하세요. 채점은 이 페이지 안에서만 이뤄집니다.

0 / 5 정답
  1. 1. Gated cross-attention에서 게이팅 계수 tanh⁡(α)\tanh(\alpha)의 α\alpha를 0으로 초기화하는 이유는?

  2. 2. Perceiver Resampler가 하는 일은?

  3. 3. Flamingo에서 실제로 학습되는 파라미터는?

  4. 4. Flamingo가 GPT-3식 퓨샷을 멀티모달로 확장하는 방식은?

  5. 5. Flamingo의 퓨샷 결과 해석으로 옳은 것은?