提升77%,推理时间降一半 | CogView3:最新SOTA文生图方案(清华&智谱AI)

文章链接: https://arxiv.org/pdf/2403.05121

最近,文本到图像生成系统的发展主要是由扩散模型驱动的。然而,单阶段文本到图像扩散模型仍然面临着计算效率和图像细节的改进等挑战。为了解决这个问题,本文提出了CogView3,这是一个创新的级联框架,可以提升文本到图像扩散的性能。

CogView3是第一个在文本到图像生成领域实现中继扩散的模型,通过首先创建低分辨率图像,然后应用基于中继的超分辨率来执行任务。这种方法不仅能够产生竞争力强的文本到图像输出,而且大大减少了训练和推理成本。

实验结果表明,CogView3在人类评价中比当前最先进的开源文本到图像扩散模型SDXL表现提高了77.0%,同时推理时间仅需SDXL的约1/2。CogView3的精简变体在只利用SDXL推理时间的1/10的情况下,实现了可比的性能。

介绍

扩散模型已经成为当今文本到图像生成系统的主流框架。与自回归模型和生成对抗网络的范式相比,扩散模型将图像合成任务概念化为一个多步去噪过程,从各向同性高斯噪声开始。

随着训练数据量和神经网络计算成本的激增,扩散模型的框架在视觉生成领域已经取得了有效性,能够遵循用户指令并生成具有令人赞赏细节的图像。当前最先进的文本到图像扩散模型大多在单一阶段操作,在高分辨率图像上进行扩散过程,如1024×1024。对高分辨率图像进行直接建模会加剧推理成本,因为每个去噪步骤都是在高分辨率空间上执行的。

为了解决这个问题,Luo等人和Sauer等人提出将扩散模型蒸馏,显著减少采样步骤数量。然而,除非引入GAN损失,否则扩散蒸馏过程中的生成质量往往会明显下降,而引入GAN损失会使蒸馏过程变得更加复杂,并可能导致训练不稳定。

本文提出了CogView3,一种新颖的文本到图像生成系统,它采用了中继扩散。中继扩散是一种新的级联扩散框架,将生成高分辨率图像的过程分解为多个阶段。它首先生成低分辨率图像,然后执行中继超分辨率生成。与以往的级联扩散框架不同,以往的框架在超分辨率阶段的每一步都是在低分辨率生成上进行条件化,中继超分辨率在低分辨率生成上添加高斯噪声,并从这些噪声图像开始扩散。这使得中继扩散的超分辨率阶段能够修正由前一扩散阶段产生的不满意的图像伪影。

在CogView3中,将中继扩散应用于潜在图像空间,而不是像原始版本那样在像素级别,通过利用简化的线性模糊调度和相应的采样器。通过对超分辨率阶段的迭代实现,CogView3能够生成分辨率极高的图像,例如2048×2048。

考虑到低分辨率推理成本比高分辨率推理成本小得多的事实,通过在基础和超分辨率阶段之间合理分配采样步骤,CogView3可以以显著降低的推理成本产生具有竞争力的生成结果。人工测评结果显示,CogView3以77.0%的胜率优于SDXL。此外,通过扩散模型的渐进蒸馏,CogView3能够在仅利用SDXL推理所需时间的1/10的情况下产生可比的结果。

本文贡献可以总结如下:

  • 提出了CogView3,这是第一个在中继扩散框架下的文本到图像系统。CogView3能够生成分辨率极高的高质量图像,如2048×2048。

  • 基于中继框架,CogView3能够以显著降低的时间成本产生具有竞争力的结果。CogView3在推理过程中以约1/2的时间取得了77.0%的胜率。

  • 进一步探索了CogView3的渐进蒸馏,这在中继设计的显著帮助下实现。CogView3的蒸馏变体在仅利用SDXL所需时间的1/10的情况下提供可比的生成结果。

背景

文本到图像扩散模型

Ho等人定义了扩散模型,建立了一个前向扩散过程,逐渐向真实数据添加高斯噪声,如下所示:

其中定义了控制扩散进程的噪声调度。相反,反向过程通过逐步去噪从纯高斯噪声中生成图像,遵循马尔可夫链。

在每个时间步骤,一个神经网络被训练来基于当前的噪声图像预测去噪结果。对于文本到图像扩散模型,一个额外的文本编码器对文本输入进行编码,然后将其输入到主网络的交叉注意力模块中。训练过程通过优化反向过程的变分下界来实现,其写成:

其中表示由噪声调度控制的噪声尺度。c表示包括文本embedding在内的输入条件。

