9、BEiT-3:把图像当作“外语”的通用多模态基础模型
BEiT-3:把图像当作“外语”的通用多模态基础模型(Multiway Transformers + Masked Data Modeling)
BEiT-3 是一类“通用多模态基础模型”(general-purpose multimodal foundation model):用统一的骨干网络与统一的预训练目标,同时学习视觉、文本、以及图文对三种数据形态,并将同一个预训练得到的模型迁移到图像分类、检测、分割、VQA、图文检索、图像描述等多种下游任务上。
它最有辨识度的核心观点是:把图像视作一种“外语”——Imglish(image language)。也就是说,图像并不是用额外的专用任务(对比学习、生成、匹配等多目标混合)来“硬对齐”文本,而是先把图像离散化成 token 序列,然后像做语言建模那样做掩码预测,让模型在统一目标下学会视觉语义、语言语义、以及跨模态语义对应关系。
1. 背景与意义:为什么需要 BEiT-3 这种“大一统”多模态模型?
近年来预训练呈现出明显的融合趋势:语言模型、视觉模型、视觉-语言模型正在走向统一结构、统一数据、统一任务形式,以获得更强泛化能力与更低的下游适配成本。
但在 BEiT-3 提出之前,多模态预训练经常遇到几类共性问题:
-
架构不统一:不同任务常常依赖不同结构范式
- 双编码器(Dual-Encoder)适合检索(图搜文/文搜图),但对深层交互推理不友好
- 编码器-解码器(Encoder-Decoder)擅长生成(caption、对话),但检索效率弱
- 融合编码器(Fusion-Encoder)擅长深度理解(VQA、NLVR2),但难以高效检索
结果是:同一个“多模态预训练”往往需要在下游手动改结构、共享不足、难以“融会贯通”。
-
预训练目标复杂:常见做法是对比学习 + 生成式任务 + 匹配任务的组合;目标多、工程复杂、训练难稳定。
-
数据可复现性问题:一些强结果依赖私有/闭源数据或难以复现的数据清洗流程。
BEiT-3 的目标可以概括为一句话:
用统一架构 + 单一预训练目标 + 公开数据,训练一个可在视觉与视觉-语言多任务上高效迁移的通用多模态基础模型。
2. 核心创新一:Multiway Transformers ——“共享注意力 + 模态专家 FFN”的统一骨干
2.1 Multiway Transformers 的直觉:哪些能力该共享?哪些能力该分开?
多模态学习里有一个核心矛盾:
- 跨模态对齐与融合需要共享的表征空间与交互机制(例如注意力层用于建立 token-to-token 的关联)
- 模态特异性表达(图像的局部纹理、空间结构;文本的句法与语义组合)又需要各自更合适的参数化
Multiway Transformers 的关键设计是把这两件事拆开做:
- Self-Attention 共享:让模型用同一套注意力机制学习统一的交互与对齐规律
- FFN 多路专家(Experts):用不同的 FFN 专家来处理不同模态的特异性信息
因此,在第 lll 层,结构可以被理解为:
- 共享的注意力模块:所有模态 token 都通过同一套 Attention 参数更新
- 多路 FFN:根据 token 的模态类型,把它路由到对应专家 FFN
你可以把注意力理解为“建立关系网”,把 FFN 理解为“对每个 token 做非线性语义变换”。
BEiT-3 选择共享关系网(跨模态同构),但让语义变换对模态更敏感(专家化)。
2.2 形式化描述:token 路由到专家 FFN
设第 lll 层输入 token 表示为 H(l)∈RN×dH^{(l)} \in \mathbb{R}^{N \times d}H(l)∈RN×d,其中 NNN 是 token 数,ddd 是隐藏维度。
1)共享注意力更新(所有 token 共用同一 Attention):
H^(l)=H(l)+Attn(LN(H(l))) \hat{H}^{(l)} = H^{(l)} + \text{Attn}\left(\text{LN}\left(H^{(l)}\right)\right) H^(l)=H(l)+Attn(LN(H(l)))
2)多路专家 FFN(按模态路由):
- 视觉 token 使用视觉专家 FFNV\text{FFN}_VFFNV
- 文本 token 使用语言专家 FFNL\text{FFN}_LFFNL
- 在特定高层(如顶层若干层),还引入视觉-语言专家 FFNVL\text{FFN}_{VL}FFNVL 用于更强融合
对第 iii 个 token,若其模态标签为 mi∈{V,L,VL}m_i \in \{V, L, VL\}mi∈{V,L,VL},则:
Hi(l+1)=H^i(l)+FFNmi(LN(H^i(l))) H^{(l+1)}_i = \hat{H}^{(l)}_i + \text{FFN}_{m_i}\left(\text{LN}\left(\hat{H}^{(l)}_i\right)\right) Hi(l+1)=H^i(l)+FFNmi(LN(H^i(l)))
这里的“Multiway”本质是:Attention 一条路,FFN 多条路。这使得同一骨干可以天然支持多种使用方式,而不需要换结构。
2.3 为什么“顶层引入 VL-FFN”很关键?
直观上,底层更偏向建模局部模式与基础词/patch 表示;高层更偏向语义组合与任务决策相关的抽象表征。把跨模态深融合的专家放在顶层,能让模型在需要深交互的任务(VQA、NLVR2 等)上更充分地利用跨模态组合能力,同时在纯视觉/纯文本任务中也不“强迫融合”。
3. 核心创新二:统一预训练目标 —— Masked Data Modeling(MDM)
3.1 从 MLM/MIM 到 MDM:把“掩码预测”推广到多模态
BEiT-3 把 BERT 的 MLM(Masked Language Modeling)与视觉领域的 MIM(Masked Image Modeling)统一推广到多模态,形成单一目标:Masked Data Modeling(MDM)。
核心思想是:无论输入是图像、文本还是图文对,都统一为 token 序列,然后随机掩码一部分 token,让模型预测被掩码的 token。
统一视角下的数据形态:
- 图像:先用视觉 tokenizer 把图像离散成视觉 token(Imglish),然后做掩码预测
- 文本:SentencePiece 分词得到文本 token,然后做掩码预测
- 图文对:把图像 token 序列与文本 token 序列拼接(类似“平行句”),统一做掩码预测,从而隐式学习对齐
3.2 形式化目标:掩码 token 的负对数似然
设输入 token 序列为 x=(x1,x2,…,xT)x = (x_1, x_2, \dots, x_T)x=(x1,x2,…,xT),掩码集合为 M⊂{1,…,T}\mathcal{M} \subset \{1, \dots, T\}M⊂{1,…,T},模型参数为 θ\thetaθ。
MDM 的训练目标可写为:
LMDM(θ)=−∑i∈Mlogpθ(xi∣x∖M) \mathcal{L}_{\text{MDM}}(\theta) = - \sum_{i \in \mathcal{M}} \log p_{\theta}\left(x_i \mid x_{\setminus \mathcal{M}}\right) LMDM(θ)=−i∈M∑logpθ(xi∣x∖M)
其中 x∖Mx_{\setminus \mathcal{M}}x∖M 表示“可见 token”(未被掩码的部分)。
这个公式同时覆盖了:
- 文本的 MLM(xix_ixi 是词/子词 token)
- 图像的 MIM(xix_ixi 是离散化后的视觉 token)
- 图文对的 MVLM(masked vision-language modeling)
3.3 “把图像当外语”到底意味着什么?
关键在于:图像必须先变成可预测的离散 token。这样掩码预测就能像语言一样工作。
一个非常直观的类比:
- 在 BERT 里,模型通过上下文预测被遮住的单词
- 在 BEiT-3 里,模型通过周围 patch token 与文本 token 的上下文,预测被遮住的视觉 token
当输入是图文对时,模型可以利用文本上下文来预测视觉 token,也可以利用视觉上下文来预测文本 token。跨模态对齐并不需要额外的对比损失或匹配损失,而是自然内生于“预测缺失 token”的任务中。
4. 为什么单一 MDM 目标能替代复杂的多目标组合?
很多强多模态模型(例如 CLIP 类对比学习、CoCa 类对比+生成混合)需要大 batch size 才能稳定训练、提升对比学习效果。MDM 的优点在于:
- 目标统一:只有一个掩码预测目标,训练流程更简单
- 对 batch size 不那么极端依赖:掩码预测不需要大量负样本对比
- 更像“生成式预训练”的统一范式:对图像、文本、图文对一视同仁地做建模
5. 训练规模:模型、参数与数据如何做大?
BEiT-3 采用大规模 Transformer(例如 40 层 Multiway Transformer,参数规模达到十亿级),并在公开数据上进行统一预训练。
5.1 参数由谁构成?为什么“只激活部分参数”很实用?
Multiway Transformers 的参数可以按模块拆开理解:
- 共享 self-attention:所有模态都会用到
- 视觉专家 FFN:处理视觉 token
- 语言专家 FFN:处理文本 token
- 视觉-语言专家 FFN:用于顶层融合
这带来一个直接好处:
在纯视觉任务中,你只需要激活共享注意力 + 视觉专家(以及任务头),不必强制加载语言专家;在纯语言任务中同理。这使得同一个预训练模型在不同任务/场景中可以更灵活地配置推理与微调成本。
5.2 数据混合:三种数据同一训练目标
在统一训练中,batch 里可以混合:
- 纯图像样本(用于学习视觉 token 的分布与结构)
- 纯文本样本(用于学习语言语义与组合)
- 图文对样本(用于学习跨模态对应关系)
这样训练得到的共享注意力会同时看到三种“世界”,专家 FFN 则在各自模态上补足表达差异。
6. 迁移方式:同一个骨干如何“一鱼多吃”?
Multiway Transformers 的结构使得 BEiT-3 训练完后可以切换为多种工作模式,覆盖不同任务形态。
6.1 纯视觉编码器(Vision Encoder)
适用任务:图像分类、检测、分割等。
做法:输入只有图像 token,路由到视觉专家 FFN。
案例:语义分割(ADE20K)
语义分割需要密集预测(每个像素/patch 一个类别),模型需要保留空间细节与局部语义。
BEiT-3 的视觉专家 FFN 对视觉 token 的非线性变换更适配这种“空间结构 + 语义类别”的表达,同时共享注意力提供全局上下文建模能力,因此能作为强视觉 backbone 连接到分割头上微调。
6.2 纯文本编码器(Language Encoder)
适用任务:MLM 类、文本理解与下游语言任务(取决于具体适配方式)。
做法:输入只有文本 token,路由到语言专家 FFN。
6.3 融合编码器(Fusion Encoder)
适用任务:VQA、NLVR2 等需要深交互推理的任务。
做法:输入图像 token + 文本 token 的拼接序列,顶层 VL-FFN 提供更强跨模态融合变换。
案例:NLVR2 视觉推理为什么提升明显?
NLVR2 常要求模型对图像与描述做逻辑判断(例如组合关系、计数、空间关系)。
这类任务不仅需要“看见物体”,更需要把“语言条件”与“视觉证据”在高层语义空间里组合推理。顶层的 VL-FFN 相当于给模型一个“专门做跨模态语义组合”的专家模块,使得高层决策更自然。
6.4 双编码器(Dual Encoder)用于高效检索
适用任务:图文检索(image-to-text / text-to-image)。
做法:图像与文本分别编码成向量,再计算相似度用于检索。
在检索场景,核心是高效:你希望离线编码库向量,在线只算一次 query embedding 并做向量检索。双编码器范式因此非常常见。
可以用最常见的余弦相似度表达检索打分:
s(I,T)=fI(I)⋅fT(T)∥fI(I)∥ ∥fT(T)∥ s(I, T) = \frac{f_I(I) \cdot f_T(T)}{\|f_I(I)\| \, \|f_T(T)\|} s(I,T)=∥fI(I)∥∥fT(T)∥fI(I)⋅fT(T)
其中 fIf_IfI、fTf_TfT 分别是图像编码器与文本编码器输出的向量表示。
Multiway Transformers 的优势在于:你不需要额外训练一个完全不同的模型来做检索,直接“切模式”即可。
6.5 Seq2Seq 生成模式
适用任务:图像描述生成(captioning)、部分生成式 VQA/对话等。
做法:把模型组织成 encoder / decoder 或者类似 seq2seq 的形式做微调(具体实现细节属于工程适配层,这里关注它为何可行:统一骨干学到的视觉 token 与语言 token 表示,能为生成提供语义基础)。
7. 实验现象:哪些任务提升最显著?它说明了什么?
从任务谱系看,BEiT-3 在多类任务上都表现强,但尤其值得关注的是:
- 视觉推理(如 NLVR2)提升显著:这类任务强调跨模态语义组合与逻辑判断
- VQA、检索、captioning 等典型 VL 任务稳定提升:说明统一掩码建模确实学到跨模态对齐
- 视觉主干任务(检测、分割、分类)也很强:说明 Multiway 结构并没有牺牲视觉建模能力,反而通过共享注意力 + 视觉专家得到更强 backbone
这组现象背后的关键逻辑是:
统一的 MDM 目标让模型在预训练阶段就同时学习了“视觉语言化(Imglish token)”“语言语义建模”“跨模态补全”,而 Multiway Transformers 又让共享与特异性在同一个网络里得到合理分工。
因此它既像强视觉 backbone,又像强视觉-语言融合模型,还能切成高效检索双编码器。
8. 关键问题总结
8.1 架构设计上的核心创新是什么?如何支持多任务统一处理?
- 核心创新:Multiway Transformers
- 共享 self-attention:学习跨模态对齐与通用交互规律
- 多路专家 FFN:分别处理视觉/语言/视觉-语言的特异性表达
- 结果:同一个预训练骨干可被组织成视觉编码器、语言编码器、融合编码器、双编码器检索器、以及生成式(seq2seq)结构,从而覆盖大量视觉与视觉-语言任务,而无需为每类任务单独设计新的预训练骨干。
8.2 预训练任务相对 CLIP/CoCa 一类方法的简化与优势?
- BEiT-3 用**单一的掩码预测目标(MDM)**统一覆盖图像、文本和图文对
- 不再依赖多目标混合(对比 + 生成 + 匹配)来“堆效果”,训练流程更简单
- 掩码预测不需要极端依赖超大 batch 的负样本对比机制,训练工程压力更小
- 在公开数据上获得强迁移表现,提升可复现性与可推广性
8.3 为什么能在 NLVR2 等复杂推理任务上表现突出?
可以从三点理解:
- 图文对被当作“平行句”统一建模:掩码预测迫使模型利用另一模态的信息补全当前模态,从而自然学习对齐与语义互证
- 顶层 VL-FFN 提供强融合能力:在需要深交互推理的任务里,高层跨模态专家能更有效地完成语义组合与决策
- 大规模参数与多源公开数据:扩大模型容量与数据覆盖,使得统一目标能学到更通用、更稳健的跨任务表征
9. 一个更直观的例子:图文对 MDM 如何“隐式对齐”?
设图文对输入序列为:
x=[v1,v2,…,vNv, t1,t2,…,tNt] x = [v_1, v_2, \dots, v_{N_v}, \; t_1, t_2, \dots, t_{N_t}] x=[v1,v2,…,vNv,t1,t2,…,tNt]
其中 viv_ivi 是视觉 token(Imglish),tjt_jtj 是文本 token。
如果我们掩码了一部分文本 token,比如 tkt_ktk,模型的训练目标包含:
−logpθ(tk∣v1,…,vNv, t1,…,tk−1,tk+1,…,tNt) -\log p_{\theta}\left(t_k \mid v_1,\dots,v_{N_v}, \; t_1,\dots,t_{k-1}, t_{k+1},\dots,t_{N_t}\right) −logpθ(tk∣v1,…,vNv,t1,…,tk−1,tk+1,…,tNt)
这迫使模型在预测 tkt_ktk 时“看”图像 token 与上下文文本 token;
同理,如果掩码视觉 token vrv_rvr,则:
−logpθ(vr∣v1,…,vr−1,vr+1,…,vNv, t1,…,tNt) -\log p_{\theta}\left(v_r \mid v_1,\dots,v_{r-1}, v_{r+1},\dots,v_{N_v}, \; t_1,\dots,t_{N_t}\right) −logpθ(vr∣v1,…,vr−1,vr+1,…,vNv,t1,…,tNt)
这就构成了跨模态的“互补补全”学习机制:
不需要显式的对比学习负样本,也能通过“补全缺失信息”形成对齐。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)