跨模态连接器范式:谷歌模型Flamingo回顾

Flamingo:桥接视觉模型与文本LLM

多模态模型研究历史上的另一个里程碑工作是谷歌DeepMind 的 Flamingo,其定位是少样本(few shots)多模态:给它一段“图像/视频与文字交错”的提示(prompt),它就用自回归的方式生成答案或描述,相当于直接建模 p(y∣x)文本在前、图像/视频在后交错,带因果掩码)——这使它很像 LLM的GPT-3 发展阶段,靠“看示例”学会一项新视觉语言任务,无需再做任务特定微调。

视觉编码器 → Perceiver Resampler → 门控跨注意力进 LLM

1) 视觉编码器(Vision Encoder)
Flamingo 使用对比学习预训练为视觉编码(从像素到特征),并在主训练阶段冻结这个编码器的权重;视频以 1 FPS 采样成帧后编码,再把帧级特征拼接成时空序列。

2) Perceiver Resampler(把“多少帧、任意分辨率”的特征,重采样成固定少量 token)
视觉特征出来通常是“很多 patch × 很多帧”的大表;直接拿去和语言做跨注意力会很贵。Flamingo 在视觉侧加了一个 Perceiver Resampler:用一组可学习的潜在查询向量去跨注意力“吸收”时空特征,产出固定数量(论文里默认 64 个,固定成 64 个 token 是效果与吞吐的折中)的视觉 token。这么做一来把算力从“随分辨率和帧数爆炸”变成了常数级,二来也给后续的跨注意力提供了稳定的接口。

Resampler 就是一只“漏斗”——把视觉编码器吐出的、分辨率和帧数都不固定的大量特征,自适应压成固定少量的视觉 token,好让后面的语言模型每一步都能用常数成本“看图/看片”。

3) 冻结的大语言模型 + 门控跨注意力层(gated xattn-dense)
门控(gated) 就是一只“阀门”——把新加入的跨注意力输出乘上一个可学习的开合系数,一开始几乎关着,训练中逐步放开,这样既不破坏原来强大的语言模型,又能稳稳学会“在需要时看图”。这两者配合,才能实现“冻结强视觉 + 冻结强 LLM,只训桥”的稳定方案。

语言侧起点是一个预训练的自回归 LLM(最大实验用的是 Chinchilla 70B),论文的策略是把预训练的 LM 与视觉编码器都冻结,然后在 LM 的层间插入新建的“门控跨注意力 + 前馈”层(gated xattn-dense),由这些新增层去“看”Resampler 输出的视觉 token,最后仍以“预测下一个词”的目标训练整个 VLM。训练一开始的输出等价于原来的纯文本 LM,随后再逐步“放开阀门”,稳定过渡到“会看图的 LM”。

冻结语言模型并不自动保证“行为不被打扰”。因为我们往层间新插入了跨模态残差分支,哪怕主干参数不动,随机初始化的跨注意力分支和小前馈分支的输出一旦加回到 LLM 的残差上,成为该层的新隐藏态,就会改变激活分布与输出分布。Flamingo 用“门控跨注意力”把新增信号当作可开合的阀门:初始几乎全关,模型行为与原 LLM 等价;训练中阀门逐步打开,视觉信息才被稳妥地注入。

跨注意力分支(xattn)的 Query 来自当前层的文本隐藏态,Key/Value 来自 Resampler 输出的视觉 token。前馈分支(dense/FFN)是一个小的前馈网络(Adapter 类似),作用在文本隐藏态上。这两条支路都不在原 LLM 里,是后来“插”进去的,所以它们的参数是随机初始化。

训练数据与目标:只用“网页级弱标注”的三类混合

Flamingo 用三类“来自网页、无需人工专门标注”的数据混合,以最大似然训练“视觉条件下的文本”。

    • M3W(MultiModal MassiveWeb):从约 4330 万网页解析出图文交错的序列,合计 1.85 亿图像、182GB 文本。构造样本时在文本里插入 <image> 标签、<EOC> 等特殊记号,随机截取 256 个 token,并拿最多 5 张图片进入该片段;再按“只让每个文本 token 看它前面最近的一张图”去做跨注意力的掩码。

    • 图文对(ALIGN、LTIP)与视频文(VTP):ALIGN 约 18 亿图文对但噪声较大,LTIP 3.12 亿图文对、描述更长,VTP 2700 万短视频配文(平均约 22 秒)。这三类单图/单视频样本在预处理时统一加 <image> 标签与 <EOC>,并对基准集做去重。

    • 目标函数:对上述多源数据做加权负对数似然的混合训练;还在 M3W 上引入一个小技巧:以 1/2 的概率让文本去注意“下一张图”而不是“上一张图”,把网页里图文前后关系的不确定性当成数据增强

