夕小瑶科技说 原创
作者 | ZenMoore
为了解决这些问题,研究人员提出了很多高速采样方法,包括通过增强 ODE 求解器来加速去噪过程,或者将多步数扩散模型的生成能力蒸馏到小步数的扩散模型中等等。
其中,最可圈可点的是一致性模型(Consistency Models),其通过学习保持 ODE 轨迹上点一致性的一致性映射,可以实现单步生成。然而,这个方法存在两个问题:
因此,本文提出了潜在一致性模型(Latent Consistency Models)LCMs 用于快速生成高分辨率图像。与 LDM 相似,作者在 Stable Diffusion 的预训练自编码器的图像潜空间中采用了一致性模型。作者提出了一种单阶段引导蒸馏法(one-stage guided distillation method),通过求解增强 PF-ODE 将预训练的引导扩散模型高效地转换为潜在一致性模型。此外,作者还提出了潜在一致性微调法(Latent Consistency Finetuning),允许对预训练的 LCM 进行微调,以支持在定制图像数据集上进行少步推理。
论文链接:https://arxiv.org/pdf/2310.04378.pdf
项目主页:https://latent-consistency-models.github.io/
Warning: 前方数学密集且要求有一定的扩散模型基础知识!可以直接跳过看效果!
先回顾扩散模型的原理:
扩散模型分为两个过程,前向加噪过程和后向降噪过程。
在前向过程中,考虑原始数据分布 ,转变到边际分布 . 这个转变基于 加噪。
在连续时间下,这个前向过程可以描述为:,这里的 是 standard Brownian motion,而且:
.
考虑逆向时间 SDE,边际分布 满足下面的常微分方程(ODE, ordinary differential equation),名为 概率流 ODE (PF-ODE, Probability Flow ODE):
.
扩散模型做的事情就是训练一个噪声预测模型 以拟合 score function
近似代入可以得到:
.
那么,这个噪声预测模型怎么建模呢?现在主流的方法是采用 Classifier-Free Guidance (CFG),该方法被用于 GLIDE, Stable Diffusion, DALL-E 2 以及 Imagen 等众多模型中:
.
一致性模型的核心思想是学习一个函数,这个函数能够将概率流常微分方程(PF-ODE)轨迹上的任意点映射到该轨迹的起点。这样的函数我们称之为一致性函数,表示为:。其定义为:给定点 和时间 ,函数会映射到 。
一个关键的观察是,一致性函数应满足自我一致性属性。这意味着,对于任意的 和 在 [, ] 的范围内,函数的值应该是相同的。
一致性模型是由参数 定义的,它的表达式为: 其中, 是一个深度神经网络。
可以从一个预训练的扩散模型中提取一致性模型,或者从零开始训练。前者被称为一致性蒸馏(Consistency Distillation)。
为了保证自我一致性,需要维护了一个目标模型 ,这个模型使用 参数的指数移动平均(EMA)进行更新。一致性损失定义为:. 其中, 是从 估算的 的一步估计。
作者在文章中提到,尽管之前的一致性模型 (CMs) 专注于 ImageNet 64×64 和 LSUN 256×256 的图像生成任务,但它们在高分辨率的文本到图像任务上的潜力仍未被探索。为了解决这更具挑战性的任务,作者提出了“潜在一致性模型” (LCMs)。与 LDMs 类似,LCMs 在图像潜在空间中采用一致性模型,并选择了强大的 Stable Diffusion 作为底层的扩散模型进行蒸馏。此外,作者还提出了简化的单阶段引导蒸馏方法和"SKIPPING-STEP"技术来加速 LCMs 的收敛。
在 Stable Diffusion 中,作者首先训练了一个自动编码器 (E, D) 来将高维图像数据压缩到低维潜在向量 ,然后解码以重构图像 。使用潜在空间进行训练的扩散模型相比基于像素的模型大大减少了计算成本,加快了推断过程。对于 LCMs,作者利用了潜在空间的优势进行一致性蒸馏,这与 CMs 使用的像素空间形成了对比。
作者重点研究了条件生成。对于反向扩散过程的 PF-ODE,其公式为:, 其中 是图像潜在向量, 是噪声预测模型, 是给定的条件(例如文本)。
为了执行潜在一致性蒸馏,作者引入了一致性函数 来直接预测 PF-ODE 的解。最后,作者定义了一致性蒸馏损失,并利用有效的 ODE 求解器进行近似。
在“单阶段引导蒸馏通过求解增强的 PF-ODE”一节中,作者强调了 Classifier-free guidance (CFG) 对于在 SD 中合成高质量文本对齐图像的重要性(通常需要 CFG 的尺度 大于6)。因此,将 CFG 整合到蒸馏方法中变得至关重要。
之前的 Guided-Distill 方法引入了两阶段蒸馏以支持从引导扩散模型中进行少步采样,但这种方法在计算上非常密集。相比之下,LCM 仅需要32个 A100 GPUs 小时的训练时间来完成2步推断。
为了有效地执行单阶段引导蒸馏,作者引入了增强的一致性函数 来直接预测增强的 PF-ODE 的解。该函数考虑了引导尺度 ,具体公式为:
.
其中, 是原始噪声预测的线性组合,结合了条件和无条件噪声。
最后,作者使用增强的一致性函数 定义了一致性蒸馏损失:
其中 和 n 是从给定的范围中均匀抽样的。
作者提到,离散扩散模型通常使用一个长时间步进度表(也称为离散化进度表或时间进度表)来达到高质量的生成效果。例如,Stable Diffusion 有一个长度为1,000的时间进度表。但直接将Latent Consistency Distillation (LCD)应用到具有如此扩展进度表的Stable Diffusion可能会有问题。模型需要跨所有1,000个时间步进行采样,而一致性损失会尝试使LCM模型 的预测与沿着相同轨迹的下一个步骤 的预测保持一致。由于 很小, 和 以及他们的预测结果已经非常接近,从而导致一致性损失较小,收敛速度慢。
为了解决这些问题,作者引入了跳步方法,大大缩短了时间进度表的长度(从数千减少到数十),以实现快速收敛,同时保持生成质量。对于LCMs,为适应Stable Diffusion中的离散时间进度表,作者使用了DDIM、DPM-Solver或DPM-Solver++作为ODE求解器。现在,作者在Latent Consistency Distillation (LCD)中引入了跳步方法。不是保证相邻时间步 之间的一致性,而是旨在确保当前时间步与 步之间的一致性,。他们在主要实验中设置 ,将时间进度表的长度从数千大大减少到数十。结果显示,跳步方法在加速LCD过程中至关重要。
具体来说,一致性蒸馏损失修改为确保从 到 的一致性:
Stable Diffusion 这种基础生成模型在多种文本到图像的生成任务中表现出色,但通常需要针对定制的数据集进行微调,以满足下游任务的需求。作者提出了一种名为 Latent Consistency Fine-tuning (LCF) 的预训练LCM的微调方法。受到Consistency Training (CT)的启发,LCF能够在定制数据集上进行高效的少步推理,而无需依赖在这些数据上训练的教师扩散模型。这种方法为扩散模型的传统微调方法提供了一个可行的替代方案。
潜在一致性模型在 1~4 步的图像生成上,大幅超越之前的方法:
实际效果展示如下:
定制数据集微调结果:
总之,在一致性模型之后,这篇工作之所以称为图像生成扩散模型的新里程碑,主要是两点: