Fluid:比较取值类型与生成顺序
交互教程
Fluid 区分两项设计选择:离散或连续 token,以及扫描因果或随机双向生成。
之前已经能做什么
Section titled “之前已经能做什么”早期系统常同时改变 tokenizer、输出头及生成顺序,难以归因。Fluid 围绕二乘二设计组织大规模图文生成研究,再按其训练协议扩展最强配置。
改变了什么,为什么
Section titled “改变了什么,为什么”离散分支使用 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)逐步理解机制
Section titled “逐步理解机制”在设计交互中切换任一轴。表征设置改变目标空间与输出头;顺序设置改变预测时可观测内容。这是结构对照,不在四种实验间虚构连续质量曲面。
连续分支将 32 × 32 × 4 网格按 2 × 2 分组,得到 256 个 16 维 token,保留 4096 个标量。离散分支使用 256 个 8192 词表 ID。序列长度相同不代表信息率相同。
改变参数,查看计算值,再把它与上方的真实模型说明对照。
解析教学模型 · 控件改变的是例子,不是训练后的研究模型。
两轴改变架构与条件分解;不推断任何插值基准成绩。
| 量 | 值 |
|---|---|
| 取值空间 | 16 维连续向量 |
| 输出头 | 条件扩散 MLP |
| 上下文规则 | 已知位置可双向交互 |
训练与采样的区别
Section titled “训练与采样的区别”连续头用 1000 个扩散时间训练、100 步采样。主要研究扩展到 10.5B 参数。COCO FID 与 GenEval 使用不同评估集,guidance/temperature 按指标调优;不能假定最佳指标都来自同一固定采样器。
这些结果不能证明什么
Section titled “这些结果不能证明什么”因 tokenizer 与重建目标不同,这不是严格等码率离散/连续消融。学习位置嵌入与扫描伪影的联系是作者假说,不是受控二维 RoPE 实验结论。大 batch TPU 吞吐也不等于单图 GPU 延迟。
理解 Fluid 时必须区分哪两条轴?
token 取值空间与生成顺序/注意力规则。改变一项在逻辑上不要求改变另一项。
来源与后续阅读
Section titled “来源与后续阅读”本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。