摘要

        现代生成模型的优势在于它们能够通过基于文本的提示进行控制。典型的“硬”提示由可解释的单词和标记组成,必须由人类手工制作。还有“软”提示,它由连续的特征向量组成。这些可以使用强大的优化方法发现,但是它们不能很容易地解释、跨模型重用或插入到基于文本的界面中。我们描述了一种通过有效的基于梯度的优化来稳健地优化硬文本提示的方法。我们的方法自动为文本到图像和文本到文本应用程序生成基于硬文本的提示。在文本到图像设置中,该方法为扩散模型创建硬提示,允许API用户轻松生成,发现和混合和匹配图像概念,而无需事先了解如何提示模型。在文本到文本设置中,我们展示了可以自动发现硬提示,这些提示可以有效地调优lm进行分类。

1 引言

        提示工程是一门艺术,它涉及创建指令来指导生成模型。它是解锁大型模型在图像生成和语言任务中潜力的关键。迄今为止,提示工程方法大致可以分为两大阵营。首先是硬提示方法,它使用手工制作的易于解释的符号序列来引出模型行为。硬提示发现是一种专门的炼金术,许多好的提示是通过试错或纯粹的直觉发现的。然后是软提示,它由连续值的语言嵌入组成,这些嵌入不对应于任何人类可读的符号。软提示发现是一门数学科学;使用基于梯度的优化器和大型精选数据集为特定任务生成高性能提示。
        尽管工程硬提示具有难度,但它们有其优势。硬提示及其利用的技巧可以混合、匹配和变异以执行不同的任务,而软提示则高度专门化。硬提示是可移植的;它们可以在一个模型上发现,然后部署在另一个模型上。由于模型之间嵌入维度和表示空间的不同,这种可移植性在软提示中是不可能的。最后,当只能通过API访问模型且无法控制输入的嵌入时,可以使用硬提示。
        本研究探讨了使用有效的梯度方法来优化和学习离散文本的应用,重点是应用于提示工程。通过这种方式,我们解锁了通过优化学习硬提示的能力。学到的硬提示结合了软提示的便利性和自动化以及硬提示的可移植性、灵活性和简单性。我们的主要贡献总结如下:

  •  我们提出了一种使用连续优化学习硬提示的简单方案。该方案建立在现有用于优化文本的梯度重投影方案之上,并从大规模离散优化文献中学习到的经验适应于量化网络。
  •  我们展示了这种优化方法可以用来学习用于图像生成的硬提示,为我们提供了一种通用的工具来创建能引出特定图像风格、物体和外观的提示。学到的提示与高度专门化的提示生成工具竞争,尽管使用的符号更少且不包含任何手工制作的组件。
  • 我们还展示了我们的学到的硬提示在语言分类任务上表现良好,胜过其他文本优化方案。学到的提示在网络间转移良好,当它们通过流畅性约束进行正则化以提高可解释性时,这种转移会得到增强。

        除了捕获学到的提示的可量化好处外,所提出的方案还可以用来促进提示的探索和发现,因为优化通常会恢复同时高度可解释和高度非显而易见的单词和符号。 

