稳定扩散:生成式人工智能背后的基本直觉

本文提供了稳定扩散的总体概述,并重点介绍了如何建立对生成式人工智能工作原理的基本理解

介绍

在过去的几年中,人工智能领域的生成建模在计算机视觉和自然语言处理方面发生了巨大的转变。Dalle-2和Midjourney引起了人们的关注,使他们认识到在生成AI领域取得的杰出工作。

目前产生的大部分AI生成图像都依赖于扩散模型作为基础。本文的目标是阐明关于稳定扩散的一些概念,并提供对所采用方法的基本理解。

简化架构

这个流程图展示了稳定扩散架构的简化版本。我们将逐个部分地进行介绍,以便更好地理解其内部运作机制。我们将详细说明训练过程,以便更好地理解,而推理过程只有一些细微的变化。

输入

稳定扩散模型是在图像字幕数据集上进行训练的,其中每个图像都有一个描述图像的相关字幕或提示。因此,模型有两个输入:自然语言的文本提示和一个尺寸为(3,512,512)的图像,具有3个颜色通道和尺寸为512的维度。

添加噪声

通过向原始图像添加高斯噪声,将图像转换为完全噪声。这是通过连续的步骤完成的,例如,将小量噪声添加到图像中,连续进行50个步骤,直到图像完全嘈杂。扩散过程将旨在消除这种噪声并重新生成原始图像。如何完成这个过程将在下文中进一步解释。

图像编码器

图像编码器作为变分自编码器的一个组件,将图像转换为“潜在空间”并调整大小为较小的维度,例如(4, 64, 64),同时还包括一个额外的批次维度。这个过程降低了计算要求并提高了性能。与原始的扩散模型不同,稳定扩散将编码步骤合并到潜在维度中,从而减少了计算量,同时减少了训练和推理时间。

文本编码器

自然语言提示通过文本编码器转换为向量化的嵌入。这个过程使用Transformer语言模型,如BERT或基于GPT的CLIP文本模型。增强的文本编码器模型显著提高了生成图像的质量。文本编码器的输出结果是每个词的768维嵌入向量的数组。为了控制提示的长度,设置了最大限制为77。因此,文本编码器生成了一个维度为(77, 768)的张量。

UNet

这是架构中计算量最大的部分,主要的扩散处理发生在这里。它接收文本编码和嘈杂的潜在图像作为输入。该模块旨在从接收到的嘈杂图像中复原出原始图像。它通过多个推理步骤来实现这一目标,这些步骤可以设置为超参数。通常情况下,50个推理步骤就足够了。

考虑一个简单的情况,其中输入图像通过逐渐引入小量噪声的方式变为噪声,连续进行50个步骤。这种累积添加噪声最终将原始图像转变为完全噪声。UNet的目标是通过预测前一个时间步骤中添加的噪声来逆转这个过程。在去噪过程中,UNet从初始时间步骤开始预测第50个时间步骤中添加的噪声。然后,它从输入图像中减去这个预测的噪声并重复这个过程。在每个后续的时间步骤中,UNet预测前一个时间步骤中添加的噪声,逐渐从完全噪声中恢复出原始的输入图像。在整个过程中,UNet在内部依赖于文本嵌入向量作为条件因素。

UNet输出一个大小为(4, 64, 64)的张量,传递给变分自编码器的解码器部分。

解码器

解码器将编码器完成的潜在表示转换回图像空间。因此,它输出一个与原始输入空间相同尺寸的(3,512,512)图像。在训练过程中,我们的目标是最小化原始图像和生成图像之间的损失。鉴于此,给定一个文本提示,我们可以从完全嘈杂的图像中生成与该提示相关的图像。

将所有部分整合在一起

在推理过程中,我们没有输入图像。我们只工作在文本到图像的模式下。我们去除了添加噪声部分,而是使用一个随机生成的所需尺寸的张量。其余的架构保持不变。

UNet经过训练,利用文本提示嵌入从完全的噪声中生成图像。这个特定的输入在推理阶段使用,使我们能够成功地从噪声中生成合成图像。这个一般概念是所有生成计算机视觉模型背后的基本直觉。Muhammad Arham是一名在计算机视觉和自然语言处理领域工作的深度学习工程师。他曾从事多个生成AI应用的部署和优化工作,这些应用在Vyro.AI的全球排行榜上名列前茅。他对构建和优化智能系统的机器学习模型感兴趣,并坚信不断改进。