不要问模型是 Transformer 还是 Diffusion:一套五层技术栈检查法
摘要
Transformer、VAE、Diffusion、Flow 和 Solver 经常被放在同一张比较表里,但它们回答的是不同问题。本文建立系统角色、表示空间、网络骨架、训练/生成范式和推理算法五层检查法,并用 DiT 与 π0 说明如何从论文和仓库恢复真实技术栈。
关键词
Model Taxonomy、Transformer、VAE、Diffusion、Flow Matching
目录
- 一、五层分类表:先确定问题属于哪一层
- 二、表示层:VAE、VQ-VAE 与 Tokenizer 不是同义词
- 三、骨架层:Transformer 负责怎样计算,不等于采用哪种生成范式
- 四、训练范式层:Diffusion、Score 与 Flow 有联系,但参数化不能抹平
- 五、推理层:Sampler、Solver、Scheduler 与 Steps 不属于训练目标
- 六、完整拆解案例一:DiT 不是“Transformer 取代 Diffusion”
- 七、完整拆解案例二:π0 中的 VLM、动作专家、Flow 与控制频率
- 八、四类常见错误推理
- 九、读论文与看仓库的检查清单
- 结论
面对一个图像、视频或机器人模型,最常见的提问之一是:“它到底是 Transformer、Diffusion、Flow,还是 VAE?”这个问题经常没有唯一答案,因为这些词并不处于同一技术维度。一个系统完全可能同时使用 VAE 压缩数据、用 Transformer 作为函数逼近器、以 Diffusion 或 Flow Matching 定义学习路径,再用某个 ODE/SDE Solver 完成推理。最后,产品页面还可能只用“视频生成模型”或“VLA”描述它的系统角色。
真正有用的分析不是给模型贴一个总标签,而是把技术栈拆成五层:系统角色、表示空间、网络骨架、训练/生成范式、推理算法。这五层分别回答“它在系统里负责什么”“数据以什么形式进入模型”“谁来计算映射”“训练时学习什么数学对象”“部署时怎样把模型输出变成最终样本或动作”。任何跨层比较都容易制造伪结论。[B-S01][B-S03][B-S05]
一、五层分类表:先确定问题属于哪一层
| 层级 | 核心问题 | 常见选项 | 论文或仓库中应查的字段 | 不能直接推出什么 |
|---|---|---|---|---|
| 1. 系统角色 | 该模块在完整系统中承担什么职责? | 图像生成器、视频生成器、表示编码器、世界模型、VLA 策略、低层控制器 | 输入输出接口、上游条件、下游消费者、是否闭环 | 不能仅凭“会生成未来画面”推出能规划,也不能凭“输出动作”推出含安全控制 |
| 2. 表示空间 | 模型在哪种数据空间工作? | 像素、连续潜变量、离散码、文本/动作 Token、对象状态 | 编码器、解码器、压缩率、量化、归一化、重建指标 | 不能把所有 Tokenizer 都叫 VAE,也不能由潜空间类型直接推出生成范式 |
| 3. 网络骨架 | 哪类网络近似所需函数? | Transformer、U-Net、CNN、RNN、SSM、混合专家 | Block 结构、条件注入、位置编码、残差、归一化、注意力范围 | 不能由 Transformer 推出自回归,也不能把 Attention 公式当作完整 Transformer |
| 4. 训练/生成范式 | 训练在拟合什么目标或概率路径? | 自回归、VAE 目标、DDPM/Score、Flow Matching、对抗训练、行为克隆 | 损失函数、目标参数化、噪声/概率路径、条件变量 | 不能由仓库名或采样器名反推训练目标 |
| 5. 推理算法 | 部署时如何离散求解或解码? | Ancestral sampler、DDIM、Euler、Heun、DPM-Solver、Beam Search、并行解码 | Scheduler/Sampler/Solver 配置、NFE、Steps、CFG、精度、缓存 | 不能把“10 steps”视为模型结构,也不能跨硬件直接宣称更快 |
这张表的价值在于强迫分析者先回答“比较对象是否同层”。Transformer 与 U-Net可以比较骨架;连续潜变量与离散码可以比较表示;DDPM 与 Flow Matching可以比较训练目标和概率路径;DDIM 与 DPM-Solver可以比较推理路线。把 Transformer 与 Diffusion直接做二选一,相当于问一辆车“它是承载式车身还是汽油驱动”,语法上成立,工程上没有完成分类。
五层之间是多对多组合,不是自上而下的一条固定流水线。同一表示可以被自回归、扩散或 Flow目标使用;同一训练目标可以换用 U-Net、Transformer或其他骨架;同一权重又可能搭配不同求解器。做选型时应比较完整配置,而不是把某一层的优点传播到其他层。例如,潜空间降低主干计算量,不代表解码质量更高;Transformer扩展性较好,也不代表采样步数更少。
二、表示层:VAE、VQ-VAE 与 Tokenizer 不是同义词
VAE 是带连续潜变量的概率生成模型框架。经典 VAE 用近似后验、先验和重参数化估计变分下界,编码器输出的是连续分布参数,而不是简单的“压缩网络”。[B-S04] 在图像和视频系统里,“VAE”有时被宽泛地用于指带 KL 正则的自编码器,但工程审阅仍应检查它是否真的使用了相应的概率目标,而不是只看目录名称。
VQ-VAE 则把编码结果映射到离散码本,原论文明确强调其离散编码和可学习先验与普通 VAE 不同。[B-S06] 它可以充当离散 Tokenizer 的实现,但“Tokenizer”只是接口角色:把连续信号映射为可供下游模型处理的符号或向量。图像 Tokenizer 可以基于向量量化,动作 Tokenizer也可以基于 DCT、量化和 BPE;后者并不因此变成 VQ-VAE。[B-S15]
因此,表示层至少要记录五件事:输入域、潜变量是连续还是离散、空间/时间压缩倍率、编码与解码是否有损、训练目标是什么。对于视频模型,还要单独测静态重建、快速运动、细小文字、身份一致性和时间闪烁。所谓“VAE 决定运动上限”只有在固定下游生成器后,且编码—解码基线已经丢失关键运动信息时才成立。验证方法不是观察最终成片后猜测,而是先对真实视频执行纯 Encode→Decode,再把该重建基线与完整生成结果分开比较。表示层构成可达到质量的一个约束,但不是所有运动失败的唯一原因。
三、骨架层:Transformer 负责怎样计算,不等于采用哪种生成范式
Transformer 是由多头注意力、前馈网络、残差连接、归一化、位置或时序信息以及具体条件注入方式共同组成的架构族。原始论文以注意力替代循环和卷积建立序列到序列模型,但一条 Attention 公式不能代表完整 Transformer。[B-S01]
同一个 Transformer 可以承担不同任务:自回归预测下一个文本 Token;在 DiT 中接收带噪潜变量、时间步和类别条件,输出扩散目标;在 VLA 中读取图像、语言和本体状态,输出离散动作 Token或连续动作场。[B-S03][B-S14] 反过来,Diffusion 也不要求必须使用 Transformer;Latent Diffusion 的经典实现使用时序条件 U-Net。[B-S05]
所以读论文时不能停在“采用 Transformer”。还要继续查:输入如何 Patchify 或 Tokenize;条件通过 Cross-Attention、拼接还是 AdaLN 注入;时间步如何编码;是全局注意力、局部窗口还是因果掩码;输出头预测什么量。真正决定接口的是这些结构与训练目标的组合,而不是“Transformer”这个总名词。
四、训练范式层:Diffusion、Score 与 Flow 有联系,但参数化不能抹平
DDPM通过预设前向加噪过程训练逆向去噪模型,常见实现可以预测噪声 (\epsilon)、干净样本 (x_0) 或其他等价变换。[B-S07] Score-based方法直接估计扰动分布的对数密度梯度;Score SDE 工作把离散扩散与连续时间 SDE 放进统一框架,并给出对应的逆向 SDE与概率流 ODE。[B-S08] 这说明“Diffusion”和“Score”在很多连续数据设定下高度相关,不应被画成毫无交集的产品类别。
Flow Matching则训练连续归一化流的向量场,通过回归预先定义概率路径上的条件速度场来避免在训练中数值模拟完整轨迹。原始 Flow Matching工作明确指出,扩散概率路径可以作为其允许路径的一类,同时也可以选择最优传输式路径。[B-S09] 因此,Flow Matching与扩散既不是完全相同,也不是互斥盒子:它们可共享从简单分布到数据分布的连续路径视角,但目标向量、路径构造和训练公式不同。
“Flow 更快”也不是无条件事实。速度要绑定至少四项:相同硬件与精度、相同输出尺寸和批量、达到相近质量所需的网络函数评估次数(NFE)、每次前向的实际代价。更直的概率路径可能允许更少求解步,但模型规模、条件分支、CFG双前向、缓存命中、编解码耗时都能抵消这项优势。正确实验是固定端到端任务,画出质量—NFE—延迟曲线,而不是比较两个仓库的默认演示时间。
五、推理层:Sampler、Solver、Scheduler 与 Steps 不属于训练目标
训练完成后,系统仍需要决定如何从噪声、初始潜变量或部分动作序列得到结果。DDIM展示了同一 DDPM训练过程可以对应不同的非马尔可夫采样路径,并在较少步骤下采样;DPM-Solver则把生成视作求解扩散 ODE,设计专用高阶求解器。[B-S10][B-S11] 这两个例子说明:换推理器不必重训模型,训练范式与推理解法必须分栏记录。
在工程仓库中,“Scheduler”经常是框架级对象,可能同时封装时间步序列、噪声日程、更新公式和状态;“Sampler”有时指完整采样循环,有时只指单步规则;“Solver”更偏向数值分析意义;“Steps”可能是离散步数,也可能与实际 NFE 不相等。[B-S12] 因而不能只记一个名称。至少要记录:使用的时间表、更新算法、模型每步调用次数、是否使用预测—校正、是否启用 CFG、总 NFE、精度与量化、编解码耗时。
六、完整拆解案例一:DiT 不是“Transformer 取代 Diffusion”
以原始 DiT图像系统为例,五层拆解如下:[B-S03]
- 系统角色:类别条件图像生成器。
- 表示空间:使用预训练 VAE把 (256\times256\times3) 图像压缩为 (32\times32\times4) 连续潜变量,编码器下采样因子为 8;生成结束后再由 VAE解码。
- 网络骨架:将带噪潜变量 Patchify成序列,使用基于 ViT的 DiT Block,并通过时间步和类别条件调制网络。
- 训练/生成范式:在潜空间训练 DDPM,沿既定方差日程学习去噪目标。
- 推理算法:论文主比较使用 250 个 DDPM采样步;是否启用 classifier-free guidance另行记录。
这套系统同时是 VAE潜空间模型、Transformer骨架模型和扩散生成模型。说“DiT 用 Transformer替代 Diffusion”是错误的;它替换的是许多扩散系统中用于预测去噪目标的 U-Net骨架。若输出细节失败,可能来自 VAE重建、DiT容量、条件注入、训练数据、采样步数或引导配置,不能只归因于其中一层。
七、完整拆解案例二:π0 中的 VLM、动作专家、Flow 与控制频率
π0可用同一检查法拆解,但其系统角色已经从媒体生成变为机器人策略:[B-S14]
- 系统角色:根据视觉、语言和本体状态生成机器人动作块的 VLA策略,不等同于低层伺服控制器或完整安全系统。
- 表示空间:输入包括多视角图像、语言指令和关节状态;输出是长度为 50 的连续动作 Chunk。不同机器人动作维度和频率需要在数据与部署接口中定义。
- 网络骨架:预训练 VLM骨架旁接 Action Expert,由 Transformer结构处理动作相关计算。
- 训练/生成范式:通过条件 Flow Matching学习连续动作分布的向量场。
- 推理算法:论文实现以 Euler积分执行若干去噪/流步骤;动作块以机器人相应控制频率送入执行栈。模型推理周期、Chunk覆盖时长和低层控制频率不是同一数值。
该案例说明“Flow模型”只描述动作生成路线的一层。系统是否安全、能否恢复、网络延迟是否可接受,还取决于状态同步、动作归一化、坐标变换、Chunk执行策略、低层控制和保护链路。
八、四类常见错误推理
错误一:主干替代论。“新模型用了 Transformer,所以不再是 Diffusion。”错误链条是把负责函数逼近的骨架当成概率生成过程。修正方法是同时找到网络输出目标和训练损失。
错误二:默认速度论。“Flow路径更直,所以所有 Flow模型都比 Diffusion快。”错误链条是从理论路径性质跳到端到端墙钟时间。修正方法是统一质量门槛、NFE、硬件、精度和编解码配置后测量。
错误三:单瓶颈上限论。“VAE决定视频运动上限。”错误链条是把表示损失当作全部动态失败。修正方法是先做真实视频重建基线,再对生成主干、时间建模、采样与数据逐项消融。只有在信息已被编码器不可逆丢失时,才能把该缺陷归到表示层。
错误四:名称即能力论。“仓库里有 World、Flow、Scheduler 或 Agent字段,所以系统具备世界建模、流式推理或自主执行能力。”错误链条是把命名当接口证明。修正方法是追到实际张量、损失、调用图和验收测试。
九、读论文与看仓库的检查清单
- 先写一句系统角色:它输出样本、状态预测、动作,还是控制指令。
- 记录原始输入、条件输入和最终输出的张量形状、单位、时间跨度。
- 查编码器、解码器、量化器和归一化统计,确定表示是连续还是离散。
- 单独运行 Encode→Decode 或 Tokenize→Detokenize,建立表示层基线。
- 画出骨架:Block类型、注意力范围、条件注入、输出头。
- 从训练代码定位真实 Loss,确认预测的是 (\epsilon)、(x_0)、Score、Velocity、Token还是动作值。
- 查概率路径、噪声日程、时间采样和目标参数化,不根据论文标题猜。
- 将 Sampler、Solver、Scheduler、Steps、NFE、CFG分栏记录。
- 用 Profiling拆出编码、主干前向、求解循环、解码和后处理时间。
- 对速度结论固定硬件、精度、批量、尺寸、步数与质量门槛。
- 对质量结论区分表示上限、主干容量、训练数据、条件控制和推理配置。
- 对系统能力追踪下游接口:生成结果是否真的进入规划、控制、评测或安全闭环。
结论
生成模型与 VLA的术语混乱,本质上不是名词太多,而是技术维度没有分开。系统角色说明模块在产品中做什么;表示层决定数据被怎样保留和压缩;骨架层决定怎样计算映射;训练范式决定学习哪类目标或概率路径;推理层决定部署时如何离散求解。只有先完成五层记账,才能进行同层比较、定位瓶颈,并把“架构先进”“采样更快”“能力更强”改写为可验证的工程命题。
FAQ
Transformer 与 U-Net 可以直接比较吗?
可以,它们都属于网络骨架;但比较时仍要固定表示空间、训练目标、数据和规模。
Flow Matching 一定比 Diffusion 快吗?
不能无条件下结论;需要固定质量、硬件、精度、NFE、前向代价和编解码阶段后实测。
Tokenizer 都是 VAE 吗?
不是。Tokenizer 是接口角色,可以由连续自编码器、离散码本、DCT+BPE 或其他方法实现。