Bootstrap

超详细!!!一文理解Consistency models

近期没更新,在研究扩散模型的发展,看了很久也没能总结好,推荐按时间历程看一下songyang的文章,后面会跟进总结一下

写作动机

现有的扩散模型在图像、音频和视频生成方面取得了显著进展,但它们依赖于迭代采样过程,导致生成速度慢。本文的动机是提出一种能够直接将噪声映射到数据的模型,实现快速的一步生成,同时保留多步采样的能力,以便在需要时通过增加计算量来提升样本质量。此外,该模型还支持零样本数据编辑,例如图像修复、上色和超分辨率。

解决的问题

一致性模型的目的是解决扩散模型在生成速度上的瓶颈。扩散模型需要多次迭代才能逐步去除噪声,这使得生成过程非常缓慢,限制了其实时应用。通过引入一致性模型,本文旨在实现高效的单步生成,同时保留多步生成和数据编辑的优势。

改进和优势

与之前的扩散模型相比,一致性模型在以下方面进行了改进:

  1. 生成速度:一致性模型通过直接映射噪声到数据,实现了一步生成,大大提升了生成速度。

  2. 灵活性:一致性模型仍然支持多步生成,可以在需要时通过增加计算量来提高样本质量。

  3. 零样本数据编辑:一致性模型无需专门训练,便能够进行图像修复、上色、超分辨率等数据编辑任务。

  4. 训练方式:一致性模型可以通过蒸馏预训练的扩散模型或独立训练的方式进行训练,提供了更大的灵活性。

  5. 性能表现:在实验中,一致性模型在CIFAR-10和ImageNet 64x64等数据集上实现了新的最先进的Frechet Inception Distance (FID)指标,超越了现有的扩散模型蒸馏技术。

训练方法

训练一致性模型有两种方法:

  1. 使用预训练的扩散模型和数值ODE求解器:生成PF ODE轨迹上的相邻点对,通过最小化这些点对输出的差异,将扩散模型蒸馏为一致性模型,实现高质量的单步生成。

  2. 独立训练一致性模型:无需预训练的扩散模型,使一致性模型成为一个独立的生成模型家族。

这两种方法都不需要对抗训练,并且对架构的限制较少,可以使用灵活的神经网络来参数化一致性模型。

SDE去噪:通过随机过程逐步去噪,计算复杂,需要多次迭代,适用于处理复杂噪声。

ODE去噪:通过确定性过程一步步去噪,计算效率高,稳定性好,求解步骤少,适用于需要高效计算的场景

扩散模型的基本原理

一致性模型受到连续时间扩散模型理论的启发。扩散模型通过高斯扰动逐步将数据扰动成噪声,然后通过逐步去噪从噪声中生成样本。设 pdata(x) 表示数据分布。扩散模型从一个随机微分方程(SDE)开始,逐步将数据分布扰动成一个可处理的高斯分布。

比较

  • 精度:Heun求解器的精度高于欧拉求解器,前者是二阶方法,后者是一阶方法。

  • 复杂度:欧拉求解器实现简单,计算量小;Heun求解器相对复杂,需要两次函数评估。

  • 稳定性:Heun求解器通常比欧拉求解器更稳定,尤其在处理非刚性问题时表现更好。

采样速度瓶颈

扩散模型的一个主要瓶颈是其慢速的采样速度。使用ODE求解器进行采样需要对分数模型进行多次迭代评估,这是计算量大的过程。现有的加速采样方法包括更快的数值ODE求解器和蒸馏技术。然而,即使是快速ODE求解器,仍需要超过10次评估步骤才能生成有竞争力的样本。大多数蒸馏方法需要预先生成大量扩散模型样本,这本身也是一个计算量大的过程。

渐进蒸馏方法

目前,唯一不依赖预先生成样本的蒸馏方法是渐进蒸馏(PD),本文在实验中广泛比较了一致性模型和PD的方法。

渐进蒸馏(PD)与一致性模型(CM)的区别

渐进蒸馏(PD)