2 相关工作

        在语言模型中的提示(Prompting)。Brown等人(2020年)是最早展示提示在任务适应预训练语言模型中威力的研究之一。这种“指令调整”范式自此成为提高大型模型遵循复杂、特定任务指令能力的一种标准方法(Sanh等人,2022年;Chung等人,2022年)。然而,自动寻找适合这些目的的文本提示集,即硬提示,仍然是一个开放的挑战。Lester等人(2021b年)简化了Li和Liang(2021年)提出的“前缀调整”技术,建立了所谓的标准软“提示调整”过程,其中他们优化了连续值嵌入序列,并将其附加到输入令牌的真实嵌入之前。然而,Khashabi等人(2022年)的后续工作表明,这种技术产生的嵌入序列可以映射到语义可审查性有限的令牌序列。为了解决这些限制,在这项工作中,我们构建了一种将连续软提示优化与硬词汇约束相结合的方法,产生了特定于任务的、可解释的令牌。
        语言离散优化。AutoPrompt(Shin等人,2020年)是最早的针对变换器语言模型的离散提示优化框架之一,随后的方法包括了一种无梯度的短语编辑方法(Prasad等人,2022年)、基于朗之万动力学的嵌入优化方法(Shi等人,2022年)和一种强化学习方法(Deng等人,2022年)。我们考虑了两种基于梯度的方法作为基线:FluentPrompt和AutoPrompt(Shi等人,2022年;Shin等人,2020年)。AutoPrompt利用了Ebrahimi等人(2018年)提出的HotFlip,通过梯度贪婪地选择提示中每个位置的最佳令牌,以找到一组好的候选。然而,AutoPrompt可能会非常快速地变得昂贵。对于每个梯度步骤,该方法要求在每个提示位置评估每个候选,增加了大量的额外前向传递。为了避免额外的前向传递,我们最初考虑了带和不带流畅性约束的AutoPromptk=1,但发现如图12所示,带有流畅性约束的AutoPromptSGD的表现优于其对应方,因此我们使用SGD版本的AutoPrompt作为我们的另一个基线,类似于Shi等人(2022年)。FluentPrompt与AutoPrompt的不同之处在于,它使用朗之万动力学(Kumar等人,2022年)来优化提示嵌入,并添加了流畅性惩罚。
        对于上述基线,在每次更新步骤结束时,优化的提示嵌入被投影到它们最近的邻居嵌入上,以确保优化是在自然语言令牌的离散集上进行的。然而,如果最近的邻居距离嵌入很远,并且学习率没有正确调整,嵌入可能会变得停滞,这可能导致需要大量的超参数调整,如图8所示。这种约束的代价是优化能找到的解决方案的灵活性降低。另一方面,虽然软提示在这方面没有这样的限制,但是将一个训练有素的软提示固定到最近的离散提示会严重降低性能,如Khashabi等人(2022年)所观察到的。
        从图像中提示发现。从图像中提取丰富信息并通过自然语言文本传达的过程称为图像字幕生成。Zhang等人(2021年)、Hu等人(2022年)和Li等人(2022年)通过在图像-文本对上训练大型字幕模型来实现这一目标。然而,这些字幕通常是通用的,可能无法准确反映新的或未见过的对象。在Gal等人(2022年)中,作者提出了一种利用软提示优化文本引导的扩散模型的方法,允许生成与原始图像中相似的可视概念。在这种情况下,尽管最终的软提示是有效的,但通过扩散模型进行优化非常昂贵,且提示既不可解释也不可移植。
        离散优化。离散优化器长期以来被用于训练具有量化(例如二进制)权重的神经网络。在这种背景下,在梯度步骤之间重新投影的方法被称为随机四舍五入。然而,众所周知,这种方法缺乏连续优化的收敛保证(Li等人,2017年)。在过去的十年中,随机四舍五入已被新的优化器所取代,这些优化器保持权重的连续表示,而不是离散表示(Courbariaux等人,2015年)。这些优化器一致地导致了更高的准确性(Rastegari等人,2016年;Courbariaux等人,2016年)并避免了局部最小值(Li等人,2017年)。
        我们从二值网络社区学到的这些经验中获得灵感,并对其进行调整,以改进和简化语言的离散优化器。

