单元 4:深入了解扩散模型
欢迎来到 Hugging Face 扩散模型课程的单元 4!在本单元中,我们将了解一些最新的研究中出现的扩散模型的许多改进和扩展。与之前的单元相比,本单元的代码量会少一些,旨在为您提供进一步研究的起点。
开始本单元 :rocket:
以下是本单元的步骤
- 确保您已注册本课程,以便在课程中添加更多单元时收到通知。
- 阅读下面的材料,了解本单元涵盖的不同主题的概述。
- 通过链接的视频和资源更深入地了解任何特定主题。
- 探索演示笔记本,然后阅读“下一步”部分以获取一些项目建议。
:loudspeaker: 不要忘记加入Discord,您可以在 #diffusion-models-class
频道中讨论材料并分享您制作的内容。
目录
通过蒸馏加速采样
渐进式蒸馏是一种利用现有扩散模型来训练新模型版本的技巧,该新模型版本需要更少的推理步骤。 “学生”模型从“教师”模型的权重进行初始化。在训练期间,教师模型执行两个采样步骤,而学生模型尝试在一个步骤中匹配生成的预测结果。这个过程可以重复多次,前一次迭代的学生模型成为下一阶段的教师。结果是一个可以在比原始教师模型少得多的步骤(通常为 4 或 8)中生成合理样本的模型。“教师”模型的权重进行初始化。在训练期间,教师模型执行两个采样步骤,而学生模型尝试在一个步骤中匹配生成的预测结果。这个过程可以重复多次,前一次迭代的学生模型成为下一阶段的教师。结果是一个可以在比原始教师模型少得多的步骤(通常为 4 或 8)中生成合理样本的模型。核心机制如下图所示,该图来自引入该理念的论文
渐进式蒸馏图示(来自论文)
使用现有模型“教导”新模型的想法可以扩展到创建引导模型,其中教师模型使用无分类器引导技术,而学生模型必须学习基于指定目标引导尺度的额外输入在一个步骤中生成等效输出。这进一步减少了生成高质量样本所需的模型评估次数。此视频概述了该方法。
注意:可以在此处使用 Stable Diffusion 的蒸馏版本。
关键参考文献
训练改进
已经开发了一些额外的技巧来改进扩散模型的训练。在本节中,我们尝试从最近的论文中捕捉核心思想。不断涌现出新的研究成果,带来额外的改进,因此,如果您看到一篇您认为应该添加到此处的论文,请告知我们!
来自ERNIE-ViLG 2.0 论文的图 2
关键训练改进
- 调整噪声计划、损失加权和采样轨迹,以实现更有效的训练。Karras 等人撰写的一篇优秀的论文探讨了其中一些设计选择,即阐明扩散式生成模型的设计空间。
- 在不同的纵横比上进行训练,如课程启动活动中的此视频所述。
- 级联扩散模型,先在低分辨率下训练一个模型,然后训练一个或多个超分辨率模型。DALLE-2、Imagen 等都使用此方法进行高分辨率图像生成。
- 更好的条件控制,结合丰富的文本嵌入(Imagen 使用一个称为 T5 的大型语言模型)或多种类型的条件控制(eDiffi)。
- “知识增强” - 将预训练的图像字幕和目标检测模型融入训练过程,以创建更具信息量的字幕并获得更好的性能(ERNIE-ViLG 2.0)。
- “降噪专家混合”(MoDE) - 如上图所示,针对不同的噪声级别训练模型的不同变体(“专家”),该图来自ERNIE-ViLG 2.0 论文。
关键参考文献
- 阐明基于扩散的生成模型的设计空间
- eDiffi:具有专家降噪器集合的文本到图像扩散模型
- ERNIE-ViLG 2.0:使用知识增强型降噪专家混合体改进文本到图像扩散模型
- Imagen - 具有深度语言理解的光学真实文本到图像扩散模型(演示站点)
生成和编辑的更多控制
除了训练改进之外,在采样和推理阶段还有一些创新,包括许多可以为现有扩散模型添加新功能的方法。
“用文字作画”(eDiffi)生成的样本
视频“使用扩散模型编辑图像”概述了用于使用扩散模型编辑现有图像的不同方法。可用的技术可以分为四大类
1) 添加噪声,然后使用新提示进行降噪。这是img2img
管道背后的理念,该管道已在各种论文中进行了修改和扩展
- SDEdit和MagicMix在此理念基础上构建。
- DDIM 反演(TODO 链接教程)使用模型“反转”采样轨迹而不是添加随机噪声,从而提供更多控制。
- 空文本反演通过优化在每一步用于无分类器引导的无条件文本嵌入,极大地提高了此类方法的性能,从而实现极高质量的基于文本的图像编辑。2) 扩展 (1) 中的理念,但使用蒙版来控制效果应用的位置
- 混合扩散引入了基本理念。
- 此演示使用现有的分割模型(CLIPSeg)根据文本描述创建蒙版。
- DiffEdit 是一篇优秀的论文,展示了如何使用扩散模型本身根据文本生成合适的蒙版来编辑图像。
- SmartBrush:使用扩散模型进行文本和形状引导的目标对象修复 对扩散模型进行了微调,以实现更准确的蒙版引导修复。3) 交叉注意力控制:使用扩散模型中的交叉注意力机制来控制编辑的空间位置,以实现更细粒度的控制
- 使用交叉注意力控制的提示到提示图像编辑 是引入此理念的关键论文,该技术已被应用于 Stable Diffusion。
- 此理念也用于“用文字作画”(eDiffi,如上所示)。4) 对单个图像进行微调(“过拟合”),然后使用微调后的模型进行生成。以下论文都在大约同一时间发布了此理念的变体
- Imagic:使用扩散模型进行基于文本的真实图像编辑.
- UniTune:通过对单个图像上的图像生成模型进行微调来进行文本驱动的图像编辑.
论文InstructPix2Pix:学习遵循图像编辑指令 值得注意的是,它使用了上面描述的一些图像编辑技术来构建图像对的合成数据集以及图像编辑指令(使用 GPT3.5 生成),以训练能够根据自然语言指令编辑图像的新模型。
视频
来自使用 Imagen Video 生成的示例视频的静止帧
视频可以表示为一系列图像,扩散模型的核心思想可以应用于这些序列。最近的工作重点是寻找合适的架构(例如在整个序列上操作的“3D UNet”)以及有效地处理视频数据。由于高帧率视频涉及的数据比静止图像多得多,因此当前的方法倾向于首先生成低分辨率和低帧率视频,然后应用空间和时间超分辨率来生成最终的高质量视频输出。
关键参考文献
音频
使用 Riffusion 生成的声谱图(图像来源)
虽然有一些工作是使用扩散模型直接生成音频(例如DiffWave),但到目前为止最成功的方法是将音频信号转换为称为声谱图的东西,它有效地将音频“编码”为 2D“图像”,然后可以使用它来训练我们习惯用于图像生成的扩散模型。生成的声谱图可以使用现有方法转换为音频。这种方法是最近发布的 Riffusion 的基础,Riffusion 对 Stable Diffusion 进行了微调以生成以文本为条件的声谱图 - 在此处试用。
音频生成领域发展极其迅速。在撰写本文时,过去一周至少宣布了 5 项新进展,在下表中用星号标记
关键参考文献
- DiffWave:用于音频合成的通用扩散模型
- “Riffusion”(以及代码)
- * Google 的MusicLM 根据文本生成一致的音频,并且可以以哼唱或吹口哨的旋律为条件。
- RAVE2 - 变分自动编码器的新版本,可用于音频任务上的潜在扩散。这将用于即将发布的AudioLDM模型。
- *Noise2Music - 一个经过训练的扩散模型,可以根据文本描述生成高质量的 30 秒音频片段。
- *Make-An-Audio:使用提示增强扩散模型进行文本到音频生成 - 一个经过训练的扩散模型,可以根据文本生成各种声音。
- *Moûsai:使用长上下文潜在扩散进行文本到音乐生成
新的架构和方法 - 迈向“迭代细化”
来自Cold Diffusion论文的图 1
我们正在逐渐超越“扩散”模型最初狭义的定义,转向更通用的模型类别,这些模型执行**迭代细化**,其中某种形式的损坏(如正向扩散过程中的高斯噪声添加)逐渐被反转以生成样本。“冷扩散”论文证明,许多其他类型的损坏可以迭代地“撤消”以生成图像(如上所示),并且最近基于 Transformer 的方法证明了令牌替换或掩蔽作为噪声策略的有效性。
来自MaskGIT的管道
许多当前扩散模型的核心 U-Net 架构也正在被不同的替代方案所取代,最值得注意的是各种基于 Transformer 的架构。在使用 Transformer 的可扩展扩散模型(DiT)中,Transformer 用于代替 U-Net 以实现相当标准的扩散模型方法,并取得了优异的结果。循环接口网络应用了一种新颖的基于 Transformer 的架构和训练策略,以追求更高的效率。MaskGIT和MUSE使用 Transformer 模型处理图像的标记化表示,尽管Paella模型证明 U-Net 也可以成功应用于这些基于标记的方案。
随着每篇新论文的发表,都出现了更高效的方法,可能需要一段时间才能看到这些迭代细化任务的峰值性能。还有很多值得探索的地方!
关键参考文献
- 冷扩散:无需噪声即可反转任意图像变换
- 基于Transformer的可扩展扩散模型 (DiT)
- MaskGIT:掩码生成图像Transformer
- Muse:基于掩码生成Transformer的文本到图像生成
- 向量量化潜在空间上的快速文本条件离散去噪 (Paella)
- 循环接口网络 - 一种很有前景的新架构,它能够很好地生成高分辨率图像,而无需依赖潜在扩散或超分辨率。另见 简单扩散:端到端的高分辨率图像扩散,它强调了噪声调度对于更高分辨率训练的重要性。
动手实践笔记本
章节 | Colab | Kaggle | Gradient | Studio Lab |
---|---|---|---|---|
DDIM反转 | ||||
音频扩散 |
在本单元中,我们涵盖了大量不同的概念,其中许多概念在未来值得进行更详细的后续课程。目前,您可以通过我们准备的动手实践笔记本选择两个主题。
- DDIM反转展示了如何使用称为反转的技术来使用现有的扩散模型编辑图像。
- 音频扩散介绍了频谱图的概念,并展示了在一个特定音乐流派上微调音频扩散模型的最小示例。
下一步去哪里?
这是本课程的最后一个单元,这意味着接下来做什么取决于您!请记住,您始终可以在 Hugging Face 的 Discord 上提问并讨论您的项目。我们期待着看到您创作的内容 🤗。