从入门到入土 4:从理论到实践——构建大规模图像与视频生成器
前三篇文章我们搭建了生成模型的理论平台:从 ODE/SDE 描述生成过程,到 Flow Matching 训练向量场,再到 Score Matching 学习梯度与引导技术。但理论落地到实际系统仍面临巨大挑战——图像分辨率高达百万像素,视频更是增加了一个时间维度,直接建模几乎不可行。本文将带你走进工业级生成模型的设计世界,看看如何通过巧妙的架构设计、潜空间压缩以及工程优化,构建出像 Stable Diffusion 3 和 Meta Movie Gen 这样的大规模生成器。
1. 从理论到实践的鸿沟
回顾一下,我们最终需要的是一个神经网络 utθ(x∣y)u_t^\theta(x|y)utθ(x∣y)(或分数网络 stθ(x∣y)s_t^\theta(x|y)stθ(x∣y)),输入是带噪数据 xxx、时间 ttt 和条件 yyy(如文本),输出是与 xxx 同维度的向量。对于一张 1024×10241024 \times 10241024×1024 的 RGB 图像,输入输出维度高达 3×1063 \times 10^63×106,直接使用全连接网络(MLP)显然不现实——参数量爆炸,且无法利用图像的空间结构。
因此,我们需要解决两个核心问题:
- 神经网络架构:如何设计能高效处理高维图像/视频数据的网络结构?
- 计算可行性:如何在有限的计算资源下训练如此庞大的模型?
答案分别对应:U-Net / Diffusion Transformer(DiT) 和 潜空间建模(Latent Space)。
2. 神经网络架构:从 U-Net 到 Diffusion Transformer
2.1 为什么不能用简单的 MLP?
图像数据具有天然的二维空间结构:像素间的邻近关系蕴含了丰富的语义信息。MLP 将图像展平为一维向量,破坏了这种空间局部性,且参数量随像素数平方增长。我们需要一种能够保持空间维度并有效利用局部性的架构。
2.2 U-Net:卷积的经典选择
U-Net 最初用于医学图像分割,因其“U”形结构而得名。它由三个核心组件构成:
- 编码器(Encoder):通过卷积和池化逐步压缩空间尺寸,同时增加通道数,提取高层语义特征。
- 中间层(Midblock):在最低分辨率处进一步处理特征。
- 解码器(Decoder):通过上采样和卷积逐步恢复空间尺寸,并融合编码器对应层的特征(跳跃连接)。
这种对称结构使得 U-Net 能够同时捕捉全局语义和局部细节,非常适合图像生成任务。在扩散模型中,U-Net 的输入和输出维度相同,完美契合向量场预测的需求。为了引入时间 ttt 和条件 yyy,通常采用自适应归一化(AdaNorm) 或拼接的方式将条件信息注入各层。
为什么 U-Net 有效?
编码器-解码器结构本质上是一种多尺度特征提取机制,跳跃连接保证了高分辨率细节不会在压缩过程中丢失。这种归纳偏置(inductive bias)非常适合图像数据。
2.3 Diffusion Transformer(DiT):Transformer 的崛起
近年来,Transformer 架构在视觉领域大放异彩。DiT 将 ViT(Vision Transformer)的思想引入扩散模型,其核心流程如下:
- 分块(Patchify):将图像划分为大小为 P×PP \times PP×P 的 patches,每个 patch 展平后通过线性投影得到 token 序列。
- 条件注入:时间 ttt 通过傅里叶特征嵌入,条件 yyy(如文本)通过预训练模型(如 CLIP、T5)编码为 token 序列。
- Transformer 层:在 token 序列上交替应用自注意力(捕捉 patch 间关系)和交叉注意力(融合文本条件),并通过 AdaNorm 注入时间信息。
- 反分块(Depatchify):将 token 序列映射回图像空间,得到最终输出。
DiT 的优势在于可扩展性:通过增加层数、头数、隐藏维度,可以轻松构建数十亿参数的模型,且训练稳定性优于 U-Net。当前主流的大规模图像/视频生成器几乎都基于 DiT 或其变体。
U-Net vs DiT
U-Net 是卷积时代的王者,轻量且高效,但在超大规模参数下扩展性不如 Transformer。DiT 借助自注意力机制能够捕捉全局依赖,更适合复杂的图文对齐任务。
3. 潜空间(Latent Space):压缩的艺术
即使有了高效的网络架构,直接在高维像素空间训练仍面临巨大挑战。以 1024×10241024 \times 10241024×1024 图像为例,3 通道对应约 3M 维,即使使用 DiT,计算量也极其庞大。解决方案是先压缩,再生成。
3.1 自动编码器(Autoencoder)
一个标准的自动编码器由编码器 μϕ\mu_\phiμϕ 和解码器 μθ\mu_\thetaμθ 组成:
z=μϕ(x),x^=μθ(z), z = \mu_\phi(x), \quad \hat{x} = \mu_\theta(z), z=μϕ(x),x^=μθ(z),
训练目标是最小化重建误差 ∥x−x^∥2\|x - \hat{x}\|^2∥x−x^∥2。如果我们得到的 zzz 的维度远小于 xxx的维度,就实现了压缩。然而,标准自动编码器无法控制潜空间的分布,生成的 zzz 可能非常不规则,不利于后续生成建模。
3.2 变分自动编码器(VAE)
VAE 引入概率视角:编码器输出分布的参数(均值 μϕ(x)\mu_\phi(x)μϕ(x) 和方差 σϕ2(x)\sigma_\phi^2(x)σϕ2(x)),解码器也输出分布。训练目标包括两部分:
- 重建损失:保证解码后的样本接近原始数据。
- KL 散度:迫使编码分布接近先验分布(通常是标准高斯 N(0,Ik)\mathcal{N}(0, I_k)N(0,Ik))。
这样,潜空间 zzz 的分布就被“正则化”为近似高斯,非常适合后续的扩散/流模型训练。在 VAE 中,我们通常取编码器输出的均值 μϕ(x)\mu_\phi(x)μϕ(x) 作为潜码,或者从中采样(训练时采样,推理时用均值)。现代生成模型(如 Stable Diffusion)使用 VAE 将图像压缩 888 倍(即 1024×10241024 \times 10241024×1024 图像压缩至 128×128128 \times 128128×128 潜变量),大幅降低计算量。
为什么 VAE 比自动编码器更好?
自动编码器不约束潜空间分布,可能产生“空洞”或“碎片化”的潜码,使得生成模型难以学习。VAE 通过 KL 正则化让潜码聚集在高斯区域,极大提升了生成质量。
4. 实战案例:Stable Diffusion 3 与 Meta Movie Gen
4.1 Stable Diffusion 3:流匹配与多模态 DiT
Stable Diffusion 3 是当前最先进的图像生成模型之一,其核心设计包括:
- 训练目标:采用 Conditional Flow Matching(如第二篇文章所述),使用线性调度 αt=t,βt=1−t\alpha_t = t, \beta_t = 1-tαt=t,βt=1−t。
- 潜空间:预训练的 VAE 将图像压缩 8 倍,生成在潜空间进行。
- 架构:提出 MM-DiT(Multi-Modal DiT),在 DiT 基础上增加双流交叉注意力:一方面对图像 patch token 做自注意力,另一方面对文本 token 做自注意力,然后两者交叉融合,实现深度图文对齐。
- 文本条件:同时使用 CLIP 嵌入(全局语义)和 T5 序列嵌入(细粒度控制),通过 MM-DiT 融合。
- 引导:采用 Classifier-Free Guidance(CFG),训练时以概率 η\etaη 丢弃条件,推理时用 w>1w > 1w>1 强化文本一致性。
最终模型参数量达 80 亿,采样仅需 50 步 Euler 法即可生成高质量图像。
4.2 Meta Movie Gen:视频生成的挑战与突破
视频生成面临额外挑战:时间维度 TTT 带来更大的计算量,同时需要保持帧间连贯性。Movie Gen 的解决方案:
- 时间自动编码器(TAE):在空间压缩的基础上,对时间维度也进行压缩(8 倍),将原始视频 T′×H×W×3T' \times H \times W \times 3T′×H×W×3 映射为 T×H×W×CT \times H \times W \times CT×H×W×C 的潜变量。
- 长视频处理:采用时间分块(temporal tiling),将长视频切分为片段分别编码,再拼接。
- 架构:基于 DiT,在 patchify 时同时处理时空维度(3D patches),使用 3D 位置编码。模型内部同时包含时空自注意力和文本交叉注意力。
- 文本条件:融合三种文本编码器:UL2(宏观语义)、ByT5(字符级细节)、MetaCLIP(图文对齐)。
- 规模:最终模型参数量达 300 亿,可生成长达 16 秒、分辨率 1080p1080p1080p 的视频。
5. 小结:从理论到工程的完整路线图
回顾整个系列,我们走过了从基础数学到工业级系统的完整路径:
- 第一篇文章:用 ODE/SDE 统一描述生成过程,奠定流模型与扩散模型的基础。
- 第二篇文章:引入 Flow Matching,将生成问题简化为回归任务,实现高效训练。
- 第三篇文章:转向分数匹配,学习概率密度梯度,并引出 Classifier-Free Guidance 实现精准控制。
- 第四篇文章:探讨实际落地的关键技术——神经网络架构(U-Net/DiT)和潜空间压缩(VAE),并剖析了两个代表性系统:Stable Diffusion 3 和 Meta Movie Gen。
生成模型仍在飞速发展,但贯穿始终的核心思想已清晰:通过微分方程将简单分布转化为复杂分布,利用数据驱动的学习算法(Flow Matching / Score Matching)训练,并借助潜空间和高效架构扩展到大规模应用。
如果你已经读到这里,恭喜你——你已经掌握了现代生成模型的核心知识体系。后续的进阶内容(如离散扩散模型、高效采样、可控生成)都可以在这个框架下继续深化。
希望这四篇文章能为你打开生成式 AI 的大门。期待你在实践中创造出令人惊叹的作品!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)