AI 基建
0%
第二部分 · 生成式与多模态架构 · 第 15 章

多模态模型:融合与生成

作者Changkun Ou
阅读时长约 12 分钟

多模态带来的是接口,不是某一种架构。图像以网格形式进入系统,文本是序列,音频是带时间的帧,视频则同时包含两个空间维度和一个时间维度。系统必须决定如何编码每种输入、各种表示在哪里交互、如何生成每种输出,以及服务路径能承受多少成本。这些决定彼此相关,却不能相互替代。一个统一模型可以对文本和图像使用不同损失;一个模块化系统也可以让各组件在共享表示空间中训练。

本章沿着这些接口展开。先介绍成对图文训练,再比较让语言模型读取视觉特征的连接器。随后分开讨论图像条件与图像生成,把成本核算扩展到视频,最后拆开所谓「统一多模态模型」其实隐藏着几项彼此独立的选择。

分开考虑各项设计选择

先回答四个问题,架构才不会混乱:

决策 问题 常见选择
输入表示 模型的输入是什么? 像素、编码器特征、离散码、连续潜变量
融合 不同模态在哪里交换信息? 输入投影、交叉注意力、早期融合
输出模型 用什么目标生成该模态? 下一词元预测、扩散、流匹配
系统组合 哪些组件共享权重和部署? 专用工具、相连的双塔模型、单一主干

连续图像潜变量不等于离散图像词元。早期融合也不等于端到端产品集成。把这几条轴分开,才不会把某一道边界上的改进误认为整个系统的改进。

学习图像与文本的配对几何

对比语言-图像预训练(CLIP),也就是让图像与文本成对学习的训练方法,让开放词表视觉识别变得实用 (Radford et al. 2021)。给定一个含 BB 对匹配图文的批次,设 viv_itit_i 分别是经单位归一化的第 ii 幅图像嵌入与第 ii 段文本嵌入。两者缩放后的相似度为

sij=vitjτ,s_{ij}=\frac{v_i^\top t_j}{\tau},

其中,τ>0\tau>0 是可学习的温度。CLIP 在图像到文本和文本到图像两个方向上都使用交叉熵:

LCLIP=12Bi=1B[logexp(sii)j=1Bexp(sij)+logexp(sii)j=1Bexp(sji)].\mathcal{L}_{\mathrm{CLIP}} = -\frac{1}{2B}\sum_{i=1}^{B} \left[ \log\frac{\exp(s_{ii})}{\sum_{j=1}^{B}\exp(s_{ij})} + \log\frac{\exp(s_{ii})}{\sum_{j=1}^{B}\exp(s_{ji})} \right].

第一项要求图像 ii 检索出与它配对的文本,第二项则要求文本 ii 检索出配对图像。批内其他样本都作为负例,但非对角图文对仍可能在语义上匹配。CLIP 用 4 亿个网络图文对训练这一目标。推断时,写成提示词的类别名会变成文本嵌入,图像再按与这些嵌入的相似度分类。因此,提示词的措辞和预训练分布仍然是分类器的一部分。

SigLIP 改变的是批次目标,并不是嵌入的含义。它把每个图文组合视为独立的正例或负例,使用逻辑回归目标,因而不需要覆盖整个批次的 softmax 归一化 (Zhai et al. 2023)。这会改变分布式训练和小批次下的行为,却不能证明图像嵌入和文本嵌入具有相同分布。对 CLIP 风格表示空间的研究发现了模态间隙:即使匹配对之间有用的余弦相似度,两种模态仍会占据分开的区域 (Liang et al. 2022)。CLIP 对齐的是配对样本,并不强制两种模态具有相同分布。

这种几何间隙不同于连接器的接口不匹配。CLIP 的检索头产生一个全局嵌入,视觉语言模型却常常从编码器的较早层读取一组空间网格特征。连接器需要把该网格的宽度、长度和语义转换成语言模型能接收的形式,却不需要让两种全局嵌入的分布完全相同。

把视觉接入语言模型

对齐后的编码器能产生视觉特征,但语言模型仍需要一座通往自身隐藏空间的桥。三个有影响力的系统把这座桥放在了不同深度:

cluster_connectors 三种替代连接器 image 图像 vision 视觉编码器 image->vision flamingo Flamingo Perceiver 重采样器 + 门控交叉注意力 vision->flamingo blip BLIP-2 Q-Former 32 个学习查询 llava LLaVA 线性层或 MLP 输入投影 language 语言模型 llava->language
图 15.1. 三种连接器模式。Flamingo 重采样视觉特征,并在语言模型内部通过门控交叉注意力反复读取。BLIP-2 使用学习得到的 Q-Former 瓶颈。LLaVA 把图块特征投影到语言模型的输入序列。冻结与训练的组件会随系统和训练阶段而变。

Flamingo 冻结预训练视觉编码器和语言模型,把长度可变的视觉序列重采样为 64 个输出,再在语言模型的多个层中插入新训练的门控交叉注意力 (Alayrac et al. 2022)。门控参数初始化为零,因此新增路径起初不会改变语言模型。语言序列可以在多层中反复读取视觉特征,所以 Flamingo 能处理交错的图像、视频和文本。

BLIP-2 也从冻结的双塔开始,但它的查询 Transformer,也就是 Q-Former,用 32 个学习查询从视觉编码器中提取固定长度的摘要 (Li et al. 2023)。它先做视觉语言表示预训练,再做视觉到语言的生成预训练。固定的查询数让接口成本可以预测,也造成了明确的信息瓶颈。

LLaVA 选择了更浅的路径。初版连接器只用一个学习线性投影,把 CLIP 图块特征映射到语言模型的嵌入宽度 (Liu et al. 2023)。LLaVA-1.5 把它换成两层 MLP,并使用 336 像素的 CLIP 编码器 (Liu et al. 2024)。对齐阶段只学习投影,预训练双塔保持冻结。指令微调阶段会更新语言模型和投影,视觉编码器仍然冻结。连接器的名称本身不能说明哪些权重参与训练。

连接器 语言模型看到的视觉序列 主要取舍
Flamingo 交叉注意力 语言模型多个层中的重采样视觉记忆 可反复读取丰富信息,但需插入更多层
BLIP-2 Q-Former 由 32 个查询生成的固定长度摘要 成本可预测,但存在固定瓶颈
LLaVA 投影 输入端的投影图块序列 桥接简单,成本随图块数增长

计算视觉序列长度

设一幅图像经填充后高为 HH、宽为 WW,再切成边长为 PP 的正方形图块。单次裁剪的 视觉 Transformer(ViT) 大约会输出

Nvis=HPWPN_{\mathrm{vis}} = \left\lceil\frac{H}{P}\right\rceil \left\lceil\frac{W}{P}\right\rceil

个图块位置,这里尚未计入类别词元、池化或词元丢弃。其中,NvisN_{\mathrm{vis}} 是视觉序列长度。336×336 像素的图像配合边长 14 像素的图块,会产生 24×24=57624\times24=576 个图块位置,这正是 LLaVA-1.5 的设置 (Liu et al. 2024)。

2026-08-03T23:27:26.342193 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 250 300 350 400 450 500 550 600 650 图像边长(像素) 0 500 1000 1500 2000 视觉图块位置数 图块边长 14 图块边长 16
图 15.2. 单张正方形裁剪中,视觉图块位置数随图像边长除以图块边长的平方增长。图中数值是图像尺寸可整除时的精确算术,并非基准测量或端到端模型成本。

分块会把单个网格公式变成多个网格之和。LLaVA-NeXT 把若干个 336 像素图块与一个全局视图结合起来 (Liu et al. 2024)。Qwen2-VL 把原生分辨率的图像和视频映射为可变长视觉序列,合并每个 2×2 空间特征组,并把旋转位置扩展到时间、高度和宽度三条轴 (Wang et al. 2024)。这些设计有助于处理文档、图表和小物体,也会增加预填充工作量和键值缓存。在标准稠密注意力中,组合文本与视觉前缀的预填充注意力含有序列长度的二次项;之后每个生成文本词元都会读取随前缀长度线性增长的缓存。视觉词元数是一项服务决策,不只是编码器细节。