3 方法

        学习硬提示。我们现在介绍我们的一种有效且易于使用的离散提示优化技术。该过程需要以下输入:一个冻结的模型 θ,一个可学习嵌入的序列 P = [e1, ...eM],其中 ei ∈ Rd,M是要优化的“令牌”数量的向量,d是嵌入的维度。此外,我们使用一个目标函数 L。令牌空间的离散性是通过一个投影函数 ProjE 实现的,该函数将提示中的各个嵌入向量 ei 投影到嵌入矩阵 E|V|×d 中最近的邻居,其中 |V| 是模型的词汇量,我们称此操作的结果为 P′ = ProjE(P) := [ProjE(e1), ...ProjE(eM)]。此外,我们定义一个广播函数 B : R(M×d) → R(M×d×b),它将当前的提示嵌入(P)在批次维度上重复 b 次。
        正式来说,为了学习一个硬提示,我们通过测量 P 在任务数据上的性能来最小化以下风险:
R(P′) = ED(L(θ(B(P, X)), Y))。
        我们的方法。我们提出了一种简单但有效的基于梯度的离散优化算法,该算法结合了基线离散优化方法和软提示优化的优点。我们的方案步骤,我们称之为 PEZ,在算法 1 中具体定义。该方法保持连续迭代,在我们的应用中对应于一个软提示。在每次前向传递中,我们首先将当前嵌入 P 投影到最近的邻居 P′ 上,然后再计算梯度。然后,使用离散向量 P′ 的梯度,我们更新连续/软迭代,P。

4 CLIP提示反转 

        我们学习硬提示的方法非常适合于多模态视觉-语言模型。使用这些模型,如 CLIP (Radford et al., 2021),我们可以使用 PEZ 发现描述一个或多个目标图像的标题。反过来,这些发现的标题可以作为图像生成应用的提示。由于大多数文本引导的扩散模型在训练过程中使用预训练的文本编码器,例如 CLIP 文本编码器,并将它们冻结,我们可以使用这些预训练的文本编码器发现直接相关的下游扩散模型的提示。例如,我们可以优化描述一个图像的标题,并使用这个标题作为扩散模型的提示,以生成具有相同内容的其他图像。
        由于 CLIP 模型有自己的图像编码器,我们可以将其作为损失函数来驱动我们的 PEZ 方法。这样,我们只优化提示以提高它们与 CLIP 图像编码器的余弦相似性,并完全避免在完整扩散模型上进行梯度计算。
        正式来说,给定一个文本编码器函数 f 和一个图像编码器函数 g,我们通过最小化以下目标来优化对应于目标图像 x 的硬提示嵌入 P:L(P, x) = 1 − S(f(P), g(x)),其中 S 是两个向量之间的余弦相似性。 

4.1 实验设置 

        我们在四个分布多样的数据集上进行了实验:LAION(Schuhmann et al., 2022)、MS COCO(Lin et al., 2014)、Celeb-A(Liu et al., 2015)和Lexica.art(Santana, 2022)。LAION 包含从互联网上抓取的超过50亿张多样性图像,包括照片和绘画。MS COCO 主要包含包含多个常见物体的真实生活照片,而 Celeb-A 由名人肖像组成。Lexica.art 是一组由 AI 生成的绘画及其提示。
        我们通过原始(目标)图像和使用学到的硬提示生成的图像之间的图像相似性来衡量提示的质量。为此,我们使用了一个更大的参考 CLIP 模型,OpenCLIP-ViT/G,该模型在优化过程中没有使用,并作为图像之间语义相似性的中性指标。
        我们选择 Stable Diffusion-v2(Rombach et al., 2022)作为我们的生成模型,并使用开源的 CLIP 模型,OpenCLIP-ViT/H(Cherti et al., 2022)来制作提示,因为两者共享相同的文本编码器。在提示优化过程中,我们使用通用学习率 0.1,并使用 AdamW 优化器(Loshchilov & Hutter, 2017)运行 3000 次优化步骤。对于 Stable Diffusion-v2,我们将引导比例设置为 9,推断步骤数设置为 25。对于每个数据集,我们随机采样 100 个数据点,并在 5 次不同随机种子的运行中平均 CLIP 分数。
        使用 CLIP 进行硬提示发现的自然基线是 CLIP Interrogator1。为了生成描述性的硬提示,这个工具首先使用预训练的标题生成模型 BLIP(Li et al., 2022)来创建目标图像的标题。然后,根据关键词和目标图像之间的 CLIP 分数,将预收集的关键词库中的前 k 个关键词附加到标题上。这些关键词来自各种来源,包括 5,265 个艺术家名字如“Van Gogh”和 100,970 个来自提示工程的短语,从而形成了一个多样化的集合。我们发现这个关键词库包含了 Lexica.art 数据集中的大部分短语。CLIP Interrogator 然后贪婪地采样关键词,直到提示达到 CLIP 的令牌长度限制 77。

