跳转到内容
English

Fluid:比较取值类型与生成顺序

交互教程

Fluid 区分两项设计选择:离散或连续 token,以及扫描因果或随机双向生成。

前置阅读:MAR · VQGAN

早期系统常同时改变 tokenizer、输出头及生成顺序,难以归因。Fluid 围绕二乘二设计组织大规模图文生成研究,再按其训练协议扩展最强配置。

离散分支使用 VQGAN codes 与类别交叉熵;连续分支将 SD-VAE latent 分组为 16 维 token,并使用六层 diffusion MLP。冻结 T5-XXL 与可训练六层 aligner 通过 cross-attention 提供文字条件。报告研究中,随机顺序连续建模表现最好。

阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。

两种 token 接口

相同位置数背后是不同载荷。

tokens = vqgan.encode(image) if discrete else group_2x2(vae.encode(image))

文字条件

Cross-attention 为图像模型提供文字上下文。

text_features = aligner(frozen_t5(prompt))
h = transformer(tokens,text_features,order_mask)

输出分布

选择与取值空间匹配的输出头。

loss = cross_entropy(head(h),ids) if discrete else diffusion_loss(h,continuous_target)

查看固定版本来源

在设计交互中切换任一轴。表征设置改变目标空间与输出头;顺序设置改变预测时可观测内容。这是结构对照,不在四种实验间虚构连续质量曲面。

连续分支将 32 × 32 × 4 网格按 2 × 2 分组,得到 256 个 16 维 token,保留 4096 个标量。离散分支使用 256 个 8192 词表 ID。序列长度相同不代表信息率相同。

改变参数,查看计算值,再把它与上方的真实模型说明对照。

解析教学模型 · 控件改变的是例子,不是训练后的研究模型。

离散连续已选随机 / 双向

两轴改变架构与条件分解;不推断任何插值基准成绩。

当前例子的计算值
量值
取值空间16 维连续向量
输出头条件扩散 MLP
上下文规则已知位置可双向交互

连续头用 1000 个扩散时间训练、100 步采样。主要研究扩展到 10.5B 参数。COCO FID 与 GenEval 使用不同评估集,guidance/temperature 按指标调优;不能假定最佳指标都来自同一固定采样器。

因 tokenizer 与重建目标不同,这不是严格等码率离散/连续消融。学习位置嵌入与扫描伪影的联系是作者假说,不是受控二维 RoPE 实验结论。大 batch TPU 吞吐也不等于单图 GPU 延迟。

理解 Fluid 时必须区分哪两条轴?

token 取值空间与生成顺序/注意力规则。改变一项在逻辑上不要求改变另一项。

返回学习地图

本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。