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

多模态模型:融合与生成

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

前几章把几种生成引擎拆开来看:扩散负责像素,词元模型负责非从左到右的生成,实时系统负责语音。多模态模型要把这些引擎重新接在一起。一个能看、能说、也能生成图像或视频的系统,并不只由某个架构定义,更由表示在何处相遇来定义:视觉编码器被投影进语言模型,文本编码器引导扩散模型,时空自编码器把视频压到可建模的规模,或者一个统一序列试图同时承载每一种模态。多模态里的许多取舍,正是在这些表示边界上形成的,而这些边界会变成很具体的成本和控制量:服务时的图像词元数,控制提示遵循的无分类器引导,图像与视频生成里的修正流和时空自编码器,以及模块化系统与统一模型之间仍未解决的分歧,包括离散表示与连续表示之争。

2026-06-21T23:30:21.926475 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 1 0 0 1 0 1 配对多模态数据(相对值) 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 跨模态任务质量 模块化 统一式
图 15.1. 多模态系统中模块化与统一模型取舍的示意图。模块化系统早期可能占优,而统一模型需要更多配对数据,但在跨模态迁移变重要后可能反超。理想化曲线,非实测。

把视觉融进语言

共享空间先行。对比语言-图像预训练(CLIP)是一种成对图文训练配方,用对比方式对齐:训练时让相互匹配的一幅图像与它的字幕在同一个共享向量空间里彼此靠近,而不匹配的图文对则被推远。它在 4 亿个图文对上做这件事,靠的是一个作用在批内相似度矩阵上的 softmax InfoNCE 损失,这个损失会在每个批次里奖励那唯一正确的配对、压过其余所有错误配对,于是只要把一幅图像与文本提示相匹配,就能对它做零样本分类 (Radford et al. 2021),而这个对齐后的空间,也成为后面许多图像生成系统复用的条件信号。SigLIP 把 softmax 换成成对的 sigmoid 损失,把每一个图文对变成一个独立的二元判断;因为 sigmoid 无需在整个批次上做全局归一化,它免去了对完整相似度矩阵的 all-gather,把损失与批大小解耦,在小批与极大批上都能稳定训练 (Zhai et al. 2023)。一个独立、却常被混为一谈的事实,是「模态间隙」:在 CLIP 式的空间里,图像嵌入与文本嵌入并不交融,而是分处两个被撑开的狭窄锥体里,这一几何在初始化时就已成形,并被对比训练所保留 (Liang et al. 2022)。间隙是几何问题,sigmoid 损失是计算问题,二者应分开看。

要让一个语言模型自己能看,有三种连接器模式在竞争。这里的设计轴也很清楚:视觉模型和语言模型各自冻结多少,桥接处加入多少可训练参数,以及模态在何处相遇。

img 图像 venc 冻结的视觉编码器(ViT) img->venc A Flamingo: Perceiver Resampler -> 64 词元 + 门控交叉注意力 在冻结 LM 深处 venc->A B BLIP-2: Q-Former 32 个习得查询 (瓶颈) venc->B C LLaVA: 两层 MLP 在输入处 venc->C lm 语言模型 A->lm B->lm C->lm
图 15.2. 把一个冻结的视觉编码器接到语言模型上的三种办法。Flamingo 在一个冻结的语言模型深处插入门控交叉注意力,并把视觉特征重采样到固定的 64 个词元。BLIP-2 的 Q-Former 经由一个习得的瓶颈抽出 32 个查询词元。LLaVA 用一层薄 MLP 在输入处把 ViT 的图块特征投影进词元空间。取材自 Alayrac 等(2022)、Li 等(2023)与 Liu 等(2023)。