4.2 结果 

        我们在图 2 中展示了使用我们的方法学到的硬提示示例及其对应的生成图像。生成的图像清楚地表明,这些提示有效地捕捉了目标图像的语义特征。此外,根据 CLIP 分数和视觉检查,生成图像与原始图像高度相似。此外,硬提示并没有过度拟合到原始目标图像,并且在不同的随机种子下产生了一系列多样化的生成图像。

 
        提示是人类可读的,包含实词和胡言乱语(非单词符号序列)的混合。然而,提示中包含的有效单词提供了关于图像的大量信息。例如,在第一行中,我们可以看到“milkyway”和“campfire”这两个词,它们是目标图像中的两个主要元素。有趣的是,优化后的提示可能还包括表情符号,如第二行所示。🌌🌲 代表图像旁边的树木以及图像的颜色主题。优化过程似乎选择这些表情符号以包含有用信息,同时保持提示简洁。此外,我们在表 1 中展示了定量评估。我们的方法在所有四个数据集上表现一致,并且优于其他基于梯度的优化基线(完整表格可以在表 7 中找到)。值得注意的是,我们可以在 LAION、MS COCO 和 Lexica.art 上达到与 CLIP Interrogator 相似的性能,但在 Celeb-A 上则不行(CLIP Interrogator 的关键词库不包括许多与真实人类面孔相关的词汇)。然而,CLIP Interrogator 使用了大量的精选提示数据集、图像标题生成模型 BLIP 以及大量的令牌(多达 77 个),而我们提出的方法仅使用 CLIP 模型进行提示发现,并且总共只使用 8 个令牌,展示了其同时具有简洁性和强大的性能。
        我们对这些差异进行了消融研究。为此,我们在优化方法中包含了关键词库,并且只允许投影到关键词库中的令牌。总的来说,我们发现当向我们的模型添加这个约束,并禁用 BLIP 以便在平等的基础上比较两种方法时,我们在 LAION 和 Lexica.art 上恢复了大多数方法之间的定量差异。此外,减少 CLIP Interrogator 的令牌长度会导致性能急剧下降,特别是当将两种方法在相同的 8 个令牌长度上进行比较时。
        我们注意到,尽管 Stable Diffusion 和 CLIP 共享相同的文本编码器,但与我们的评估中的所有硬提示方法相比,软提示的迁移性并不好。


        提示长度。我们进一步研究了最佳令牌数量。在图 5 中,我们发现较长的提示在用 Stable Diffusion 生成时并不一定能产生更好的结果,尽管它们在 CLIP 图像编码器上的损失确实有所减少。因此,长提示过度拟合且迁移性较差,我们通过实验发现令牌长度为 16 时能获得最通用的性能。 

4.3 风格转移 

        所提出的方法也可以很容易地适应风格迁移。我们遵循Gal等人(2022)使用软提示调查的设置,但使用硬提示。给定几个共享相同样式的示例,我们将其共享的样式特征提取到单个硬提示中,并使用此提示将样式应用于新对象或场景。图3给出了两个样式转移的例子,表明我们的方法可以很容易地在提示符中嵌入共享样式元素,并将它们应用于新概念。模板和学习提示可以在附录A.1中找到。

