(2024,CogView3,级联架构,中继扩散,超分辨率,线性模糊,蒸馏)通过中继扩散进行更精细、更快的文本到图像生成

CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

2. 相关工作

2.2 中继扩散模型

3 方法

3.1 文本预处理

3.2 模型 

3.3 中继超分辨率

3.4 中继扩散的蒸馏

4. 实验


0. 摘要

最近关于文本到图像生成系统的进展主要是由扩散模型驱动的。然而,单阶段的文本到图像扩散模型仍然面临着计算效率和图像细节精炼方面的挑战。为了解决这个问题,我们提出了 CogView3,这是一个创新的级联框架(cascaded framework),提高了文本到图像扩散的性能。CogView3 是第一个在文本到图像生成领域实现中继扩散(relay diffusion)的模型,通过首先创建低分辨率图像,然后应用基于中继的超分辨率来执行任务。这种方法不仅产生了有竞争力的文本到图像输出,还极大地降低了训练和推理成本。我们的实验结果表明,CogView3 在人类评价中比当前最先进的开源文本到图像扩散模型 SDXL 表现出了 77.0% 的优势,同时推理时间仅需大约 1/2。CogView3 的蒸馏变体在仅利用 SDXL 推理时间的 1/10 的情况下实现了可比较的性能。

2. 相关工作

2.2 中继扩散模型

级联扩散 [9,21] 指的是一个多阶段扩散生成框架。它首先使用标准扩散生成低分辨率图像,然后执行超分辨率。通过将有噪扩散状态的低分辨率样本 x^L 逐通道连接起来,原始级联扩散的超分辨率阶段在每个扩散步骤都以 x^L 为条件。这种条件需要增强技术来弥合真实图像和基础阶段生成的低分辨率输入之间的差距。

作为级联扩散的新变体,中继扩散 [27] 的超分辨率阶段从由高斯噪声 σ_(Tr)·ϵ 损坏的低分辨率图像 x^L 开始扩散,其中 Tr 表示超分辨率阶段中模糊调度的起始点。前向过程被定义为:

其中 F(·) 是一个预定义的从高分辨率图像 x = x_0 到低分辨率图像 x^L 的时间 t 上的过渡。F 的端点设为 F(x_0, Tr) = x^L 以确保无缝过渡。相反,中继超分辨率的反向过程是去噪和去模糊的组合。

这种设计使得中继扩散能够避免在较低分辨率条件 x^L 上使用复杂的增强技术,因为 x^L 仅在超分辨率阶段的初始采样步骤中输入,并且已经受到高斯噪声 σ_(Tr)·ϵ 的损坏。它还使得中继扩散的超分辨率阶段有可能纠正前一扩散阶段产生的一些不满意的伪影。

(2021|NIPS,VQ-VAE,精度瓶颈松弛,三明治层归一化,CapLoss)CogView:通过转换器掌握文本到图像的生成(2022|NIPS,CogLM,分层,LoPAR,icetk)CogView2:通过分层 Transformer 更快更好地文本到图像生成(2021|NIPS,VQ-VAE,精度瓶颈松弛,三明治层归一化,CapLoss)CogView:通过转换器掌握文本到图像的生成_pb-relax-CSDN博客 

3 方法

3.1 文本预处理

图像重标注(Image Recaption)。类似于 DALL-E-3 [3],我们开发了一个自动管道来重新标注来自训练数据集的图像。虽然 DALL-E-3 从人类标注者那里获得重新标注模型的指令调整数据,但我们通过自动提示 GPT-4V [1] 提取了三元组 <图像,旧标题,新标题>,如图 2 所示。通常,我们提示 GPT-4V 提出有关上传图像内容的几个问题。第一个问题是强制要求关于简要描述。最后,我们指示模型将答案与原始标题结合起来构建一个新的标题。

我们使用这种范式收集了大约 70,000 个重新标注三元组,并通过这些示例微调了 CogVLM-17B [28] 以获得重新标注模型。我们以适度的程度微调模型,batch 大小为 256,步骤数为 1,500,以防止模型严重过拟合。最终,该模型被用于重新标注整个训练数据集。与数据集中原始的简短且不太相关的标题相比,重新标注结果提供了全面、优雅和详细的图像描述。 我们用于提示 GPT-4V 的前缀语句以及用于微调重新标注模型的模板均在附录 B 中提供。

提示扩展。由于 CogView3 是在具有全面重新标注的数据集上进行训练的,而文本到图像生成系统的用户可能倾向于提供缺乏描述性信息的简要提示,这导致了模型训练和推理之间的明显不对齐 [3]。因此,我们还探索了在采样之前扩展用户提示的方法。我们提示语言模型将用户提示扩展为全面的描述,同时鼓励模型生成保留用户的原始意图。通过人类评估,我们发现扩展提示的结果更受欢迎。我们在附录 B 中提供了我们的提示扩展的模板和示例。

3.2 模型 

模型框架。CogView3 的骨干是一个 30 亿参数的文本到图像扩散模型,采用了 3 阶段 UNet 架构。该模型在潜在图像空间中运行,通过变分 KL 正则化自编码器将像素空间压缩了 8 倍。我们使用预训练的 T5-XXL [18] 编码器作为文本编码器,以提高模型的文本理解和指令遵循能力,在扩散模型的训练过程中冻结该编码器。为了确保训练和推理之间的对齐,用户提示首先由语言模型重写,如前一节所述。我们将文本编码器的输入 token 长度设置为 225,以便实现扩展提示的实现。