视觉指令微调补上行为层。LLaVA 先用约 59.5 万个 CC3M 图文对训练投影器,两个预训练塔都保持冻结。随后,它把图像的文字说明,包括图像描述与边界框,交给一个纯语言 GPT-4,生成约 15.8 万个指令样本 (Liu et al. 2023)。GPT-4 没有看到像素,学生模型之后才使用相应图像训练。投影对齐后,这些数据用来教会模型对话格式与任务行为。这个区分很重要:配对预训练学习对应关系,连接器训练学习接口,指令微调则教模型如何回答。改变其中一个阶段不能取代另外两个。

引导图像生成器

理解图像与生成图像面对的是不同的输出问题。文生图扩散先编码提示词,再在该表示的条件下对像素或连续潜变量去噪。无分类器引导用来控制采样遵循条件的强度 (Ho and Salimans 2022)。训练时,模型有时会收到空条件。采样时,一种常见约定为

ϵ^θ(zt,c)=ϵθ(zt,)+s[ϵθ(zt,c)ϵθ(zt,)].\widehat{\epsilon}_\theta(z_t,c) = \epsilon_\theta(z_t,\varnothing) + s\left[ \epsilon_\theta(z_t,c)-\epsilon_\theta(z_t,\varnothing) \right].

其中,ztz_t 是步骤 tt 的带噪状态,cc 是文本条件,\varnothing 是空条件,ϵθ\epsilon_\theta 是模型的噪声预测。在这种约定下,s=0s=0 给出无条件预测,s=1s=1 给出普通条件预测,s>1s>1 则沿同一方向继续外推。论文和库有时会改写这条直线的参数,所以只有连同公式,引导尺度才有明确含义。

较大的 ss 常会改善提示遵循度,或提高筛选后样本的观感质量,但也会减少多样性,有时还会放大伪影。引导尺度不是置信度。它通常还需要分别计算有条件与无条件预测,即使实现把两者放在同一批次中。

选择图像表示与训练目标

图像生成器首先要选择在哪个空间建模:

工作表示 示例路线 后果
像素 级联扩散 无需学习压缩,但空间成本高
连续自编码器潜变量 潜空间扩散或修正流 成本较低,但受重建上限约束
离散码本索引 自回归或掩码词元模型 可使用语言模型目标,但受量化上限约束
语义图像嵌入 unCLIP 先验加解码器 把语义选择与渲染分开

Imagen 展示了像素空间级联:先生成 64 像素图像,再用独立的扩散超分辨率阶段放大到 256 和 1024 像素 (Saharia et al. 2022)。在它研究的范围内,扩大冻结 T5 文本编码器带来的收益高于扩大图像扩散模型。潜空间扩散则先训练自编码器,再在其连续潜网格中执行去噪 (Rombach et al. 2022)。SDXL 沿这一路线扩大规模,使用 26 亿参数的 UNet、两个文本编码器、尺寸与裁剪条件,以及可选的精修阶段 (Podell et al. 2024)。DALL-E 2 使用另一种分解:先验模型把文本映射为 CLIP 图像嵌入,扩散解码器再在该嵌入的条件下渲染图像 (Ramesh et al. 2022)。

数据质量的影响有时会超过架构差异。DALL-E 3 训练一个图像描述模型,用详细的合成描述替换简短的网页文本,再把这些新描述混入生成器训练 (Betker et al. 2023)。论文的消融实验显示,合成描述占比增加时,提示遵循度也随之改善。这只说明在该设置中改善了监督,不代表合成标签总是更好。

修正流使用了不同的训练目标。按从数据到噪声的约定,设

xt=(1t)x0+tϵ,u=ϵx0,LRF=E[vθ(xt,t,c)u22].x_t=(1-t)x_0+t\epsilon, \qquad u=\epsilon-x_0, \qquad \mathcal{L}_{\mathrm{RF}} = \mathbb{E}\left[\left\lVert v_\theta(x_t,t,c)-u\right\rVert_2^2\right].

其中,x0x_0 从数据分布采样,ϵ\epsilon 是高斯噪声,t[0,1]t\in[0,1] 指出直线条件路径上的位置,cc 是文本条件,uu 是该端点对的目标速度,vθv_\theta 是学习得到的速度场。生成时,系统从噪声端向数据端对这个速度场进行数值积分。多个端点对的平均速度仍可能形成弯曲的边缘流场,因此直线训练路径并不保证一步采样。

