原文摘要 · English Abstract
We introduce Flamingo, a family of Visual Language Models (VLM) with few-shot learning ability. We propose key architectural innovations to bridge powerful pretrained vision-only and language-only models, handle sequences of arbitrarily interleaved visual and textual data, and seamlessly ingest images or videos as inputs. A single Flamingo model can achieve a new state of the art with few-shot learning, simply by prompting the model with task-specific examples.
概要
少样本视觉语言学习此前要么靠 CLIP 式对比模型零样本迁移,只给相似度分数、做不了开放式生成;要么靠有监督预训练加微调,需要成千上万条标注数据、逐任务调参。Flamingo 把冻结的视觉编码器与冻结的大语言模型桥接起来:用 Perceiver Resampler 把视觉特征压缩为固定数量的视觉 token,再用门控交叉注意力层注入语言模型,使其具备类似 GPT-3 的 in-context few-shot 能力——给几个图文示例即可适配问答、描述等开放式任务,在 16 个多模态基准上取得少样本 SOTA。
此前的视觉语言方法走两条路:大规模有监督预训练加特定任务微调,需要成千上万条标注数据、逐任务调参,资源消耗大;或以 CLIP 为代表的对比式模型,可零样本迁移,但只给相似度分数,做不了生成,只能覆盖分类这类封闭任务。GPT-3 证明纯文本 LM 靠 few-shot prompting 就能适配新任务,Flamingo 要把这能力扩展到视觉领域,但语言模型不认识图像,需要架设桥接结构,同时不破坏两个冻结模型已积累的知识。
关键贡献
- 提出 Flamingo 系列视觉语言模型,能够接受任意交错的图像/视频与文本输入,仅凭少量输入输出样例即可完成开放式的视觉理解任务
- 提出 Perceiver Resampler 模块,将视觉编码器输出的可变数量时空特征压缩为固定的 64 个视觉 token,大幅降低视觉-文本交叉注意力的计算开销
- 提出 Gated Cross-Attention Dense 层,用 0 初始化的 tanh 门控把新训练的跨模态层安全插入冻结语言模型,保证初始化时模型退化为原始 LM 并提升训练稳定性
- 设计单图像因果注意力掩码,使模型训练时只需接触最多 5 张图的序列,推理时却能泛化到 32 张图/视频的少样本场景而无需重新训练
- 证明了 M3W 交错图文网页数据集(约 4300 万网页)与图文对、视频文本对混合训练对少样本能力至关重要,消融显示去掉 M3W 综合得分会下降超过 17%
- 在 16 个图像/视频语言基准上以少样本方式刷新 SOTA,其中 6 个任务仅用 32 个样例即超过用千倍数据微调的此前 SOTA,进一步微调后再在 5 个任务上刷新 SOTA
方法详解(完整做法)
总体思路
Flamingo 的目标是让视觉语言模型具备像 GPT-3 一样「看几个例子就上手新任务」的能力。做法是把两个已经训练好、能力很强但各自独立的模块——一个只处理图像/视频的视觉编码器和一个只读文本的大语言模型——原样冻结,中间插入两个新模块做桥接:Perceiver Resampler 把视觉特征压缩成固定数量的视觉 token;Gated Cross-Attention Dense 层把这些视觉 token 灌入语言模型的每一层,让语言模型在预测下一个词时能「看到」图片。整条链路是:图像/视频 → 视觉编码器抽特征 → Perceiver Resampler 压缩成 64 个 token → 与文本交错送入语言模型 → 自回归生成文本。训练完成后不需要为新任务再调权重,只要把任务示例和查询拼成一段交错的图文 prompt 喂给模型即可。
视觉编码器与 Perceiver Resampler
视觉编码器采用预训练并冻结的 Normalizer-Free ResNet(NFNet-F6),用图文对上的双项对比损失预训练;图像取最后一层的 2D 特征网格拉平成 1D 序列,视频则按 1FPS 采帧、逐帧编码后叠加习得的时间位置编码得到 3D 时空网格再拉平。由于一张图/一段视频产生的特征数量随分辨率、帧数变化很大,直接送入语言模型代价过高,于是引入 Perceiver Resampler:学习一组固定数量(64 个)的可学习潜查询(latent query),让它们对视觉特征做交叉注意力,把任意大小的视觉特征「重采样」成固定长度的 64 个视觉 token,从而把视觉-文本交叉注意力的计算复杂度锁定在一个常数规模上。
门控交叉注意力层(Gated XATTN-Dense)
语言模型主干保持完全冻结,新插入的模块是穿插在原有 Transformer 层之间的 Gated XATTN-Dense block:这些新层从零训练,对 Perceiver Resampler 输出的视觉 token 做交叉注意力,再接一个前馈子层。为了不破坏冻结 LM 原有的知识,新层的输出在加回残差之前会乘上一个可学习标量 (初始化为 0)过 tanh 再叠加:
由于 ,训练刚开始时模型的输出与未插入新层前的原始语言模型完全一致,新引入的视觉信息随着 被逐步学习而「打开」。
为什么要用 0 初始化门控(直觉)
如果新插入的跨模态层一开始就以随机权重直接参与残差相加,冻结 LM 在预训练阶段学到的分布会被这些未经训练的层立刻打乱,导致训练初期梯度偏大、损失震荡,论文的消融实验显示去掉这个 0 初始化门控会让综合得分下降 4.2%。tanh 门控相当于给新模块一个「渐进接入」的开关:训练早期几乎不发声,随着 学到合适的值再逐渐发挥作用,这是在「保留预训练知识」和「引入新能力」之间做的工程折中——它体现了论文反复强调的、尽量不破坏两个冻结模型已积累知识的设计哲学,而不只是复述架构本身。
多图像/视频的因果注意力掩码
一段训练/推理样本里可能交错出现多张图和多段文字,如果每个文字 token 都能看到所有出现过的图,计算量会随图片数量线性增长,也难以泛化到训练时没见过的图片数目。Flamingo 让每个文字 token 的跨模态注意力只指向「序列中紧邻在它之前的那一张图/视频」的视觉 token,对应似然建模里 的定义:
对更早图片的依赖仍可通过语言模型自身的自注意力间接获得。这个「单图交叉注意力」设计让模型训练时只用最多 5 张图/序列,推理时却能顺畅扩展到 32-shot,而不需要重新训练。
训练数据混合与多目标优化
Flamingo 完全用网页抓取数据训练,不使用任何为机器学习专门标注的数据,混合了三类数据集:从约 4300 万个网页抽取的图文交错数据集 M3W(按 DOM 中图文相对位置插入 <image>/<EOC> 标记);ALIGN 的 18 亿图文对加上自建的 3.12 亿规模 LTIP 图文对(追求更长更高质量的描述);以及 2700 万条视频-文本对 VTP。三类数据集按各自权重 加权求和做负对数似然训练:
消融显示去掉 M3W 会让综合得分骤降超过 17%,去掉图文对数据集也会下降近 9.8%,证明「交错图文网页」和「成对图文/视频」两类数据缺一不可;梯度按数据集累积(而非轮询式切换)训练效果也明显更好。
小结
Flamingo 的关键是「两个冻结的强模型 + 两个新训练的桥接模块」:Perceiver Resampler 把视觉信息压缩成固定长度的 token,Gated XATTN-Dense 用 0 初始化门控把它安全地注入语言模型,从而在不破坏预训练知识的前提下,把语言模型的 in-context few-shot 能力扩展到了图像和视频理解任务上。
实验与关键数据
在 16 个图像/视频-语言基准评测,5 个作为开发集,其余 11 个未参与设计决策,估计无偏性能。开放式任务用 beam search 解码,多选任务用对数似然打分。同一权重靠 0/4/32 样本 prompt 超过此前 zero/few-shot 方法,6 个任务超千倍数据微调 SOTA,微调后再刷新 5 个任务。
关键数据
影响与局限
Flamingo 确立了「冻结预训练视觉编码器 + 冻结大语言模型 + 可训练桥接模块」这一范式,首次把语言模型的 in-context few-shot 能力系统性地迁移到图像与视频理解任务上,是 GPT-4V、LLaVA、IDEFICS、OpenFlamingo 等后续多模态大模型工作的重要奠基。
局限与不足
Flamingo 的开放式生成仍然依赖冻结的语言模型,继承了大语言模型常见的幻觉、刻板印象和有害内容风险,视觉输入的加入并不能保证生成结果的事实性。其次,模型做分类式任务(如 ImageNet 图像分类)时依靠开放式文本生成再打分,推理速度比传统对比模型(如 CLIP)慢得多,不适合需要大规模零样本分类的实时场景。此外,in-context few-shot 学习对 prompt 中示例的顺序、数量、模板选择较为敏感,论文固定了评测用的四套模板,但也承认这类超参数会影响最终得分,泛化性存疑。最后,训练完全依赖网页规模抓取的图文/视频数据,存在版权、隐私和数据分布偏斜的风险,且 M3W 等数据集的构建细节未完全开源,第三方难以复现完整训练管线。