最近的研究一致地将扩散模型应用于潜在空间,从而大大节省了训练和推理成本。它们首先使用预训练的自编码器将图像x压缩成具有较低维度的潜在表示z,该表示大致可通过其解码器恢复。扩散模型学习生成图像的潜在表示。

中继扩散模型

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

作为级联扩散的一种新变体,中继扩散的超分辨率阶段改为从由高斯噪声污染的低分辨率图像开始扩散,其中表示超分辨率阶段中模糊调度的起始点。正向过程被公式化为:

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

这种设计使得中继扩散可以避免对低分辨率条件进行复杂的增强技术,因为仅在超分辨率阶段的初始采样步骤中输入,并且已经被高斯噪声污染。它还使得中继扩散的超分辨率阶段有可能纠正前一扩散阶段产生的一些不满意的伪影。

扩散蒸馏

知识蒸馏是一种旨在将更大的教师模型转移到较小的学生模型的训练过程。在扩散模型的背景下,蒸馏被探索为一种减少采样步骤以节省推理的计算成本的手段,同时防止生成性能的显著下降。

作为扩散蒸馏中显著范式之一,渐进蒸馏训练学生模型,在每个训练阶段的每两个步骤中匹配一次教师模型的单个步骤。这个过程重复进行,逐渐减半采样步骤。

另一方面,一致性模型提出了一种对现有扩散模型进行微调的方法,将每个扩散步骤投影到最新的步骤以确保逐步一致性,这也减少了模型的采样步骤。虽然以前的扩散蒸馏方法大多会在生成质量上做出妥协,但对抗性扩散蒸馏通过在蒸馏中加入额外的GAN损失来减轻这种情况。然而,由于GAN训练的不稳定性,这使得蒸馏过程更加具有挑战性。

方法

文本预处理

图像重描述: 在DALL-E-3的基础上,我们开发了一个自动流程来重新描述训练数据集中的图像。虽然DALL-E-3从人工标注者那里获取重新描述模型的指令调整数据,但通过自动提示GPT-4V来提取<图像,旧描述,新描述>三元组,如下图2所示。

通常情况下,提示GPT-4V提出关于上传图像内容的几个问题。第一个问题强制性地要求简要描述。最后,指示模型将答案与原始描述结合起来构建一个新描述。

使用这种范式收集了约70,000个重新描述三元组,并通过这些示例对CogVLM-17B进行微调以获得重新描述模型。以适度程度微调模型,batch大小为256,训练步数为1,500步,以防止模型过度拟合。最终,该模型被用于重新描述整个训练数据集。与数据集中原始的简短且不太相关的描述相比,重新描述的结果提供了全面、优雅和详细的图像描述。

提示扩展:鉴于CogView3是在具有全面重新描述的数据集上进行训练,而文本到图像生成系统的用户可能倾向于提供缺乏描述性信息的简要提示,这导致模型训练和推理之间存在明显的不一致性。

因此,我们还探索在使用扩散模型采样之前扩展用户的prompt。提示语言模型将用户提示扩展为全面的描述,同时鼓励模型生成保留用户原始意图。通过人工测评,发现扩展提示的结果具有更高的偏好度。

模型框架:CogView3的主干是一个30亿参数的文本到图像扩散模型,采用了3阶段的UNet架构。该模型在潜在图像空间中运行,通过变分KL正则化自编码器将像素空间压缩了8倍。

我们采用了预训练的T5-XXL编码器作为文本编码器,以提高模型对文本理解和指令遵循的能力,在扩散模型的训练过程中将其冻结。为了确保训练和推理之间的对齐,用户提示首先由语言模型重新编写,如前文所述。将文本编码器的输入token长度设置为225,以便实现扩展提示的实施。

如下图3(左)所示,CogView3实现为一个2阶段的中继扩散模型。

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

训练流程:使用Laion-2B作为我们的训练数据集的基本来源,删除了具有政治敏感、色情或暴力内容的图像,以确保训练数据的适当性和质量。过滤过程通过一个预定义的子字符串列表来执行,以阻止与不良图像相关联的一组来源链接。

与Betker等人对应,我们用新生成的描述替换了原始数据描述的95%。与SDXL中使用的训练方法类似,逐步训练CogView3以开发多个阶段的模型。这大大降低了总体训练成本。由于这样的训练设置,CogView3的不同阶段共享相同的模型架构。

CogView3的基础阶段在256×256的图像分辨率上进行了600,000步的训练,batch大小为2048,并继续在512×512的分辨率上进行了200,000步的训练,batch大小为2048。