交叉注意力注入让两侧模型都冻结,并在它们之间插入可训练的层;交叉注意力正是让一条词元流去读取另一条词元流的机制,这里是让语言模型去注意视觉特征。Flamingo 用沿语言模型交错插入的门控交叉注意力稠密层,把一个冻结的视觉编码器与一个冻结的 Chinchilla 语言模型桥接起来,每一层都由一个初始化为零的 tanh 门打开,于是这些层在起初是空操作,不扰动预训练权重;前面的 Perceiver Resampler 把数目可变的视觉特征映成固定的 64 个视觉词元,因此模型能接收交错的图像,并执行少样本多模态任务 (Alayrac et al. 2022)。BLIP-2 也冻结两侧模型,却用一个轻量的查询 transformer 来桥接:一小组 32 个可习得的查询向量(32 乘 768)交叉注意于冻结的图像特征,再把那份定长摘要递给冻结的 LLM。它是三者中最轻的连接器,也是一个硬性的信息瓶颈,分两阶段训练 (Li et al. 2023)。投影则让模态在输入处相遇:LLaVA 把视觉编码器的图块特征直接映进语言模型的词元空间,在初版里是一层线性、在 LLaVA-1.5 里是一个两层 MLP,再在指令数据上微调 (Liu et al. 2023; Liu et al. 2024)。清楚的对照是:Flamingo 在深处、两边都冻结、较重、固定在 64 个词元;BLIP-2 是冻结的瓶颈、固定在 32;LLaVA 在浅处、便宜,词元数由 视觉 Transformer(ViT) 输出的图块序列长度决定。

成本也由这里进入。一个视觉语言模型把主要推断预算花在图像词元上,因为每个视觉词元都是语言模型要注意的一个序列位置,而注意力在序列长度上是二次的,KV 缓存又随之线性增长。CLIP ViT-L/14 在 336 像素下输出一个 24 乘 24 的网格,于是 LLaVA-1.5 每幅图占用 576 个词元 (Liu et al. 2024),而阅读密集文档与小字的需求,会继续推高这个数字。LLaVA-NeXT 把一幅高分辨率图切成 336 像素的瓦片,再加一个缩小的全局视图,于是一幅多瓦片图能达到数千个视觉词元 (Liu et al. 2024)。Qwen2-VL 以原生分辨率把图像处理成可变数量的词元,并用一个多模态旋转嵌入(这种方案靠旋转词元的查询与键向量来编码它的位置,这里把它扩展到图像与视频的各个轴上)让文本、图像与视频共享一套位置方案 (Wang et al. 2024),而 InternVL 则把视觉塔本身扩到一个六十亿参数的编码器 (Chen et al. 2024)。更高的分辨率换来密集视觉内容上的准确率,但代价是每幅图、每一次前向都要付,这正是 第 36 章 在服务时所感受到的同一份词元数压力。

让开放的视觉语言模型变得可行的训练配方,是视觉指令微调,而关键在于构造数据。没有大的图像指令数据集,LLaVA 便从一个纯语言的 GPT-4 自举出一个:它把一幅图像的符号化描述,也就是字幕与边界框(这些都是文本),提供给模型,提示它写出基于该场景的对话与推理,从一个从未见过像素的模型那里得到约 15.8 万个样本 (Liu et al. 2023)。训练分两阶段,先只对齐投影层,让视觉特征落进对的空间;再把投影与语言模型一起在指令数据上微调。要不要也解冻视觉编码器,尚无定论:冻结保住了 CLIP 的通用表示,并避免在有限数据上遗忘;解冻则让编码器适应像 OCR 与定位这类冻结特征覆盖不足的细粒度任务,代价是更多数据与算力。

生成图像

建在 第 12 章 的扩散引擎之上,文生图系统在分出不同路线之前,共享一个关键机制。无分类器引导是控制提示遵循的主要手段。同一个网络被同时按条件与无条件训练,办法是在一部分步上把文本条件随机换成一个空词元,而在采样时把两个预测向外推开,

ϵ~θ(zt,c)=(1+w)ϵθ(zt,c)wϵθ(zt),\tilde{\boldsymbol{\epsilon}}_\theta(z_t, c) = (1 + w)\,\boldsymbol{\epsilon}_\theta(z_t, c) - w\,\boldsymbol{\epsilon}_\theta(z_t),

