扩散模型的离散提示优化
1. 背景介绍
近年来,文本到图像(Text-to-Image, T2I)生成模型,特别是扩散模型(Diffusion Models),取得了显著的进展。这类模型能够根据用户输入的文本提示(Prompt)生成高质量、多样化的图像。然而,这些模型在理解用户意图和生成图像的“忠实度”(Faithfulness)方面仍然存在挑战。
领域专业术语:
- 扩散模型 (Diffusion Models):一种深度生成模型,通过逐步添加噪声到一个数据样本(例如图像),然后学习逆过程(即去噪)来生成新的数据样本。
- 文本提示 (Prompt):用户提供给文本到图像模型的文本描述,用于指导图像的生成。
- 忠实度 (Faithfulness):生成图像与文本提示之间的一致性程度。
- 提示工程 (Prompt Engineering):设计、优化文本提示以获得所需生成结果的过程。
- 离散优化 (Discrete Optimization):一种优化问题,其变量只能取离散值(例如,单词序列中的单词)。
- 梯度 (Gradient):函数在某一点的变化率,用于指导优化算法的搜索方向。
- 反向传播 (Backpropagation):一种计算梯度的算法,广泛用于训练神经网络。
- 嵌入查找表 (Embedding Lookup Table):将离散的单词映射到连续向量(嵌入)的表格。
- Classifier-Free Guidance: 一种在条件生成中使用的技术,通过结合有条件和无条件的预测来提高生成质量。
- 负面提示(Negative Prompt): 一种提示,指定模型应该避免在生成图像中包含的内容.
- Gumbel-Softmax: 一种将离散变量的采样过程转化为可微分操作的技术。
- Textual Inversion: 将图像反向映射到文本空间(获得prompt).
2. 核心概述
本论文提出了一种名为 DPO-Diff 的新框架,用于优化文本到图像扩散模型中的文本提示。该框架将提示工程视为一个在语言空间上的离散优化问题。为了解决这个问题,作者提出了两项关键技术:(1) 动态生成的紧凑搜索空间,仅包含与用户输入最相关的单词;(2) “快捷文本梯度”(Shortcut Text Gradient),一种高效的文本梯度替代方案,可以在恒定的内存和运行时间内获得。实验表明,DPO-Diff 能够发现显著改善(提示增强)或破坏(对抗攻击)文本到图像扩散模型生成的图像的忠实度的提示。
3. 方法论和实验细节
3.1 数据集
- DiffusionDB (Wang et al., 2022):一个大型的提示数据库,包含200万个文本到图像生成模型的提示。
- COCO (Lin et al., 2014):一个广泛使用的图像标题数据集。
- ChatGPT (Ouyang et al., 2022):使用ChatGPT生成的提示。
- 数据构建: 从上述三个来源收集提示,并进行过滤,选出具有挑战性的提示,即Clip loss比较高的(生成图像与prompt差距较大),每种来源各100个提示.用于实验,总共600个提示。
3.2 算法和模型
-
基本模型:Stable Diffusion v1-4。
-
算法: DPO-Diff
-
核心思想:
- 将提示工程形式化为语言空间上的**离散提示优化(DPO-Diff)**问题。
- 设计了一系列动态生成的紧凑搜索空间,基于相关的单词替换(同义词或反义词),以提高搜索效率。
- 引入“快捷文本梯度”(Shortcut Text Gradient),避免了通过扩散模型推理步骤的反向传播,从而实现了恒定内存和运行时间的梯度计算。
- 利用 Gumbel Softmax 技巧对离散的词嵌入查找表进行可微处理。
- 优化负面提示(negative prompt)效果比优化正面提示更好.
-
训练损失:
-
Spherical CLIP Loss:
$$
\text{spherical_clip}(x, y) = 2 \cdot \left( \arcsin \frac{|x - y|_2}{2} \right)^2
$$
其中,$x$ 和 $y$ 分别是图像和文本的 CLIP 嵌入。
-
Spherical CLIP Loss:
-
快捷文本梯度推导:
-
原始的DDPM在t-K步的参数化:
$$
\mu_\theta(x_{t-K}, t-K)=\frac{1}{\sqrt{\alpha_{t-K}}}(x_{t-K} - \frac{\beta_{t-K}}{\sqrt{1-\bar\alpha_{t-K}}}\epsilon_\theta(x_{t-K}, t-K))
$$
可以看做是首先从当前步的误差$\epsilon_\theta(x_{t-K}, t-K)$计算$x_0$的估计:$$
\hat{x}0 = \frac{1}{\sqrt{\alpha{t-K}}}(x_{t-K} - \sqrt{1-\bar\alpha_{t-K}}\hat\epsilon_\theta(x_{t-K}, t-K))
$$ -
然后使用这个估计来计算转换概率: $q(x_{t-K} | x_t, \hat x_0)$
-
使用贝叶斯理论, 可以证明:
$$
q(x_{t-K}|x_t, x_0) = \mathcal{N}(x_{t-1}; \mu(x_t, x_0), \beta_t I) \
\mu(x_t, x_0) = \frac{\sqrt{\alpha_{t-1}}\beta_t}{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}x_0 + \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1-\bar\alpha_t}x_t
$$把$\hat x_0$带入上式, 可以得到和原始DDPM一样的模型.
-
3.3 训练和评估流程
-
搜索空间构建:
- 对抗攻击:使用同义词替换(Synonym Space)构建搜索空间。
- 提示增强:使用反义词(Antonym Space)构建负面提示的搜索空间。
- 使用 ChatGPT 或字典查找来获取同义词和反义词。
-
快捷文本梯度计算:
- 通过截断计算图,只计算K步的梯度。
- 直接从 $x_{t-K}$ 估计 $x_0$。
- 使用 Gumbel Softmax 对词嵌入查找表进行可微处理。
-
优化过程:
- 使用进化搜索(Evolutionary Search)从学习到的 Gumbel 分布中采样候选提示。
- 包括初始化、评估、交叉和变异等步骤。
-
评估指标:
- Spherical CLIP Loss (Crowson et al., 2022)
- Human Preference Score v2 (HPSv2):一个训练用于预测人类偏好的 CLIP 模型。
- 人工评估: 通过人工打分判断生成图像的质量.
4. 研究过程和结论
-
实验设计:
- 对抗攻击:通过优化提示来降低生成图像的忠实度。
- 提示增强:通过优化提示(特别是负面提示)来提高生成图像的忠实度。
- 与基线方法(如 Promptist)进行比较。
- 消融实验: 研究不同搜索算法, 以及负面/正面提示的效果.
-
实验结果:
- DPO-Diff 在对抗攻击和提示增强任务上均取得了最佳结果。
- 优化负面提示比优化正面提示更有效。
- 进化搜索结合梯度优化的方法效果最好。
- 快捷文本梯度显著降低了计算成本。
-
结论:
- DPO-Diff 是第一个用于扩散模型提示优化的基于梯度的框架。
- 提出的紧凑搜索空间和快捷文本梯度方法提高了搜索效率。
- 优化负面提示对于提高文本到图像扩散模型的性能非常有效。
5. 总结和客观评价
本论文提出了一种新颖且有效的扩散模型提示优化框架 DPO-Diff。该框架将提示工程问题形式化为离散优化问题,并提出了有效的解决方法。论文的贡献在于:
- 问题形式化:将提示工程视为离散优化问题,为该领域的研究提供了新的视角。
- 方法创新:提出了动态搜索空间和快捷文本梯度等技术,提高了搜索效率和实用性。
- 实证有效:通过实验验证了 DPO-Diff 在对抗攻击和提示增强任务上的优越性。
- 理论分析: 对快捷梯度和模型进行了详细的数学推导.
该论文的方法具有一定的通用性,可以应用于其他文本到图像生成模型。总体而言,这是一项具有创新性和实用价值的研究工作。