渐进蒸馏是一种将预训练扩散模型知识转移到轻量级模型的方法,其主要特征和步骤如下:

  1. 预训练扩散模型:首先训练一个高质量的扩散模型,这一步涉及大量计算资源。

  2. 逐步蒸馏:在不生成大规模样本的情况下,将预训练模型的知识逐步蒸馏到一个较小的模型中。PD方法通过一系列步骤逐步缩短扩散过程,使得每一步生成的样本都更接近于最终高质量样本。

  3. 逐步采样:通过多个步骤来生成样本,每一步都依赖于之前步骤的输出。这种方法减少了所需的计算步骤,但仍需要一定数量的迭代。

一致性模型(CM)

一致性模型是一种全新的生成模型家族,旨在实现快速单步生成,同时保留多步采样的灵活性。其主要特征和步骤如下:

  1. 自一致性原理:一致性模型基于概率流(PF)ODE理论,学习将任意时间步的点映射到轨迹的起点,确保同一轨迹上的点映射到相同的初始点。

  2. 两种训练方法

    1. 蒸馏预训练的扩散模型:使用数值ODE求解器和预训练的扩散模型生成PF ODE轨迹上的相邻点对,通过最小化这些点对的输出差异,将扩散模型的知识蒸馏到一致性模型中。

    2. 独立训练:不依赖预训练的扩散模型,直接训练一致性模型,使其成为一个独立的生成模型家族。

  3. 单步生成和多步采样:一致性模型可以通过一次网络评估实现单步生成,也可以通过在多个时间步上链接输出进行多步采样,以提高样本质量和进行数据编辑。

主要区别

  1. 预训练依赖

    1. 渐进蒸馏(PD):依赖于预训练的扩散模型,逐步缩短扩散过程。

    2. 一致性模型(CM):可以选择依赖预训练的扩散模型进行蒸馏,也可以独立训练,不依赖预训练模型。

  2. 生成速度

    1. 渐进蒸馏(PD):需要多个步骤来生成样本,尽管减少了传统扩散模型的计算步骤,但仍需要一定的迭代。

    2. 一致性模型(CM):通过单步生成实现快速生成,同时保留多步采样的灵活性。

  3. 训练方法

    1. 渐进蒸馏(PD):主要依赖于逐步缩短扩散过程的蒸馏方法。

    2. 一致性模型(CM):除了可以通过蒸馏预训练模型进行训练,还可以独立训练成为一个新的生成模型家族。

  4. 零样本数据编辑能力

    1. 渐进蒸馏(PD):主要关注样本生成的速度和质量。

    2. 一致性模型(CM):除了样本生成,还支持广泛的零样本数据编辑任务,如图像去噪、插值、修复、上色、超分辨率和基于笔触的图像编辑。

总结来说,一致性模型在保持高质量生成的前提下,提供了更快速和灵活的生成方法,并且在零样本数据编辑任务中展现了强大的能力。

蒸馏预训练的扩散模型

通过使用数值ODE求解器生成相邻点对,并最小化这些点对的输出差异,一致性模型能够从预训练的扩散模型中蒸馏知识。最终,一致性模型可以实现快速的单步生成,同时保留多步采样的灵活性和高质量样本生成的能力。

多步采样

多步采样(multistep sampling)在一致性模型中的应用,以通过多次去噪和噪声注入步骤提高生成样本的质量。具体来说,多步采样允许在计算资源和样本质量之间进行权衡,并在零样本数据编辑中具有重要应用。

多步采样的含义和过程

  • 多步采样: 通过在去噪和噪声注入之间交替进行多次评估一致性模型,从而逐步改善生成样本的质量。

  • 计算与质量的权衡: 通过增加采样步骤,可以在计算成本和样本质量之间灵活权衡。更多的采样步骤通常会提高样本质量,但也需要更多的计算资源。

  • 应用: 多步采样在零样本数据编辑(zero-shot data editing)中具有重要应用,可以在不需要额外训练的情况下进行数据编辑。

蒸馏过程的详细步骤

一致性蒸馏损失

;