其中 ztz_t 是当前潜变量,cc 是文本条件,ϵθ(zt,c)\boldsymbol{\epsilon}_\theta(z_t,c) 是条件噪声预测,ϵθ(zt)\boldsymbol{\epsilon}_\theta(z_t) 是用空条件做出的无条件预测。权重 ww 是控制参数:w=0w = 0 恢复成无引导的模型,更大的值则朝远离无条件方向的一侧外推(后来的论文把这个控制量改称引导尺度 s=w+1s = w + 1)(Ho and Salimans 2022)。这一外推把样本推向条件模型所偏好之处、并推离无条件先验,在无需一个像 Dhariwal and Nichol (2021) 曾需要的、单独训练的分类器的情况下锐化了对齐。它也带着代价:小的引导给出最好的分布保真度,而强的引导以多样性为代价给出最锐、最贴提示的单样本,这正是生产系统都需要面对的保真与多样之间的取舍。

扩散路线随后把文本作为条件接入扩散模型,有两种基本形态。级联形态先生成一幅小图,再用后续扩散阶段把它放大:Imagen 在 64 像素上渲染,再超分到 256 与 1024,条件来自一个冻结的 T5-XXL 文本编码器。它报告的发现很清楚:扩大这个冻结的语言模型,对样本保真度与图文对齐的提升,远胜过扩大扩散模型本身 (Saharia et al. 2022),这是语言模型决定视觉生成器上限的一个例子。潜空间形态,即 第 12 章 的 Stable Diffusion 一脉,在一个预训练自编码器的潜空间里、而非在像素上跑扩散 (Rombach et al. 2022),而 SDXL 把这一脉扩大,用一个约三倍大的 UNet、一个第二文本编码器、以及一个单独的后置精修模型 (Podell et al. 2024)。DALL-E 2 采用另一种切分方式,用一个先验把图像描述映成一个 CLIP 图像嵌入,再由扩散解码器从它渲染 (Ramesh et al. 2022)。不过这条路线最清楚的教训关乎数据,而非架构:DALL-E 3 在一个由专门的图像描述模型重新标注的语料上重新训练,其中 95% 是合成描述,并发现图文对齐随合成比例的提高而单调改善 (Betker et al. 2023)。

训练目标本身也变了。现代的文生图系统用修正流、而非噪声预测来训练,学一个从噪声到数据的笔直速度场,好让一个 ODE 采样器只需少得多的步数,即 第 12 章 的流匹配思想。在线性插值 xt=(1t)x0+tϵx_t = (1-t)\,x_0 + t\,\boldsymbol{\epsilon} 下,目标只是 ϵx0\boldsymbol{\epsilon} - x_0(这里 x0x_0 是数据、ϵ\boldsymbol{\epsilon} 是噪声端点,即 Stable Diffusion 3 由数据到噪声的约定,与 第 12 章 由噪声到数据、把数据放在 x1x_1 的标注方向相反),而 Stable Diffusion 3 是典型实例:它加入 logit-normal 加权,把训练集中到感知上要紧的中间噪声尺度(每一步的训练噪声水平都从一个 logit-normal 分布里抽取),并引入 MMDiT(多模态扩散 transformer),为文本与图像两条词元流各保留一套权重、却让信息在两者之间流动,从而改进排版与提示理解 (Esser et al. 2024)。这套配方也走出了原来的实验室:同一批作者组建 Black Forest Labs,于 2024 年 8 月发布 FLUX 系列,一个 120 亿参数的修正流 MMDiT,把这条路线带进了如今占主导地位的开放权重图像模型 (Black Forest Labs 2024)。

自回归路线把 第 13 章 中扩散与词元之间的张力放到像素上:用 VQGAN 把图像离散化进一个习得的码本 (Esser et al. 2021),再用一个基于 ViT 的量化器加以改进 (Yu et al. 2022),然后用一个 transformer 对这些词元建模,而 Parti 把这一做法扩到 200 亿参数,作为图像词元上的文生图序列到序列模型 (Yu et al. 2022)。这条路线一度被认为竞争力不足,直到 2024 年的一次复兴把图像自回归重构为由粗到细的下一尺度预测:VAR 从所有更粗的词元图来预测每一个更高分辨率的词元图,而非从左到右地扫,以低一个数量级的推断成本达到类条件 ImageNet 生成的最佳,并展现出类语言模型的扩展 (Tian et al. 2024)。这一结果是类条件、而非文生图,因此它当时只是把这条路线作为一种架构重新打开,还不能作为系统层面的定论;系统层面的定论在 2025 年 3 月到来:OpenAI 把 GPT-4o 的原生图像生成投入生产,并披露它是一个自回归模型 (OpenAI 2025)。