Stable Diffusion 3 把修正流、偏向中间噪声水平的采样权重与 MMDiT 结合起来。MMDiT 为文本和图像保留独立参数,同时允许两条词元流双向交互 (Esser et al. 2024)。根据供应商公告,FLUX.1 后来采用由多模态块和并行扩散 Transformer 块组成的 120 亿参数混合架构,并以流匹配训练 (Black Forest Labs 2024)。流匹配改变的是目标;速度仍由采样器、函数求值次数、自编码器和硬件共同决定。

离散路线把图像网格转换为码本索引。VQGAN 把学习量化器与自回归 Transformer 结合起来 (Esser et al. 2021);ViT-VQGAN 改进了量化器,Parti 则把文本条件下的索引预测扩展到 200 亿参数 (Yu et al. 2022; Yu et al. 2022)。VAR 不再从左到右扫描展平图像,而是逐级预测更精细的词元图 (Tian et al. 2024)。它报告的速度与质量比较来自类别条件 ImageNet,因此只能证明这是另一种生成调度,不能证明它是通用文生图胜者。OpenAI 之后把 GPT-4o 的原生图像生成归类为自回归,但没有公布其分词器、分解方式或解码器设计 (OpenAI 2025)。潜变量不会因为被模型处理就自动变成词元:连续网格支持扩散或流,离散索引则支持类别预测。

压缩视频的空间与时间

一段视频含有 TT 帧,每帧高为 HH、宽为 WW。其中,TT 表示帧数,HHWW 表示帧高与帧宽。设自编码器在时间轴和两个空间轴上的压缩因子为 (dt,dh,dw)(d_t,d_h,d_w),Transformer 再把潜网格切成 (pt,ph,pw)(p_t,p_h,p_w) 大小的块。序列长度大约为

Nvideo=TdtptHdhphWdwpw.N_{\mathrm{video}} = \left\lceil\frac{T}{d_t p_t}\right\rceil \left\lceil\frac{H}{d_h p_h}\right\rceil \left\lceil\frac{W}{d_w p_w}\right\rceil.

其中,NvideoN_{\mathrm{video}} 是 Transformer 位置数;dt,dh,dwd_t,d_h,d_w 是自编码器压缩因子;pt,ph,pwp_t,p_h,p_w 是以潜网格单元计量的 Transformer 块尺寸。通道数会改变每个位置的宽度,不会改变这个序列数。这个公式只用于核算,不是质量估计。

下面的可运行示例复现 Movie Gen 公布的最大视频上下文:16 秒、每秒 16 帧、每帧 768×768 像素。时空自编码器在每条轴上压缩八倍,Transformer 再把每个 2×2 空间潜单元组合成一个位置。

frames, height, width = 16 * 16, 768, 768
compression = (8, 8, 8)
patch = (1, 2, 2)

latent = tuple(
    size // stride
    for size, stride in zip((frames, height, width), compression)
)
tokens = (
    latent[0] // patch[0]
    * latent[1] // patch[1]
    * latent[2] // patch[2]
)
raw_positions = frames * height * width
latent_positions = latent[0] * latent[1] * latent[2]

print(f"原始时空位置:{raw_positions:,}")
print(f"潜空间位置:{latent_positions:,}")
print(f"Transformer 词元:{tokens:,}")
print(f"位置数缩减:{raw_positions // tokens:,} 倍")

早期视频扩散设计用时空分解的 3D UNet 扩展图像模型 (Ho et al. 2022)。扩散 Transformer,也就是 扩散 Transformer(DiT),则把 Transformer 块作用于潜块;原始 DiT 研究在 ImageNet 实验中显示,模型计算量增加时质量也随之改善 (Peebles and Xie 2023)。Sora 的 2024 年技术报告介绍了作用于时空潜块且支持可变视频形状的扩散 Transformer,但公开信息不足以复现该系统 (Brooks et al. 2024)。

开放论文让压缩边界更具体。CogVideoX 报告了一个因果 3D 自编码器,它在时间轴压缩四倍,在每个空间轴压缩八倍,并连接一个文本视频扩散 Transformer (Yang et al. 2024)。Movie Gen 报告了一个 300 亿参数的流匹配视频 Transformer,它建立在时空自编码器上,另外用一个音频模型根据视频生成声音 (Polyak and others 2024)。同步输出并不意味着画面和音频来自同一个联合采样器。压缩改变的是表示成本,不是语义理解能力;物理一致性需要单独评测,第 16 章 将继续讨论这个问题。

