文本生成图像这么火,你需要了解这些技术的演变(2)

简介: 文本生成图像这么火,你需要了解这些技术的演变

图是 Google 使用扩散模型生成图像的可视化说明。

扩散模型与其他类别的生成模型的比较。

首先,作者训练了一个 3.5B 参数扩散模型,该模型使用文本编码器以自然语言描述为条件。接下来,他们比较了两种将扩散模型引导到文本 prompt 的技术:CLIP 引导和无分类器引导(后者能产生更好的结果)。

分类器引导允许扩散模型以分类器的标签为条件,并且来自分类器的梯度用于引导样本朝向标签。

无分类器引导不需要训练单独的分类器模型。这只是一种引导形式,在有标签和没有标签的扩散模型的预测之间进行插值。

正如作者所说,无分类引导有两个吸引人的特性。首先,它允许单个模型在引导过程中利用自己的知识,而不是依赖于单独(有时更小的)分类模型的知识。其次,它简化了对难以用分类器预测的信息(例如文本)进行调节时的引导。

在 CLIP 引导下,分类器被替换为 CLIP 模型。它使用图像的点积和相对于图像的标题编码的梯度。

在分类器和 CLIP 引导中,我们必须在噪声图像上训练 CLIP,以便在反向扩散过程中获得正确的梯度。作者使用了经过明确训练具有噪声感知能力的 CLIP 模型,这些模型被称为噪声 CLIP 模型。尚未在噪声图像上训练的公共 CLIP 模型仍可用于引导扩散模型,但噪声 CLIP 引导对这种方法表现良好。

文本条件扩散模型是一种增强的 ADM 模型架构,它基于噪声图像 xₜ 和相应的文本标题 c 预测下一个扩散步骤的图像。

视觉部分是修改后的 U-Net 架构。U-Net 模型使用一堆残差层和下采样卷积,然后是一堆带有上采样卷积的残差层,使用残差连接(skip connection)连接具有相同空间大小的层。

原始的 U-Net 架构。图片来自原论文。

GLIDE 对原始 U-Net 架构的宽度、深度等方面有不同的修改,在 8×8、16×16 和 32×32 分辨率下添加了具有多个注意力头的全局注意力层。此外,还将时间步嵌入的投影添加到每个残差块中。

对于分类器引导模型,分类器架构是 U-Net 模型的下采样主干网络,在 8×8 层有一个注意力池以生成最终输出。

文本通过 transformer 模型被编码成 K 个(最大注意力跨度尚不清楚)tokens 的序列。

transformer 的输出有两种使用方式:首先,使用最终的 token 嵌入替代 ADM 模型中的类嵌入;其次,token 嵌入的最后一层(K 个特征向量的序列)分别投影到整个 ADM 模型中每个注意力层的维度,然后连接到每一层的注意力上下文。

文本 transformer 有 24 个宽度为 2048 的残差块,产生大约 1.2B 的参数。为 64×64 分辨率训练的模型的视觉部分由 2.3B 个参数组成。除了 3.5B 参数的文本条件扩散模型,作者还训练了另一个 1.5B 参数的文本条件上采样扩散模型,将分辨率提高到 256×256(这个想法在 DALL·E 中也会用到)。

上采样模型以与基本模型相同的方式以文本为条件,但使用宽度为 1024 而不是 2048 的较小文本编码器。对于 CLIP 引导,他们还训练了带噪声的 64×64 ViT-L CLIP 模型。

GLIDE 在与 DALL·E 相同的数据集上进行训练,总的训练计算量大致等于用于训练 DALL·E 的计算量。

GLIDE 在所有设置中都是最优,即使设置允许 DALL·E 使用更多的测试时间计算来得到优越的表现,同时降低 GLIDE 样本质量(通过 VAE 模糊)。


该模型经过微调以支持无条件的图像生成。这个训练过程与预训练完全一样,只是将 20% 的文本 token 序列替换为空序列。这样,模型保留了生成文本条件输出的能力,但也可以无条件地生成图像。

该模型还经过显式微调以执行修复。在微调期间,训练示例的随机区域被删除,其余部分与掩码通道一起作为附加条件信息输入模型。

GLIDE 可以迭代地使用 zero-shot 生成产生复杂场景,然后进行一系列修复编辑。

首先生成 prompt「一个舒适的客厅」的图像,然后使用修复蒙版,后续文本 prompt 在墙上添加了一幅画、一个茶几,茶几上还有一个花瓶,最后把墙移到沙发上。示例来自原论文。

DALL·E 2/unCLIP

OpenAI 于 2022 年 4 月 6 日发布了 DALL·E 2 系统。DALL·E 2 系统比原来的 DALL·E 显著提升了结果。它生成的图像分辨率提高了 4 倍(与原来的 DALL·E 和 GLIDE 相比),现在高达 1024×1024 像素。DALL·E 2 系统背后的模型称为 unCLIP。

作者发现,就照片写实而言,人类略微喜欢 GLIDE 而不是 unCLIP,但差距非常小。在具有类似真实感的情况下,在多样性方面,unCLIP 比 GLIDE 更受青睐,突出了它的好处之一。请记住,GLIDE 本身比 DALL·E 1 更受欢迎,所以说 DALL·E 2 比它的前身 DALL·E 1 有了显著改进。

