DiTo:通过去噪学习 tokenizer
交互教程
紧凑编码可以作为迭代解码器的条件;DiTo 用扩散目标学习这种编码。
前置阅读:扩散与 Flow Matching · 变分自编码器
之前已经能做什么
Section titled “之前已经能做什么”VQGAN 结合重建、感知及对抗目标;latent diffusion 常将图像 tokenizer 与生成主干分开训练。DiTo 追问:扩散重建目标能否直接训练有用的 tokenizer,免去这套损失混合?
改变了什么,为什么
Section titled “改变了什么,为什么”编码器输出连续空间 latent。卷积 U-Net 接收带噪图像、上采样 latent 和时间。编码器与解码器通过 diffusion L2 / flow matching 联合训练。所读版本移除 KL 正则并使用 LayerNorm。虽然名字相近,DiTo 并非 DiT-only 架构。
阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。
连续编码器
卷积编码器输出归一化特征,不使用 VAE KL 项。
z = normalize(encoder(x))同步扰动
这是概率 0.1 的可选训练分支。
if use_sync:
z = add_noise(z, tau)
t = uniform(tau,1)条件 U-Net
像素重建需要迭代求解器。
v = unet(concat(xt,upsample(z)),t)
loss = squared_error(v, target_velocity)逐步理解机制
Section titled “逐步理解机制”默认瓶颈下采样 8 倍、4 通道;256² 输入对应 32 × 32 × 4 个值。它们描述输入图像;解码器还接收新像素噪声。因此重建结合编码内的信息与学习到的条件图像分布。
噪声同步有时先在时间 τ 扰动 latent,再从 [τ,1] 采样像素噪声时间 t。演示将 t 小于 τ 的组合标为该分支无效。按图中约定,t 越大噪声越多。这是训练约束,并不要求两份噪声的数值相同。
改变参数,查看计算值,再把它与上方的真实模型说明对照。
解析教学模型 · 控件改变的是例子,不是训练后的研究模型。
直线路径速度已知;学习模型需要估计速度,本演示不衡量其误差。
| 量 | 值 |
|---|---|
| 约束 t ≥ τ | 满足 |
| τ | 0.300 |
| t | 0.600 |
| x_t = (1 − t) × 2 + t × (−1) | 0.200 |
| v = ε − x | -3 |
训练与采样的区别
Section titled “训练与采样的区别”论文以 0.1 概率使用噪声同步;默认训练为 300k iterations、batch 64。报告的重建使用 50 步 Euler ODE 解码。与单次前向图像解码器比较时,必须计入这些调用。下游 latent 生成器仍是独立组件。
这些结果不能证明什么
Section titled “这些结果不能证明什么”本文依据固定版本论文,未审计 DiTo 官方代码路径。其重建与生成实验不能证明文字对齐或视觉问答能力。目标更简单,也不意味着推理更便宜。
τ=0.7、t=0.3 是有效噪声同步样本吗?
不是;该训练分支要求 t 不小于 τ。演示允许选无效值,以显示约束。
来源与后续阅读
Section titled “来源与后续阅读”本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。