4.4 提示连接 

        习得的硬提示也非常有用,作为复杂场景的可组合构建块。我们在图4中对此进行了测试,其中我们分别为两个不相关的图像生成提示,然后通过连接它们的提示来融合这两个图像。我们发现,即使是不同的概念,比如海滩上的彩绘马和森林里的真实日落,也可以通过它们生成的提示组合在一起。 

 

4.5 提示蒸馏 

        我们可以使用提示优化方法的另一个应用是提示蒸馏,在保留提示功能的同时减少提示的长度。在扩散模型的文本编码器具有有限的最大输入长度的情况下,例如CLIP模型,其最大输入长度为77个令牌,蒸馏非常有用。此外,长提示可能包含冗余和不重要的信息,特别是手工制作的提示,所以我们的目标是提取其精华,只保留提示中的重要信息。我们优化了一个较短的提示符,以匹配较长的提示符的特征,仅仅基于它的文本编码器f。给定目标提示符的嵌入Ptarget和可学习的嵌入e,我们简单地将损失修改为:L = 1−Sim(f(Ptarget), f(P))。我们用|P|/|Ptarget|来定义蒸馏比。

 


        在图6中,我们显示了由原始提示和具有四种不同蒸馏比(0.7、0.5、0.3、0.1)的蒸馏提示生成的图像。我们在这里看到,即使只有3或4个标记,硬提示仍然可以生成与原始概念非常相似的图像,成功地提取了较长的人工指令。

5 离散提示调整与语言模型 

        在文本到文本设置中,算法1的目标是发现一个离散的标记序列,即硬提示,它将提示语言模型预测分类任务的结果。由于文本的一个重要属性是流畅性,Shi等人(2022)发现流畅性可以提高提示的可读性和性能。因此,我们将本节的优化目标定义为任务损失和流畅性损失的加权函数, 

        我们为所有方法设置了与Shi等人(2022)相似的λ = 0.003,并且我们在没有流畅性的情况下删除了我们的方法(λ = 0),我们将其表示为无流畅性。我们着手证明,在多个基于转换器的语言模型之间进行转换时,以及在少量设置中用于发现提示时,这种方法生成的硬提示都是成功的。这些提示的一个吸引人的特性,特别是对于语言应用程序,是它们可以在较小的语言模型上进行优化,然后转移到其他更大的模型上。 

 5.1 数据集和设置

        我们针对三个分类任务、两个情感分析任务(SST-2 Socher et al, 2013 和 Amazon Polarity McAuley & Leskovec, 2013)以及一个四路分类任务(AGNEWS Zhang et al, 2015)对算法 1 与相关算法进行了评估。我们在 Ding et al (2022) 探索的设置基础上,使用 GPT-2 Large(774M 参数)(Radford et al, 2019)、Adafactor 优化器(Shazeer & Stern, 2018)和批量大小为 32(Lester et al, 2021a)来优化硬提示。我们在表 4 中提供了提示模板和表述的详细信息。
        可迁移性设置。为了测试可迁移性,我们从 GPT-2 Large 生成了 5000 步的提示。然后,我们为每种技术选择了平均验证准确率最高的五个提示,并在更大的模型上进行了测试。
我们在以下模型上测试了转移的文本:GPT-2 XL、T5-LM-XL、OPT-2.7B 和 OPT-6B(Radford et al, 2019; Lester et al, 2021b; Zhang et al, 2022),以验证所提出算法相对于相关技术的可靠性,并测试硬提示是否可以可靠地提升性能。
        因此,我们还考虑了一个仅包含模板的空提示作为基线。
        少样本设置。对于少样本设置,我们在 AGNEWS 数据集上使用 GPT-2 Large 对每个提示进行了 100 个周期的优化,我们从每个类别中抽取两个示例(k = 2)和四个示例(k = 4)来获得训练集。
        此外,我们创建了一个同样大小的保留集,并最终在整个验证集上验证了提示。 

