跳转到内容
English

DiTo:通过去噪学习 tokenizer

交互教程

紧凑编码可以作为迭代解码器的条件;DiTo 用扩散目标学习这种编码。

前置阅读:扩散与 Flow Matching · 变分自编码器

VQGAN 结合重建、感知及对抗目标;latent diffusion 常将图像 tokenizer 与生成主干分开训练。DiTo 追问:扩散重建目标能否直接训练有用的 tokenizer,免去这套损失混合?

编码器输出连续空间 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)

查看固定版本来源

τ∼U[0,1],t∣τ∼U[τ,1]\tau\sim\mathcal{U}[0,1],\qquad t\mid\tau\sim\mathcal{U}[\tau,1]

默认瓶颈下采样 8 倍、4 通道;256² 输入对应 32 × 32 × 4 个值。它们描述输入图像;解码器还接收新像素噪声。因此重建结合编码内的信息与学习到的条件图像分布。

噪声同步有时先在时间 τ 扰动 latent,再从 [τ,1] 采样像素噪声时间 t。演示将 t 小于 τ 的组合标为该分支无效。按图中约定,t 越大噪声越多。这是训练约束,并不要求两份噪声的数值相同。

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

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

x = 2, t = 0ε = −1, t = 1

直线路径速度已知;学习模型需要估计速度,本演示不衡量其误差。

当前例子的计算值
量值
约束 t ≥ τ满足
τ0.300
t0.600
x_t = (1 − t) × 2 + t × (−1)0.200
v = ε − x-3

论文以 0.1 概率使用噪声同步;默认训练为 300k iterations、batch 64。报告的重建使用 50 步 Euler ODE 解码。与单次前向图像解码器比较时,必须计入这些调用。下游 latent 生成器仍是独立组件。

本文依据固定版本论文,未审计 DiTo 官方代码路径。其重建与生成实验不能证明文字对齐或视觉问答能力。目标更简单,也不意味着推理更便宜。

τ=0.7、t=0.3 是有效噪声同步样本吗?

不是;该训练分支要求 t 不小于 τ。演示允许选无效值,以显示约束。

返回学习地图

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