在一个高美感的内部数据集上对预训练的512×512模型进行了10,000步的微调,batch大小为1024,以获得基础阶段模型的发布版本。为了训练CogView3的超分辨率阶段,在预训练的512×512模型基础上,以1024×1024分辨率进行了100,000步的训练,batch大小为1024,然后进行了20,000步的微调,使用中继超分辨率的损失目标,以获得最终版本。

中继超分辨率

潜在中继扩散:CogView3的第二阶段通过中继进行超分辨率,从基础阶段生成的结果开始扩散。虽然原始的中继扩散处理图像生成任务是在像素级别进行的,但我们在潜在空间中实现了中继扩散,并利用简单的线性变换代替原始的逐块模糊。

潜在中继扩散的公式化如前面图3(右)所示。给定图像及其低分辨率版本,它们首先通过自编码器转换为潜在空间,即,。然后,线性模糊变换被定义为:

其中,表示用于中继超分辨率的起始点,与完全匹配。然后,潜在中继扩散的正向过程被写为:

相应的训练目标被表述为:

采样公式 接下来介绍为中继超分辨率设计的采样器。给定在基础阶段生成的样本,将其双线性上采样成。中继扩散的起始点被定义为,其中ε表示一个单位各向同性高斯噪声,而是双线性上采样基础阶段生成的潜在表示。与公式5中制定的中继超分辨率的正向过程相对应,反向过程在DDIM 范式中被定义为:

其中,,在公式4中定义,代表采样器的随机度。在实践中,我们简单地将设置为0,作为ODE采样器。该过程如下算法1所示。

中继扩散蒸馏

我们将渐进蒸馏的方法与中继扩散的框架结合起来,实现了CogView3的蒸馏版本。虽然CogView3的基础阶段执行标准的扩散,但蒸馏过程遵循原始的实现方式。

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