分开考虑系统集成与表示方式

模块化程度与表示方式是两项不同的选择。产品可以让语言模型调用专用图像生成器,也可以让同一个训练主干交替处理文本和图像。无论选哪种系统组合,都可以使用离散码、连续潜变量或两者混合。

Chameleon 是一个采用早期融合的离散模型。它把文本词元与图像码本索引交错排列,用下一词元预测训练同一个 Transformer (Chameleon Team 2024)。其 7B 和 34B 训练配方使用了查询向量与键向量归一化、输出 z-loss 等稳定性控制。论文的消融实验发现,查询向量与键向量归一化在该设置中不可或缺。这些结果不能证明每个统一模型都需要同样的训练配方。

Transfusion 保留连续图像块。同一个 Transformer 对文本位置使用下一词元损失,对图像位置使用扩散损失 (Zhou et al. 2025)。在论文的受控比较中,连续表示用更少的训练计算量得到了更好的图像生成结果。这个结论仅在该实验设置下反映表示方式的差异,并非对所有分词器的通用比较。Show-o 把自回归文本与离散掩码图像扩散结合起来 (Xie et al. 2025),Emu3 则对离散文本、图像和视频序列使用下一词元预测 (Wang and others 2024)。统一模型仍然可以使用不同损失,同一种损失也可以作用于模态专用的分词器。

在系统层,如果组件需要独立的发布周期、安全策略、延迟预算或数据来源管控,模块化仍然很有吸引力。端到端训练能保留狭窄接口丢弃的信号,却会让故障更难定位。OpenAI 将 GPT-4o 描述为一个跨文本、视觉与音频训练的网络 (OpenAI 2024)。公开信息没有披露其内部表示,因此这项公开说明无法回答离散表示与连续表示孰优的问题。

评测实际准备交付的能力边界

「多模态质量」范围太宽,无法成为有用的单一指标。应当分别测试每一道接口:

边界 问题与指标
图文表示 双向检索、零样本分类、子群与提示词敏感性
视觉理解 OCR、图表、空间定位、回答正确率、校准、证据定位
图像生成 提示遵循、计数与绑定、文字渲染、多样性、人类偏好、安全
视频生成 时间一致性、运动、身份保持、物理行为、音视频同步
服务 视觉序列长度、预填充时间、缓存内存、首个输出延迟、加速器成本

MMMU 含有 30 个学科的 11,500 道大学水平问题,同时测试视觉感知与专业知识 (Yue et al. 2024)。MMMU-Pro 删除了一部分不看图也能回答的问题,把四个选项扩展到十个,并添加纯视觉条件以减少捷径 (Yue et al. 2024)。任何基准分数都必须注明模型版本、提示协议和工具使用情况。

在生成评测中,GenEval 用检测器和分类器为物体存在性、数量、颜色、位置和属性绑定评分 (Ghosh et al. 2023)。DPG-Bench 使用被拆成多个语义命题的密集提示 (Hu et al. 2024)。这些自动评判器是有用的诊断工具,但不是对审美、多样性、排版、记忆或有害输出的完整衡量。先评测准备交付的那一道边界,再补上端到端任务与人类评测。

争议所在

未解决的问题有两个彼此独立的层次。系统设计者要在可替换的专用组件与更深的端到端集成之间选择;模型设计者则要在离散、连续、混合表示,以及下一词元、掩码、扩散、流目标之间选择。一项选择的证据不能决定另一项。有意义的比较应当固定数据、计算量、分词器质量和评测协议,但大多数产品宣传式比较都做不到这一点。

下层约束

表示长度会直接传导到服务层。图块尺寸、分辨率、分块方式、视频时长、时间压缩和潜块尺寸,会共同决定 Transformer 需要处理多少位置。这些选择也会丢失信息,所以降低成本可能会损害 OCR、定位、运动或重建质量。先写清输入与输出契约,再计算序列长度,并在对应压缩率下测量质量。

延伸阅读

评论

登录后评论