对于「用克劳德 · 莫奈的风格画一幅狐狸坐在日出时分田野里的画」的要求,两个版本的系统生成的图片,图片来自原文章。

DALL·E 2 可以将概念、属性和风格结合起来:

原文中的示例。

DALL·E 2 还可以基于文本引导进行图像编辑,这是 GLIDE 中的功能。它可以在考虑阴影、反射和纹理的同时添加和删除元素:

将柯基犬添加到图像上的特定位置,图片来自原论文中。

DALL·E 2 还可用于生成原始图像的变体:

生成图像的变体,图片来自原文。

DALL·E 2 也存在一些问题。特别是 unCLIP 在将属性绑定到对象方面比 GLIDE 模型更差。例如,unCLIP 比 GLIDE 更难面对必须将两个单独的对象(立方体)绑定到两个单独的属性(颜色)的 prompt:


unCLIP 生成连贯的文本上也有一些困境:



另一个问题是 unCLIP 很难在复杂场景中生成细节:


模型内部发生了一些改变。下图是 CLIP 和 GLIDE 的结合,模型本身(全文条件图像生成堆栈)在论文内部称为 unCLIP,因为它通过反转 CLIP 图像编码器生成图像。

该模型的工作方式如下:CLIP 模型是单独训练的。然后 CLIP 文本编码器为输入文本(标题)生成嵌入。然后一个特殊的先验模型基于文本嵌入生成图像嵌入。然后扩散解码器基于图像嵌入生成图像。解码器本质上将图像嵌入反转回图像。

系统的宏观概述。一些细节(如解码器文本条件)没有显示。图片来自原论文。

相关文章
|
机器学习/深度学习 算法 API
XGBoost模型部署与在线预测的完整指南
XGBoost模型部署与在线预测的完整指南
1838 6
|
运维 Java 应用服务中间件
BIMserver入门安装部署 - 环境搭建、数据导入及预览
BIMserver入门安装部署 - 环境搭建、数据导入及预览
2293 0
|
Linux iOS开发 UED
LibreOffice 25.8 (Linux, macOS, Windows) - 自由免费的全能办公套件
LibreOffice 25.8 (Linux, macOS, Windows) - 自由免费的全能办公套件
205 0
|
10月前
|
人工智能 自然语言处理 测试技术
在IDE里使用DeepSeek-V3 和 DeepSeek-R1 满血版模型
如何在IDE里使用DeepSeek-V3 和 DeepSeek-R1 满血版模型
1153 97
|
数据采集 存储 数据处理
数据治理:如何制定数据标准与规范
在当今这个数据驱动的时代,数据已成为企业最宝贵的资产之一。然而,随着数据量的爆炸性增长和数据来源的多样化,如何有效地管理和利用这些数据成为了企业面临的重大挑战。数据治理作为确保数据质量、安全性、合规性和可访问性的关键过程,其核心在于制定并执行一套科学、合理的数据标准与规范。本文将探讨如何制定数据标准与规范,以推动企业的数据治理实践。
2079 3
|
Java Shell Linux
从 am start 的 --user 参数说到 Android 多用户
am start 命令有时并不会乖乖如我们所愿,这时候我们需要知对策并知其所以然。
367 16
|
并行计算 数据可视化
ECCV 2024:JHU上交等提出首个可渲染X光3DGS!推理速度73倍NeRF,性能提升6.5dB
【10月更文挑战第8天】近日,约翰斯•霍普金斯大学和上海交通大学等机构的研究人员提出了一种名为X-Gaussian的新型3D Gaussian Splatting框架,用于X光新视角合成。该框架通过优化辐射性Gaussian点云模型和可微分辐射光栅化技术,显著提升了X光成像的渲染质量,同时大幅减少了训练时间和推理时间。实验结果显示,X-Gaussian在性能上比现有方法提升了6.5dB,训练时间减少了85%,推理速度提高了73倍。此外,该框架在稀疏视角CT重建中也展现出巨大潜力。
329 4
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】Spark ML 对数据进行规范化预处理 StandardScaler 与向量拆分
标准化Scaler是数据预处理技术,用于将特征值映射到均值0、方差1的标准正态分布,以消除不同尺度特征的影响,提升模型稳定性和精度。Spark ML中的StandardScaler实现此功能,通过`.setInputCol`、`.setOutputCol`等方法配置并应用到DataFrame数据。示例展示了如何在Spark中使用StandardScaler进行数据规范化,包括创建SparkSession,构建DataFrame,使用VectorAssembler和StandardScaler,以及将向量拆分为列。规范化有助于降低特征重要性,提高模型训练速度和计算效率。
626 6
|
Java Maven 开发工具
记录一次Maven无法打包的排查过程
【5月更文挑战第3天】记录一次WhatTheFuck经历
853 2
记录一次Maven无法打包的排查过程
|
XML 移动开发 监控
使用Zabbix通过BMC管理口监控HP服务器
使用Zabbix监控系统,通过本地脚本抓取服务器硬件信息,推送到Zabbix监控硬件健康状态,从而能够及时发现硬件问题。监控硬件如:磁盘、内存、电源、温度等。
4436 0