冻结两个编码器,效果最佳

作者系统比较了“解冻 vs 冻结”的做法:

    • 直接解冻视觉或语言主干,会出现典型的灾难性遗忘,整体指标下滑;

    • 也尝试过把语言端与 MassiveText(Chinchilla 的语料)联合再训练以抵消遗忘,但效果仍不如全程冻结 LM、只训练“Resampler + 门控跨注意力”的方案。对 80B 规模的 Flamingo 来说,这样还能把约九成参数留在冻结状态,训练经济性更好。

能力与表现:少样本任务全面开花

16 个多模态基准上,Flamingo 在仅用少数示例的设置下全面刷当时的 SOTA,而很多对手是“每个任务各自微调、且用多得多标注数据”的方法。最大的 Flamingo 以 Chinchilla 70B 为基,形成约 80B 参数的视觉语言模型(VLM);接口上就是把“图/视频与文字交错”的提示喂给模型,再让它生成答案或描述。

这里的“少样本多模态”说的是:在统一的“图像/视频与文字交错”的提示里,只给少量示例(few shots 几条就够),Flamingo 就能直接用自回归方式完成一批通用视觉–语言任务,而不需要再做任务特定的微调。它像 GPT 在纯文本里靠 few-shot 学会新任务那样,把这个范式成功搬到了“看图/看片并回答”的场景。

下面用常见任务说明它到底“会些什么”,以及 few-shot 是怎么起效的。

    1. 图像描述(caption)
      给两三条“〈图〉→一句好的描述”的示例,再放一张新图,让模型续写描述。Flamingo会把视觉特征当作“前文语境”,续写出风格一致的描述。优点是开放词汇、能融合世界知识。

    2. 视觉问答(VQA,开放式或多选)
      提示里交替给若干 “〈图〉Q: … A: …” 的对,让模型在新图上按同样格式答题。few-shot 的作用是把“问法”和“答句式样”教给模型(比如要不要只给一个词,要不要解释)。Flamingo在常识型、属性识别、简单关系判断上表现稳健。

    3. 文档/界面问答(接近 OCR-free 的理解)
      把发票、PPT页、网站截图当输入,在示例里演示“问定位明确的问题、给简短答案”的范式(如“日期/金额/按钮名称”)。模型并不做传统OCR,但能从视觉特征+语言提示里对齐关键信息。提示要尽量指向“可见文本”,避免让它臆测隐含字段。

    4. 视频问答 / 动作识别 / 时序理解
      把视频抽帧成一串图(Flamingo内部会把这些帧压成固定数量的视觉token),示例里体现“时间词”和“动作线索”(如“刚开始…随后…最后…”)。它能回答“谁做了什么”“先后顺序是什么”“有没有循环动作”等。

另一类常见任务是分类,可以当成生成做。不微调分类头,直接在提示里写:〈图〉Q: 这属于下面哪一类?[长颈鹿/骆驼/驯鹿] A: … 再给两三例“标准答案只有一个词”的示范。这相当于把传统 closed-set 分类,改成“文本选项 + 生成一个类名”的 few-shot 设置,方便覆盖长尾标签或细粒度子类。

Flamingo 的“少样本多模态”,不是某个单一任务的窍门,而是一种统一接口——把“看见的东西”接入一个已经很会“说”的大脑里,用极少的在地示例,让它在同一条对话式提示里切换,可完成多种视觉–语言任务。

和“CLIP 时代”的根本不同

CLIP 学的是跨模态公共表征,推理多靠“相似度检索/匹配”;Flamingo 则是条件生成,在 LM 里真正“读图后继续说话”。它不替换已有的强视觉/强语言模型,而是用 Resampler + 门控跨注意把两者“温和地桥接起来”,这正是“连接器范式”的精髓。

小结

Flamingo 用最小侵入的方式,把冻结的视觉与冻结的 LLM接在一起:视觉侧先被 Perceiver Resampler 重采样为少量视觉 token;语言侧在层间插入门控跨注意力去“看图”;训练只用网页规模的图文/视频文弱标注,直接最大化“视觉条件下的语言似然”。这条路线带来了三个现实好处:(i)少样本迁移:任务只需几例提示即可启用;(i i)工程友好:大部分参数冻结、可并行扩展、算力可控;(i i i)统一接口:同一模型天然支持图、视频与文本交错的“对话式”使用方式。

 

 

发布者

立委

立委博士,多模态大模型应用咨询师。出门问问大模型团队前工程副总裁,聚焦大模型及其AIGC应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理