Improving Image Generation with Better Captions
公众号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)
目录
0. 摘要
1. 简介
2. 重建数据集标题
2.1 构建图像标题器
2.1.1 微调标题器
3. 评估重建标题的数据集
3.1 混合合成标题和真实标题
3.2 评价方法
3.3 标题类型结果
3.4 标题混合比率
3.5 高度描述性标题的实际应用
4. DALL-E3
4.1 自动化评估
4.1.1 CLIP 分数
4.1.2 Drawbench
4.1.3 T2I-CompBench
4.2 人工评估
4.2.1 Drawbench 人工评估
4.3 可重现性
5. 限制与风险
5.1 空间感知
5.2 文本渲染
5.3 具体性
5.4 安全性和偏见缓解
附录
A. 图像编码器
B. DALL-E3 潜变量解码器
C. GPT-4 的 "上采样" 标题提示
D. 对具有启用视觉的 GPT-4 的 drawbench 的评估
E. 人工评估界面
S. 总结
S.1 主要贡献
S.2 方法
0. 摘要
我们展示,通过训练高度描述性的生成图像标题,可以显著改善文本到图像模型的提示跟随能力。 现有的文本到图像模型难以跟随详细的图像描述,经常忽略单词或混淆提示的含义。我们假设这个问题源于训练数据集中存在嘈杂和不准确的图像标题。为了解决这个问题,我们训练了一个专门的图像标题生成器,并使用它重新生成了训练数据集的标题。然后,我们训练了多个文本到图像模型,并发现在这些合成标题上的训练可靠地提高了提示跟随能力。最后,我们利用这些发现构建了DALL-E3:一种新的文本到图像生成系统,并对其性能进行了基准测试,以衡量提示跟随能力、连贯性和美感,结果表明它在竞争对手面前表现出色。我们发布了这些评估的样本和代码,以便未来研究可以继续优化文本到图像系统的这一重要方面。
1. 简介
最近的生成建模进展使文本到图像生成模型能够取得显著的性能提升。特别是,通过采用基于采样的方法,如自回归生成建模 [27, 2, 1, 20, 30] 或使用扩散过程 [25, 6, 11, 12, 19, 22],我们能够将图像生成问题分解为更容易让神经网络学习的小的离散步骤。
同时,研究人员已经找到了一种方法,可以使用一堆自注意层构建图像生成器 [15, 3, 4]。通过将图像生成与卷积的隐式空间偏差(implicit spatial biases)解耦,文本到图像模型能够通过 transformer 的良好研究的扩展性特性可靠地改进。
结合足够大的数据集,这些方法使得能够训练大型文本到图像模型,这些模型能够生成接近人类可以生成的照片和艺术作品质量的图像。
该领域的一个重大挑战是图像生成系统的可控性,这些系统通常忽略给定标题中的单词、单词顺序或含义。我们用术语 “提示跟随” 来指代这些挑战。
这个问题在一些研究中已经提出:Rassin 等人 (2022) 指出,DALL-E2 没有强制规定每个单词只有一个含义。Saharia 等人 (2022) 提出以预训练语言模型为条件来改进这一问题,并引入了一个名为 Drawbench 的评估,揭示了常见的提示跟随问题。同时期的 Yu 等人 (2022b) 引入了他们自己的基准测试 "Parti Prompts",并展示了通过扩展自回归图像生成器来改进提示跟随的替代方法。
在这项工作中,我们提出了一个新的解决提示跟随问题的方法:标题改进。我们假设现有文本到图像模型的一个基本问题是它们所训练数据集中文本和图像匹配的质量较差,这个问题在其他作品中也已经被指出,如 Jia 等人 (2021)。我们建议通过为数据集中的图像生成改进的标题来解决这个问题。我们首先学习一个强大的图像标题生成器,可以生成图像的详细、准确的描述。然后,我们将这个标题生成器应用到我们的数据集中,以生成更详细的标题。最后,我们在改进后的数据集上训练文本到图像模型。
在合成数据上进行训练并不是一个新概念。例如,Yu 等人 (2022b) 提到他们在训练大规模自回归图像生成器时应用了这一技术。我们的贡献在于构建了一个新颖的、具有描述性的图像标题生成系统,并衡量了在训练生成模型时使用合成标题的影响。我们还建立了一个可重现的基线性能配置文件,一套用于测量提示跟随的评估。
本文重点评估了 DALL-E3 在训练过程中使用高度详细的生成标题后改进的提示跟随能力。它不涵盖 DALL-E3 模型的训练或实现细节。我们在第 2 节提供了一个关于如何训练图像标题生成器的高层概述,在第 3 节评估了训练过原始标题与生成标题的文本到图像模型,第 4 节评估了 DALL-E3,第 5 节讨论了局限性和风险。
2. 重建数据集标题
我们的文本到图像模型是在一个数据集上进行训练的,该数据集由大量成对的 (t, i) 组成,其中 i 是一幅图像,t 是描述该图像的文本。在大规模数据集中,t 通常是由人类作者撰写的,他们侧重于简单描述图像的主题,而省略了背景细节或图像中呈现的常识关系。通常从 t 中省略的重要细节可能包括:
- 像厨房中的水槽或人行道上的停车标志等对象的存在以及对这些对象的描述。
- 场景中对象的位置和对象数量。
- 常识细节,如场景中对象的颜色和大小。
- 图像中显示的文本。
更糟糕的是,通常在互联网上找到的图像描述往往是不正确的,描述与图像略有关联的细节。例如,一般可以在通常用于生成图像描述的替代文本中找到广告或表情包。
我们理论认为,所有这些缺点都可以通过使用合成式地生成标题来解决。在接下来的部分,我们将讨论我们开发的测试这一理论的程序。
2.1 构建图像标题器
图像描述生成模型与传统的语言模型非常相似,都是用于预测文本的。因此,我们首先提供了语言模型的简要描述。首先,使用标记器将文本字符串分解为离散的标记。一旦以这种方式分解,语料库的文本部分可以表示为一个序列,t = [t1,t2,...,tn]。然后,我们可以构建一个语言模型,通过最大化以下似然函数来对文本进行建模:
其中 Θ 是要优化的描述生成器的参数。要将这个语言模型转化为一个标题器,只需以图像为条件。这里的挑战在于图像由成千上万的像素值组成。在目前的神经网络中,对所有这些信息进行条件化是非常低效的,因此我们需要一个压缩的表示空间。幸运的是,CLIP [17] 正提供了这一点。因此,鉴于一个预训练的 CLIP 图像嵌入函数 F(i),我们将我们的语言模型目标进行如下扩展:
我们遵循 Yu 等人 (2022a) 的方法,使用上述公式,在我们的文本-图像对 (t, i) 的数据集上,联合预训练我们具有 CLIP 的的图像标题器和语言建模的目标。所得到的模型确实是一个很好的图像标题器,但表现出了我们在第 2 节中描述的相同问题,比如不愿描述细节。
2.1.1 微调标题器
为了改进图像生成数据集中的图像描述,我们希望倾向于让我们的图像标题器生成对学习文本到图像模型有用的图像描述。在我们的第一次尝试中,我们构建了一个仅描述图像主题的标题的小数据集,然后继续在这个数据集上训练我们的图像标题器。这个过程引起的 θ 的更新会导致一个倾向于描述图像的主要主题的模型。我们将这个由微调获得的标题称为 “简短合成标题”。
我们再次重复这个过程,第二次创建了一个包含对微调数据集中每个图像的内容进行高度描述的长标题的数据集。这些标题不仅描述图像的主要主题,还描述了其周围的环境、背景、图像中的文本、风格、颜色等等。我们再次对我们的基础标题器进行微调。我们将由这个标题器生成的标题称为 “描述性合成标题”。
图 3 显示了真实标题、简短合成标题(SSC)和描述性合成标题(DSC)的示例。
一旦构建完成,我们将我们的图像标题器的微调应用于文本到图像数据集中的每个图像,从而得到一组合成标题,我们将在随后的实验中使用。
3. 评估重建标题的数据集
有了我们的重新生成的数据集,我们着手评估在合成文本上训练模型的影响。特别是,我们试图回答两个问题:
- 使用每种类型的合成标题对性能的影响。
- 合成标题与实际标题的最佳混合比例。
3.1 混合合成标题和真实标题
像我们的文本到图像扩散模型这样的似然模型倾向于在数据集中过度拟合分布规律。例如,如果训练一个文本到图像模型,其中的文本总是以空格字符开头,那么如果您尝试对不以空格开头的提示执行推理,该模型将无法正常工作。
在训练合成标题时,我们需要考虑这个问题。我们的标题模型可能具有许多难以检测的模态行为,但如果我们在这些标题上进行训练,这些模态行为将成为我们的文本到图像模型的偏见。这可能发生的示例是信件,标题中标点符号的位置(例如,它是否总是以句号结尾?),标题的长度,或者一些风格倾向,如始终以 "a" 或 "an" 开头。
克服这个问题的最佳方法是使我们的文本更接近人类可能使用的样式和格式的分布。使用真实标题时,您可以 “免费” 获得这一点,因为这些标题实际上是从人类编写的文本分布中获取的。为了在使用合成标题时在我们的模型训练中引入一些这种正规化,我们选择将合成标题与真实标题混合。
混合发生在数据抽样时,我们以固定的概率随机选择真实标题或合成标题。我们将在下一节分析不同混合比例的性能影响。
3.2 评价方法
为了进行评估,我们在相同的图像数据集上训练了相同的 T5 条件的图像扩散模型。有关所训练模型的详细信息,请参阅附录 A。所有模型都经过了 500,000 个训练步骤的训练,批处理大小为2048,总共对应 1 亿张训练图像。
一旦训练完成,我们使用评估数据集中的标题生成了每个模型的 50,000 张图像。然后,我们使用Hessel 等人(2022)中概述的 CLIP-S 评估度量来评估这些生成的图像。我们选择 CLIP 分数作为度量标准,因为它与文本-图像相似性有很强的相关性,而这正是我们关心的。作为一个快速回顾,此度量标准的计算如下:
首先,我们使用公开的 CLIP ViT-B/32 图像编码器生成图像嵌入 z_i,然后使用文本编码器为图像标题创建文本嵌入 z_t。最后,我们计算余弦距离 C 作为 CLIP 分数:
然后,对计算出的所有 5 万个文本/图像对的距离进行平均,并以因子 100 进行重新缩放。我们在训练期间在多个模型检查点上执行此评估,始终使用模型学到的权重的指数加权平均值进行评估。
在计算 CLIP 分数时,在执行上述计算时使用的标题的选择非常重要。在我们的测试中,我们要么使用实际标题,要么使用描述性合成标题。在每次评估中都会注明使用哪一种。
3.3 标题类型结果
我们首先分析了在不同类型标题训练的模型的性能差异。对于此评估,我们训练了三个模型:
- 仅使用真实标题训练的文本到图像模型。
- 95% 使用短合成标题进行训练的文本到图像模型。
- 95% 使用详细描述性合成标题进行训练的文本到图像模型。
我们进行了两次此评估:一次使用从真实标题计算的 z_t,一次使用从详细描述性合成标题计算的z_t。我们不对短合成标题进行此评估,因为它们在此评估中与实际标题非常相似。
结果(图 4)显示,在真实标题评估时,两个使用合成标题训练的模型的 CLIP 分数性能略高于基线模型,并在评估详细描述性合成标题时性能明显更好。这表明在训练文本到图像模型时使用合成标题没有任何不利之处。
有趣的是,合成标题上的评估曲线方差要低得多。这支持了我们的理论,即重建标题可以被视为一种平均操作。在合成标题上评估的图像生成模型,也在所有已训练的模型上获得了更高的净 CLIP分数,这支持了合成标题与其相应图像更好绑定的观点。
3.4 标题混合比率
为了评估标题混合比率,我们使用我们的描述性合成标题训练了四个图像生成模型,采用不同的混合比率。我们选择了 65%,80%,90% 和 95% 的合成标题混合。实验进行到中途,评估结果显示,65% 的混合在所有评估中都远远落后于其他混合,因此我们放弃了它。
图 5 中的结果显示,合成标题的更高混合总是提高了模型的 CLIP 分数。
3.5 高度描述性标题的实际应用
上述实验表明,通过在很大一部分合成标题上进行训练,我们可以最大程度地提高模型的性能。然而,这样做会导致模型自然地适应由我们的标题生成器生成的长、高度描述性标题的分布。
众所周知,生成模型在从其训练分布中抽样时会产生糟糕的结果。因此,为了充分发挥我们模型的潜力,我们需要专门使用高度描述性标题从中抽样。幸运的是,最近大型语言模型的突破使这个问题可以解决。像 GPT-4 [14] 这样的模型在需要想象力的任务,如讲故事和写诗方面表现得非常出色。因此,可以理所当然地认为它们也可能擅长提供图像描述中的合理细节。
事实上,给定附录 C 中找到的提示,我们发现 GPT-4 很容易将任何标题 "上采样" 为高度描述性的标题。为了演示这种方法可能有用,我们在 drawbench 数据集 [24] 的标题上执行了这个过程,并在图 6 中可视化了结果。
正如图 6 中所示,利用大型语言模型 "采样" 标题不仅可以用于添加丢失的细节,还可以用于消除相对较小的图像生成模型难以学习的复杂关系。最终结果是,模型通常能够正确渲染它在其他情况下可能出错的图像。
4. DALL-E3
为了在大规模上测试我们的合成标题,我们训练了 DALL-E3,这是一种全新的最先进的文本到图像生成器。为了训练这个模型,我们使用了 95% 的合成标题和 5% 的真实标题的混合。这个模型本身是我们在上述实验中使用的模型的增强版本,还有其他一些改进。(DALL-E3 相对于 DALL-E2 有许多改进,其中许多改进在本文档中未涵盖,且因为时间和计算的原因无法进行消融。本文中讨论的评估指标不应被解释为仅仅通过在合成标题上进行训练所产生的性能比较。)
4.1 自动化评估
我们将 DALL-E3 与 DALL-E2 和 Stable Diffusion XL 1.0(带有精炼模块)进行比较。我们希望评估 DALL-E3 在与提示跟随相关的任务中的表现。我们在下面描述各个任务。
4.1.1 CLIP 分数
我们首先使用公共的 ViT-B/32 模型,如第 3.2 节所述,计算 CLIP 分数。为了进行比较,我们使用来自 MSCOCO 2014 评估数据集[10] 的 4,096 个标题来生成我们的图像(与以往版本的 DALL-E 一样,DALL-E3 并没有专门针对 MSCOCO 数据集进行训练,我们也没有进行任何优化以改善在这个评估中的性能。我们还没有在我们的训练数据集中对 MSCOCO 进行去重,因此存在数据泄漏的可能性)。
在这个评估中,我们对模型执行推理,使用短的真实标题。 在这个评估中,我们的模型在 CLIP 分数方面优于 DALL-E2 和 Stable Diffusion XL。
4.1.2 Drawbench
接下来,我们在 drawbench[24] 的标题上进行评估。在这个测试中,我们使用了一个基于 GPT-4 的指令调整、视觉感知的 LLM,称为 GPT-V,来评估我们的模型与其他模型的性能。对于 drawbench 中的每个提示,我们使用每个模型生成四张图像。然后,我们使用在附录 D 中找到的提示,将图像和文本提示传递给我们的视觉感知 LLM。这将产生一个结论("正确"/"错误")以及该结论的解释。
由于我们先前观察到,当从语言模型获得外扩的(extrapolated)标题时,我们的模型表现更好,因此我们使用 GPT-4 来使用第 3.5 节中描述的 "上采样" drawbench 标题。我们使用这些 "上采样" 的标题从所有模型中采样图像时,第二次执行上述自动化评估。当要求视觉感知的 LLM 评判输出时,我们使用原始的、实际的 drawbench 提示。 在所有的 drawbench 评估中,我们的模型都超过了 DALL-E2 和 Stable Diffusion XL。当我们使用 "提升" 的标题时,差距显著扩大。
4.1.3 T2I-CompBench
最后,我们对 Huang 等人(2023)开发的 T2I-CompBench 评估套件的一个子集进行评估。这个基准测试衡量了模型在组合提示上的性能。我们报告了颜色绑定、形状绑定和纹理绑定的得分。我们使用解耦的 BLIP-VQA 模型来评估这些结果。 DALL-E3 在所有评估中都是最先进的。
4.2 人工评估
我们提交了 DALL-E3 和可比较模型的样本进行人工评估。在这个评估中,我们向人工评定员呈现了两张从相同标题生成的并排的图像。然后,我们向评定员提出三个问题之一:
- 提示跟随:评定员被呈现文本到图像模型的完整上采样标题,并被要求 "选择哪个图像更符合标题"。
- 风格:"想象一下,您正在使用一个根据一些文本生成图像的计算机工具。选择如果您正在使用这个工具时更愿意看到的图像。"
- 一致性:"选择哪个图像包含更一致的对象。" 一个 "一致的" 对象是一个可能存在的对象。仔细观察人体部位、脸部和姿势、物体的摆放以及场景中的文本,以作出判断。提示:计算每个图像的不一致实例,然后选择问题较少的图像。"
对于提示跟随和风格,我们组建了一个小型数据集,共包含 170 个标题,专门用于此评估,针对的是文本到图像生成系统的典型用途。这些标题涵盖了广泛的实际用例,如生成人物、产品和地点,概念融合、文本渲染和艺术品等。我们将此评估集称为 "DALL-E 3 Eval"。这些标题将与我们的评估样本一起发布(请参见第 4.3 节)。对于一致性,我们观察到评定员会对描绘虚构场景的图像进行惩罚。因此,我们随机从 MSCOCO 中抽取了 250 个标题,以确保评估提示所描述的场景是可能存在的。请注意,对于风格和一致性评估,我们不会向评定员展示用于生成图像的标题,以确保他们会专注于风格或一致性,而不是提示跟随。对于每对图像和问题,我们从评定员那里汇总 3 个答案,每个模型和问题共计 2040 个评分。人工评估界面在第 E 节中显示。
我们将 DALL-E3 与带有精炼模块的 Stable Diffusion XL 和 Midjourney v5.2 进行比较。在表 2 中,我们报告了使用 Nichol 等人(2022)中概述的相同计算方法计算的 ELO 得分。
正如结果所显示的,DALL-E3 生成的图像在所有三个方面,特别是在提示跟随方面,大多数时间都得到了人工评定员的首选,超过了所有竞争对手。
4.2.1 Drawbench 人工评估
在前一节中,我们使用 GPT-V 对 drawbench 进行了评估。我们注意到,在某些类型的测试中,GPT-V 在判断提示跟随方面的表现不如随机。特别是在涉及计算图像中对象数量的任务中情况如此。为了更好地覆盖 drawbench 的性能,我们使用了前一节中描述的程序,提交了图像和标题供人工评估。与我们的 GPT-V drawbench 评估一样,我们只比较 DALL-E3、带有精炼模块的 Stable Diffusion XL 和 DALL-E2。
4.3 可重现性
我们将在将来的某个时候上传所有模型在上述所有比较中生成的所有样本和提示到 GitHub 上。
5. 限制与风险
5.1 空间感知
虽然 DALL-E 3 在提示跟随方面迈出了重大的一步,但仍然在对象定位和空间感知方面存在困难。例如,使用词语 "在左边"、"在下面"、"在后面" 等是相当不可靠的。这是因为我们的合成标题生成器也有这个弱点:它在陈述对象位置方面不可靠,这反映在我们的下游模型中。
5.2 文本渲染
在构建我们的标题生成器时,我们特别注意确保它能够在生成的标题中包含在图像中找到的显著单词。因此,DALL-E3 可以在提供提示时生成文本。在测试过程中,我们注意到这种功能不够可靠,因为单词可能丢失或多余字符。我们怀疑这可能与我们使用的 T5 文本编码器有关:当模型遇到提示中的文本时,实际上它会看到代表整个单词的标记,并必须将这些标记映射到图像中的字母。在未来的工作中,我们希望探索基于字符级语言模型进行条件设置,以帮助改进这种行为。
5.3 具体性
我们观察到我们的合成标题容易产生关于图像的重要细节的幻觉。例如,给定一幅花的植物图,标题生成器通常会幻想一个植物的属和种,并将其放入标题中,即使这些细节在图像中以文本形式可用。当描述鸟类图片时,我们观察到类似的行为:物种可能被幻想,或者根本不提到。
这对我们的文本到图像模型产生了下游影响:DALL-E3 在为上述特定术语生成图像方面不可靠。我们认为,对标题生成器的进一步改进应该能够进一步改进我们的文本到图像模型。
5.4 安全性和偏见缓解
我们对部署 DALL-E3 引发的安全关切进行了深入分析,包括模型偏见带来的风险。这些评估的结果可以在 DALL-E3 系统卡中找到。
(2023,部署准备,风险领域,缓解措施)DALL·E 3 系统名片
附录
A. 图像编码器
我们实验中使用的图像解码器是一个以文本为条件的 U-Net [23] 潜扩散模型 [22],共有三个阶段。
我们使用了 Rombach 等人(2022)开发的相同 VAE [9] 来构建我们的模型。这个自动编码器执行 8 倍降采样。在我们的合成标题评估中,我们训练的图像为 256px,结果是模型输入尺寸为 32x32 的潜变量。
对于时间步骤条件,我们使用调制 GroupNorm [28],其中一个依赖于时间步骤信号的学到的尺度和偏置项被应用于 GroupNorm 层的输出。
对于文本条件,我们首先使用 T5 XXL 文本编码器 [18] 对文本输入进行编码。这个过程的输出潜变量然后被 xfnet 进行交叉关注。
B. DALL-E3 潜变量解码器
对于 DALL-E3,我们在 Rombach 等人(2022)训练的 VAE 学习的潜空间之上,训练了自己的扩散解码器。我们发现在这里使用扩散解码器可以显著改进图像的细节,例如文本或人脸。
这个扩散解码器是与 Ho 等人(2020)描述的相同的卷积 U-Net。一旦训练完成,我们使用 Song 等人(2023)中描述的一致性蒸馏过程将其减少为两个去噪步骤。
这个改进的潜变量解码器不用于我们的合成标题评估。
C. GPT-4 的 "上采样" 标题提示
以下是我们在将图像标题提供给 GPT-4 进行 "上采样" 之前向其提供的提示。
D. 对具有启用视觉的 GPT-4 的 drawbench 的评估
以下是我们提供给启用视觉功能的 GPT-4 模型的提示,用于执行我们的自动化 drawbench 评估:
其中 <image_path> 和 <prompt> 分别替换为模型生成的图像和用于生成该图像的相应提示。
E. 人工评估界面
关于提示跟随、一致性和风格的人工评估界面如图 8、9 和 10 所示。
S. 总结
S.1 主要贡献
本文使用两步微调训练了一个专门的图像标题生成器,并使用它重新生成了训练数据集的标题,以此改善文本到图像模型的提示跟随能力。 基于此,构建了 DALL-E3。
S.2 方法
构建图像标题器。
- 构建对文本建模的的语言模型,并通过 CLIP,以图像为条件把语言模型转换为图像标题器。
- 构建了一个仅描述图像主题的标题的小数据集,然后继续在这个数据集上训练图像标题器,获得一个描述图像主要主题的模型,其生成的标题称为 “简短合成标题”。
- 重复该过程,第二次创建了一个包含对微调数据集中每个图像的内容进行高度描述的长标题(这些标题不仅描述图像的主要主题,还描述了其周围的环境、背景、图像中的文本、风格、颜色等等)的数据集,然后再次对基础图像标题器进行微调,由获得的标题器生成的标题称为 “描述性合成标题”。
- 使用该标题器重建图像标题。
- 实验结果证明,使用 5% 真实标题与 95% 描述性合成标题构建的图像-文本数据里可以获得最好的性能。
图像编码器。图像编码器是一个以文本为条件的 U-Net 潜在扩散模型,共有三个阶段。
- 使用 VAE 进行8 倍降采样获得潜在变量。
- 对于时间步骤条件,使用调制 GroupNorm,其中一个依赖于时间步骤信号的学到的尺度和偏置项被应用于 GroupNorm 层的输出。
- 对于文本条件,首先使用 T5 XXL 文本编码器对文本输入进行编码。这个过程的输出潜变量然后被 xfnet 进行交叉关注。
DALL-E3 潜变量解码器。使用的扩散解码器是卷积 U-Net。一旦训练完成,使用一致性蒸馏过程将其减少为两个去噪步骤。