如图 3(左)所示,CogView3 实现为 2 阶段中继扩散。CogView3 的基础阶段是一个扩散模型,以 512×512 的分辨率生成图像。第二阶段模型执行 2 倍超分辨率,从 512×512 的输入生成1024×1024 的图像。值得注意的是,超分辨率阶段可以直接转移到更高的分辨率,并进行迭代应用,使最终输出可以达到更高的分辨率,例如图 1 顶部一行所示的案例。

训练管道。我们使用 Laion-2B [24] 作为我们的基本训练数据集来源,删除具有政治敏感、色情或暴力内容的图像,以确保训练数据的适用性和质量。过滤过程通过预定义的子字符串列表执行,以阻止与不需要的图像相关的一组源链接。与 Betker 等人 [3] 对应,我们将 95% 的原始数据标题替换为新生成的标题。与 SDXL [17] 中使用的训练方法类似,我们逐步训练 Cogview3 以开发多个阶段的模型。这极大地降低了总体训练成本。由于这样的训练设置,CogView3 的不同阶段共享相同的模型架构。

CogView3 的基础阶段在 256×256 的图像分辨率上进行了 60 万步训练,batch 大小为 2048,继续在 512×512 的分辨率上进行了 20 万步训练,batch 大小为 2048。我们在高度美学的内部数据集上对预训练的 512×512 模型进行了 1 万步微调,batch 大小为1024,以获得基础阶段模型的发布版本。为了训练 CogView3 的超分辨率阶段,我们在预训练的 512×512 模型的基础上,在1024×1024 的分辨率上进行了 10 万步训练,batch 大小为 1024,随后使用中继超分辨率的 loss 目标进行了 2 万步的微调,以获得最终版本。

3.3 中继超分辨率

潜在中继扩散。CogView3 的第二阶段通过中继进行超分辨率,从基础阶段生成的结果开始扩散。虽然原始的中继扩散处理像素级别的图像生成任务 [27],但我们在潜在空间中实现了中继扩散,并使用简单的线性变换代替原始的逐块模糊。潜在中继扩散的公式如图 3(右)所示。给定图像 x_0 及其低分辨率版本 x^L = Downsample(x_0),它们首先通过自编码器转换为潜在空间,即 z_0 = E(x_0),z^L = E(x^L)。然后线性模糊变换定义为:

其中,Tr 表示用于中继超分辨率的起始点,z^(Tr)_0 与 z^L 完全匹配。潜在中继扩散的前向过程可以写成:

训练目标相应地制定为:

其中 D 表示 UNet 去噪函数,c_text 表示输入文本条件。

采样器形式。接下来,我们介绍了用于中继超分辨率的采样器的设计。给定在基础阶段生成的样本X^L,我们对 X^L 进行双线性上采样得到 x^L。中继扩散的起始点定义为 z_Tr = z^(Tr)_0 + σ_(Tr)·ϵ,其中 ϵ 表示单位各向同性高斯噪声,z^(Tr)_0 = E(x^L)是双线性上采样的基础阶段生成的潜在表示。对应于方程 5 中制定的中继超分辨率的前向过程,反向过程在 DDIM [25] 范式中定义如下:

 

其中 at, bt, ct, z^t_0 在方程 4 中定义,δt 表示采样器的随机程度。在实践中,我们简单地将 δt 设置为 0,作为 ODE 采样器。该过程如算法 1 所示。采样器与潜在中继扩散的一致性的详细证明见附录 A。

3.4 中继扩散的蒸馏

我们结合了渐进蒸馏(progressive distillation) [15] 的方法和中继扩散的框架,以实现 CogView3 的蒸馏版本。虽然CogView3 的基础阶段执行标准扩散,但蒸馏过程遵循原始的实现。

对于超分辨率阶段,我们将模糊调度合并到扩散蒸馏训练中,通过将教师模型的潜在中继采样器的两个步骤与学生模型的一个步骤进行匹配,逐渐减半采样步骤。教师步骤定义为:

其中 (ak, bk, ck),k ∈ {0, ..., Tr},指的是算法 1 中定义的系数。学生模型的一个步骤定义为:

训练目标定义为 ˆz_(t−2) 和 z_(t−2) 之间的均方误差。在蒸馏过程中,我们遵循 Meng 等人[15],同时,通过将无分类器引导(classifier-free guidance,CFG)[10] 的属性强度 w 的可学习的投影嵌入添加到时间步骤嵌入中, 将 w 添加到扩散模型中。

我们不是使用独立阶段进行调整,而是在蒸馏的第一轮直接进行合并,并在后续轮次直接在 w 上进行条件设定。低分辨率基础阶段的推理成本比高分辨率相应阶段低得多,但它必须从完整的扩散调度中调用。另一方面,超分辨率阶段从扩散调度的中间点开始扩散。这极大地简化了任务,并减少了扩散蒸馏可能产生的潜在误差。因此,我们能够为中继蒸馏分配最终的采样步骤,对于基础阶段为 8 步,超分辨率阶段为 2 步,甚至可以分别减少到 4 步和 1 步,这既降低了推理成本,又基本保留了生成质量。

4. 实验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值