其中,(,k ∈ {0,...,}指的是算法1中定义的项目系数。学生模型的一步被定义为:

训练目标定义为和之间的均方误差。根据Meng等人的方法,在蒸馏过程中同时将分类器无关引导(CFG)的性质强度w纳入扩散模型中,通过将可学习的w投影embedding到时间步骤embedding中。我们不使用独立的阶段进行调整,而是在蒸馏的第一轮实现并在随后的轮次中直接依赖于w。

低分辨率基础阶段的推理成本比高分辨率对应阶段的成本要低得多,但它必须从完整的扩散调度中调用。另一方面,超分辨率阶段从扩散调度的中间点开始扩散。这极大地简化了任务,并减少了扩散蒸馏可能产生的潜在错误。因此,我们能够将最终的采样步骤分配给中继蒸馏,基础阶段为8步,超分辨率阶段为2步,甚至可以分别减少到4步和1步,从而既大大降低了推理成本,又大部分保留了生成质量。

实验

实验设置

我们实施了一个全面的评估过程,以展示CogView3的性能。在总扩散时间步数为1000的整体扩散调度上,将中继超分辨率的起始点设置为500,这是通过消融研究得出的决定。为了生成用于比较的图像,分别通过CogView3的基础阶段和超分辨率阶段进行了50步和10步的采样,都利用了一个分类器无关引导的值为7.5,除非另有说明。所有比较都在图像分辨率为1024×1024时进行。

数据集 选择了一组图像-文本对数据集以及用于比较分析的提示集合。其中,MS-COCO 是用于评估文本到图像生成质量的广泛应用的数据集。随机选择了MS-COCO的一个子集,包含5000个图像-文本对,命名为COCO-5k。还结合了DrawBench和PartiPrompts,两个广为人知的文本到图像评估提示集。DrawBench包含200个具有挑战性的提示,评估生成样本的质量和图像与文本之间的对齐性。相比之下,PartiPrompts包含1632个文本提示,并提供了全面的评估评论。

基线 在评估中,我们使用最先进的开源文本到图像模型作为基线,具体为SDXL和Stable Cascade。SDXL是一个单阶段的潜在扩散模型,能够在1024×1024附近生成图像。另一方面,Stable Cascade实现了一个级联pipeline,首先生成16×24×24的先验,然后根据先验生成分辨率为1024×1024的图像。我们分别对SDXL进行了50步采样,对Stable Cascade的两个阶段进行了20步和10步的采样。在所有情况下,均遵循其建议的分类器无关引导配置。

评估指标 使用美感分数(Aes)来评估生成样本的图像质量。还采用了人类偏好分数v2(HPS v2)和图像奖励来评估文本与图像的对齐程度和人类偏好。Aes是通过从LAION数据集中训练得到的美感评分预测器获得的,忽略了提示和图像之间的对齐。HPS v2和ImageReward都用于预测人们对图像的偏好,包括对文本-图像对齐、人类审美等的评估。除了机器评估外,还进行了人工测评,以进一步评估模型的性能,涵盖图像质量和语义准确性。

机器评估结果下表1显示了在DrawBench和Partiprompts上的机器指标结果。

虽然CogView3的推理成本最低,但在大多数比较中都表现优于SDXL和Stable Cascade,除了在PartiPrompts的ImageReward上略为落后于Stable Cascade。表2显示了在COCO-5k上的比较结果,结果与此类似。CogView3的蒸馏版本推理时间极低,为1.47秒,但仍然实现了可比较的性能。表中显示,CogView3的蒸馏变体的结果明显优于先前的SDXL上的潜在一致性模型的蒸馏范式。

比较结果显示了CogView3生成图像的性能得到了显著降低的成本的提高。CogView3的蒸馏成功地保留了大部分生成质量,同时将采样时间大幅缩短到极端程度。在很大程度上将上述比较结果归因于CogView3的中继属性。在接下来的部分中,将通过人工测评进一步展示CogView3的性能。

人工测评结果

通过让标注者进行成对比较来进行CogView3的人工测评。要求人工标注者根据提示对齐和生成物的审美质量提供胜、负或平局的结果。我们使用DrawBench作为评估基准。对于CogView3的生成,我们首先将DrawBench的提示扩展为详细描述,如前所述,使用扩展后的提示作为模型的输入。为了进行全面评估,我们将CogView3的生成与SDXL和Stable Cascade的生成进行比较,同时使用原始提示和扩展提示。

如下图4所示,CogView3在提示对齐和美感质量方面显著优于SDXL和Stable Cascade,分别达到77.0%和78.1%的平均胜率。

通过扩展提示与SDXL和Stable Cascade的生成进行比较时,CogView3的平均胜率分别达到74.8%和82.1%。为了评估蒸馏,将蒸馏后的CogView3与在潜在一致性模型框架下蒸馏的SDXL进行比较。如下图5所示,蒸馏后的CogView3的性能明显优于LCM-蒸馏的SDXL,与前面的结果一致。

额外的消融

中继超分辨率的起始点 消融了中继超分辨率起始点的选择,如表3所示,发现中间点获得了最佳结果。该比较还以下图6中的定性案例进行说明。

早期的起始点倾向于产生模糊的内容,如1000个案例中的花朵和草所示,而相反,一个晚期的起始点引入了人工制品,如1000个案例中的花朵和边缘所示,表明中间点是最佳选择。基于比较的结果,选择500作为我们最终确定的起始点。

文本扩展提高对齐性 虽然提示扩展几乎没有改进SDXL和Stable Cascade的生成,但我们强调了它对CogView3性能的重要性。下图7显示了进行提示扩展与不进行提示扩展的比较结果,明确展示了提示扩展显著提升了CogView3的提示指令跟随能力。

下图8展示了提示扩展前后的定性比较。

扩展的提示为模型生成提供了更全面和分布式的描述,大大提高了CogView3的指令跟随准确性。在SDXL的生成中没有观察到类似的改进。可能的原因是SDXL是在原始描述上进行训练的,并且只有77个token的输入窗口,导致经常截断扩展的提示。这证实了前面中的陈述,即提示扩展有助于弥合模型推理和使用重新描述化数据进行训练之间的差距。

迭代超分辨率的方法 虽然在更高的图像分辨率上直接实现超分辨率阶段模型可以实现预期的输出,但这会引入过多的CUDA内存要求,这在4096×4096的分辨率上是不可承受的。平铺扩散是一系列针对扩散模型的推理方法,解决了这个问题。它将大图像的推理步骤分成重叠的较小块,并将它们混合在一起以获得步骤的整体预测。

如下图9所示,平铺推理可以实现可比的结果。这使得CogView3可以通过有限的CUDA内存使用生成具有更高分辨率的图像。使用平铺方法也可以生成4096×4096的图像,这留待将来工作。

结论

这项工作提出了CogView3,第一个在中继扩散框架中的文本到图像生成系统。CogView3通过中继pipeline实现了优选的生成质量,并大大降低了推理成本。通过迭代实现CogView3的超分辨率阶段,我们能够实现极高分辨率的高质量图像,如2048×2048。同时,通过将数据重新描述化和提示扩展纳入模型pipeline,CogView3在提示理解和指令跟随方面比当前最先进的开源文本到图像扩散模型表现更好。

我们还探索了CogView3的蒸馏,并展示了其简单性和能力,这归功于中继扩散的框架。利用渐进式蒸馏范式,CogView3的蒸馏变体极大地减少了推理时间,同时仍保持了可比的性能。

参考文献

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

 更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术,添加小助手

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值