生成视频

视频比图像多了时间轴,成本也随时长增长。第一步是用一个时空分解的 3D U-Net 扩展图像扩散,让各帧在时间上保持连贯 (Ho et al. 2022)。2024 年的转向,是把扩散 transformer 作用在潜块上,即样本质量随算力扩展的 扩散 Transformer(DiT) 骨干 (Peebles and Xie 2023),并跨可变的时长、分辨率与宽高比来训练它;OpenAI 的 Sora 是其中的代表性例子:它用一个因果自编码器把视频压进时空潜网格,再把这个网格切成充当 transformer 词元的块;这样一来,模型依靠压缩后的潜块,而不是固定帧数,来覆盖不同长度和形状的片段。这个系统记述于一份未经同行评议的报告 (Brooks et al. 2024)。开放系统让这种压缩更具体。CogVideoX 把一个在时间上压 4 倍、在每个空间轴上压 8 倍的 3D 因果自编码器,与一个做文本视频融合的专家 transformer 相配 (Yang et al. 2024),而 Meta 的 Movie Gen 则用流匹配目标,在一个每个轴都压 8 倍、即在 transformer 运行前做 512 倍缩减的时间自编码器之上,训练一个三百亿参数的 transformer (Polyak and others 2024)。

2025 年的系统把融合边界移进了生成器内部。Veo 3(2025 年 5 月)与 Sora 2(2025 年 10 月)在同一次采样中联合生成视频与同步音频,对白、环境声与音效一并生成,而不是给成片再配一条音轨 (Google DeepMind 2025; OpenAI 2025)。这样一来,口型与声音事件的时机是样本自身的属性,而非后期拼接的结果;这种从模块化走向统一的迁移,下一节还会在图像上看到。

让这一切变得可行的,正是自编码器压缩,而时间轴尤其关键。空间压缩每个轴去掉的冗余更多,8 乘 8 对 4,但时间压缩才是主要因素,因为时长会让词元数线性增长,而空间分辨率则是每个模型固定的。压缩时间,才能让更长的片段留在二次成本 transformer 的可处理范围内。