5.2 结果 

        我们验证了我们的方法在情感分析设置中与其他方法相当,并且在 AGNEWS 上超越了其他方法约 2%。详细信息请见表 5。


        提示可迁移性。表 2 显示了每种方法在 GPT-2 Large 上训练的五个提示迁移到其他 LLMs 的情况。有趣的是,仅仅扩大模型规模——没有额外的训练——并不能保证性能会相应地提升。2我们看到,与仅评估模板相比,所有基于梯度的方法都能够迁移,发现我们使用流畅性约束训练的提示比其他提示迁移得更好。此外,我们可以看到 OPT-6.7B 使用我们流畅方法的提升最大,比仅模板基线提高了大约 14%。此外,我们看到我们的 AGNEWS 提示能够在表 6 的附录中从 GPT-2 Large 迁移到 GPT-2 XL。


        提示发现。表 3 显示,即使只有少数几次射击,我们也能实现比我们前置对应物更高的验证准确率。值得注意的是,每次少样本运行大约需要 5 分钟。
        我们运行了 100 个种子,其中训练集包含每个类别的 k 个样本,并定性检查了顶级提示。尽管许多提示是不可解释的,但许多也是连贯的。例如,即使对于 k = 2,一些提示包含了像“BBC”这样的新闻来源,而其他提示则找到了新的方法来处理新闻分类任务,考虑到文本来自博客:“Brian blog,”或“Blog Revolution analyze。”由于这些基于梯度的方法的高效性,这些方法可以为提示工程师提供发现新提示的新途径。

6 安全问题 

        令牌或单词级别的内容过滤器通常用于文本到图像扩散模型 API 中,以防止生成 NSFW(不适合工作场所)或侵犯版权的内容。例如,图像生成 API Midjourney 由于著名的阿富汗女孩照片的版权问题,禁止了包含“阿富汗”这一子字符串的提示。


        然而,提示优化可以用作一种机制来绕过简单的基于规则的内容过滤器。PEZ 可以生成一个避免禁止令牌的提示,同时仍然与原始目标提示“阿富汗女孩”的文本特征相匹配。图 7 显示了 Midjourney 使用优化后的提示的输出,该提示成功再现了禁止的图像,而没有包含禁止的单词“阿富汗”。请注意,提示似乎错误地将图像的主题,Sharbat Gula,与塔利班联系在了一起。
        即使防御者现在迭代禁止列表并禁止对抗性提示中的额外单词,攻击者也可以持续优化以绕过额外的内容限制,正如我们在补充材料图 10 中所展示的。总的来说,我们怀疑只有完整的基于特征的内容检测器才有潜力为模型所有者缓解这些担忧(Rando et al., 2022)。

7 结论 

        我们提出了一种新的方法,该方法利用连续嵌入来可靠地优化硬提示。我们方法的关键优势在于,在优化硬提示令牌的过程中,使用连续的,即软性的,提示作为中间变量,利用基于梯度的优化。这样,算法在嵌入空间中选择离散嵌入有用的位置,而不是简单地优化一个软提示,然后希望将这些软提示投影到附近的令牌嵌入上,以期望这些附近的硬提示也能表现良好。此外,由于我们的方法在所有步骤中利用梯度,通过将它们累积到软提示中,这个过程使得优化对学习率和数据中的潜在噪声更加稳健。
        尽管我们的工作在提示优化方面取得了进展,但社区对语言模型嵌入空间的理解仍处于初级阶段,对嵌入空间几何形状的更深入理解可能会在未来实现更强的提示优化。总的来说,我们的实验表明,硬提示可以轻松生成并在实际应用中灵活使用。然而,硬提示的一个局限性是,尽管它们对人类可读,但可能仍然包含一些不可解释的令牌。此外,硬提示可能从语言模型的训练数据中提取有害短语或敏感内容。尽管我们没有观察到这种行为的具体实例,但在未来的应用中,这是一个应该考虑的问题。
 


 

 

 

 

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