# 为什么视频生成需要潜空间自编码器:数一数扩散 transformer
# 在像素空间与压缩潜空间里分别要注意多少词元。
fps, seconds = 24, 5
H = W = 512
patch = 2                          # 工作空间里的 transformer 图块大小
for name, f in [("像素空间", 1), ("潜空间(x8 VAE)", 8), ("潜空间(x16 VAE)", 16)]:
    h, w = H // f, W // f
    tokens = fps * seconds * (h // patch) * (w // patch)
    print(f"{name:18s} -> {tokens:>10,d} 个时空词元")
print("注意力成本随词元数二次增长;潜空间压缩让视频生成变得可行")

统一还是模块化

最深的开放问题,是一个模型究竟该同时理解并生成每一种模态,还是一个系统该组合专门模块。在统一阵营内部,还有一场更具体的分歧:是把图像量化成离散词元,还是让它保持连续。

Chameleon 选择离散的早融合路线,把图像量化成码本词元、与文本交错进一个序列、再用一个跨混合词表的单一下一词元目标训练一个 transformer (Chameleon Team 2024)。它的关键贡献,是揭示混合模态训练里的一个稳定性问题。因为 softmax 对「给所有 logit 加同一个常数」是不变的,两个共享一套权重的模态,便能靠缓慢地抬高各自激活的范数来「竞争」;这起初无害,却最终会把数值推出 bf16 的范围而发散,论文称之为 logit drift 问题。其修法是在注意力点积之前对查询与键向量做层归一化,以界住送进内层 softmax 的范数;没有它,它们的七十亿模型在约五分之一的训练后就会发散。模型还配有一个控制最终输出 softmax 的 z-loss,以及一个针对 SwiGLU 路径的范数重排。Transfusion 选择相反路线,让图像保持连续:一个 transformer 在同一个序列里携带离散文本上的下一词元损失、与连续图像块上的扩散损失,并报告:在图像生成上,不做量化只用不到三分之一的算力就胜过 Chameleon (Zhou et al. 2025)。关键在分词器:一个 VQ 码本是有损压缩,于是它的重建误差设下了天花板,任何在那些码上训练的模型都突破不了,这正是保持连续的关键理由。一些变体落在两极之间,Show-o 把自回归文本与掩码词元图像扩散统一在一个 transformer 里 (Xie et al. 2025),而 Emu3 则把纯离散路线推及图像、文本与视频、都放在一个下一词元损失之下 (Wang and others 2024)。

统一路线的商业实例是 GPT-4o,OpenAI 把它描述为一个跨文本、视觉与音频端到端训练的单一模型,于是一个网络处理每一种输入与输出,取代了更老的三模型语音流水线、并把音频延迟压到几百毫秒 (OpenAI 2024)。更深层的细节(分词器、训练配比、层结构)仍未披露,但图像生成器属于哪一类已经公开:2025 年 3 月,OpenAI 披露 4o 的原生图像生成是一个嵌入 ChatGPT 的自回归模型,并以 gpt-image-1 API 的形式提供给开发者 (OpenAI 2025)。模块化路线则保留一个强的视觉语言模型做理解,再加分开的、专门的图像与视频生成器,经由工具调用组合起来;OpenAI 也曾在生产中运行这种设计,让 GPT-4 把扩散式的 DALL-E 3 当作工具来调,直到原生自回归生成器取代了这个工具调用,GPT-4 本身也于 2025 年 4 月退役,于是从模块化到统一的迁移有了一个具体的生产数据点,而不只是抽象讨论。让这些系统可比的评测轴有两条:理解与文生图对齐。理解一侧,MMMU 发布之初难到第一批前沿模型只得到五十多分 (Yue et al. 2024);到 2026 年,前沿模型的分数已落在八十出头到八十五上下,这个基准接近饱和,有区分度的评测移向了更难的 MMMU-Pro (Yue et al. 2024) 以及视频与音频理解。对齐一侧则是以物体为中心的 GenEval (Ghosh et al. 2023) 与密集提示的 DPG-Bench (Hu et al. 2024)。

争议所在

一个模型究竟该同时理解并生成每一种模态,还是专门化更胜一筹,尚无定论,而这场争论有两层。在系统层,统一模型更易组合,也能在各任务间共享表示;模块化模型则让每个模块各自成为同类中最好的,并独立演进。同一个实验室曾在生产中并行运行两种设计,GPT-4 加 DALL-E 3 的工具式组合与 GPT-4o 的原生生成,随后在 2025 年让原生路线取代了工具调用,这是支持统一路线的证据,但还算不上裁决。在表示层,即便接受单一模型,这一领域也在「把图像量化还是保持连续」上有分歧:Chameleon 在离散的图像与文本词元上、用纯下一词元预测训练一个 transformer (Chameleon Team 2024),Emu3 把这扩到视频 (Wang and others 2024),而 Transfusion 让图像保持连续、置于一个扩散损失之下,并报告它用一小部分算力胜过量化路线,因为 VQ 码本的重建误差封住了离散路线所能生成的上限 (Zhou et al. 2025)。未来的分词器会不会缩小那道重建误差,或者连续表示会不会长期占优,是这个开放问题之下的另一个开放问题。

下层约束

视觉分词器的压缩比,会反过来限制生成器能覆盖的范围。注意力在词元数上是二次的,而一分钟的视频是每帧数百万像素,于是生成之所以可行,是因为一个习得的自编码器在扩散 transformer 运行之前,把像素压进一个小得多的潜网格。这正是 第 12 章 为图像所做的同一个潜空间动作,也是 第 36 章 在服务时所感受到的同一份词元数压力。这条约束也会朝理解侧传导:一个视觉语言模型输出的图像词元数,LLaVA-1.5 是 576;一旦一份文档被切到原生分辨率,便可能达到数千。服务预算要为每幅图、每一次前向付这笔成本。生成器的算力预算,决定了视觉分词器必须有多激进;服务器的预算,则决定了一个理解器能负担得起看多少视觉词元。

延伸阅读

评论

登录后评论