PhaseEvo: Towards Unified In-Context Prompt Optimization for Large Language Models

题目

PhaseEvo:面向大型语言模型的统一上下文提示优化

在这里插入图片描述

论文地址:https://arxiv.org/abs/2402.11347
项目地址:https://github.com/XinyuanWangCS/PromptAgent

摘要

    为大型语言模型 (LLM) 制定理想的提示是一项具有挑战性的任务,需要大量资源和专家的人工投入。现有工作将提示指令和上下文学习示例的优化视为不同的问题,导致提示性能不佳。本研究通过建立统一的上下文提示优化框架来解决这一限制,该框架旨在实现提示指令和示例的联合优化。然而,在离散和高维自然语言空间中制定这种优化会带来收敛和计算效率方面的挑战。为了克服这些问题,我们提出了 PHASEEVO,这是一种高效的自动提示优化框架,它将 LLM 的生成能力与进化算法的全局搜索能力相结合。我们的框架采用多阶段设计,结合创新的基于 LLM 的突变运算符来提高搜索效率并加速收敛。我们对 35 个基准任务的方法进行了广泛的评估。结果表明,PHASEEVO 在保持良好效率的同时,大大优于最先进的基线方法。

简介

    大型语言模型 (LLM) 在各个领域和任务中表现出色 (Bubeck et al, 2023; Yang et al, 2023b),这主要归功于它们出色的上下文学习 (ICL) 能力。提示工程旨在设计有效的提示,以释放 LLM 的全部功能。由于它与黑盒 API 兼容(例如 GPT-4 (OpenAI, 2023) 和 PaLM (Chowdhery)),它正成为一种越来越受欢迎的选择,用于快速将 LLM 应用于下游任务et al, 2022)),以及与传统微调范式相比的成本效益。两种最典型的提示策略是包含任务指令和查询问题的零样本提示,以及包含额外说明性示例的少样本提示。良好的提示设计可以显着提高 LLM 的性能 (Zhu et al, 2023);然而,手动调整提示是一个漫长的过程,通常需要大量的人力和专业知识。

    自动化提示优化是一项非同小可的任务,涉及离散变量和复杂的高维空间 (Zhou et al, 2023)。为了避免优化离散的长提示,现有研究将教学和示例的优化视为单独的任务:一条研究路线(Pryzant et al, 2023; Chen et al, 2023; Yang et al, 2023a; Guo et al, 2023)采用零样本提示方法(Kojima et al, 2022)专注于优化由一个或几个句子组成的短指令;而另一条工作路线(Liu et al, 2021; Lu et al, 2021; 2022; Zhang et al, 2022b; An et al, 2023)更强调少样本示例的重要性(Brown et al, 2020),并寻求在给定固定指令的情况下从预定义数据集中选择最佳示例集。虽然这种处理有效地降低了优化复杂性,但它忽视了教学和示例之间相互作用的重要性导致性能不理想(Hsieh 等人,2023 年)。

在这里插入图片描述

    在这项工作中,我们探索了指令和示例的联合优化。然而,这样的公式化导致了一个复杂的组合优化问题,这自然带来了两个挑战:

  1. 如何设计一个优化框架,有效地导航指令和示例的高维联合空间,避开局部最小值以确保持续的性能提升?
  2. 可以采用哪些策略来提高算法的效率,实现快速收敛和合理的计算复杂度?

    为了应对这些挑战,我们提出了 PHASEEVO,这是一个统一的上下文提示优化框架,可以同时优化提示指令和示例。如图 1 所示,与大多数先前的指令优化策略(Zhou et al, 2023; Pryzant et al, 2023; Chen et al, 2023; Guo et al, 2023; Fernando et al, 2023)相比,我们的公式不对优化提示的格式施加任何限制或假设,从而充分发挥提示优化的潜力。值得注意的是,我们的方法不仅探索创新指令,而且还能够生成新颖的示例,以进一步提高 LLM 的通用性。因此,PHASEEVO 生成的提示具有高度的自适应性,可以采用任何形式,从简单的零样本仅指令提示到带有详细示例的详尽的少样本提示,具体取决于手头的具体任务。我们的实验还强调了 PHASEEVO 在优化过程中主动减少提示长度(图 5)的情况,从而产生更短但更有效的提示。这挑战了流行的观念,即提示工程通常会产生更长的提示,从而牺牲效率来换取性能。

    为了提高高维空间的搜索效率并最大限度地降低 LLM 推理成本,PHASEEVO 在战略上偏离了传统进化方法中的随机操作选择。相反,它采用四阶段设计,在全局搜索和局部优化之间交替进行。这种设计旨在在广阔的高维搜索空间中实现探索和利用之间的平衡。为了进一步提高收敛速度,我们对一套基于 LLM 的进化算子进行了广泛的分析,以确定它们独特的优势和特点。根据我们的研究结果,我们结合了两种创新设计来提高优化算法的效率和功效。首先,我们不再依赖词汇相似性,而是引入基于基于性能的向量和汉明距离的任务感知相似性度量,以实现更好的性能。其次,我们设计了一种自适应终止策略,而不是为每个阶段采用预设的步长限制,以确保在过渡到下一阶段之前,在当前阶段实现最大性能改进。

    我们对总共 35 个基准任务进行了广泛的评估,以将我们的方法与六种最新的基于 LLM 的快速优化方法进行比较,包括 APE (Zhou et al, 2023)、APO (Pryzant et al, 2023)、OPRO (Yang et al, 2023a)、PromptBreeder (Fernando et al, 2023)、EvoPrompt (Guo et al, 2023) 和 AELP (Hsieh et al, 2023)。我们的研究结果表明,与最先进的方法相比,PHASEEVO 表现出显着的改进,在 8 Big Bench Hard 基准 (Suzgun et al, 2022a) 上比 AELP (Hsieh et al, 2023) 平均提高了 46%。值得注意的是,这些进步是在所有方法中计算成本最低的。

初步问题表述

    考虑由输入/输出对的数据集 D = (Q, A) 指定的任务 T,LLM L 通过提示 P 和给定输入 Q 的连接(即 [P; Q])产生相应的输出 A。提示优化的目标是设计最佳自然语言提示 P ∗,以最大化 L 在 T 上的性能。通常,理想的提示 P 由指令(表示为 I)和示例(表示为 E)组成,作为上下文学习 (ICL) 演示。我们联合提示优化的目标是在给定 L 的情况下寻找最佳提示 P ∗ (I,E),以最大化性能指标函数 F(例如准确度)的性能。这可以正式定义为以下优化问题: 其中 X 表示自然语言提示的样本空间,是一个任意大维度的离散且难以处理的空间,这使得公式 (1) 中的优化问题变得极其困难。

    进化算法。当前的进化算法在每个阶段都利用进化算子的随机选择过程来创建新的世代 (Fernando 等人,2023;Guo 等人,2023)。这种全局优化方法有助于探索整个问题空间,但由于导航高维指令示例联合空间的复杂性,计算成本极高,收敛速度慢。

    另一方面,受梯度下降思想启发的反馈 (Pryzant 等人,2023) 和自我改进 (Madaan 等人,2023) 等方法提供了更好的计算效率。然而,这些方法在提示性能方面的改进非常有限,因为它们倾向于转向局部最小值,导致次优解。这些挑战促使我们设计一种探索-利用策略,在计算效率和提示性能之间取得平衡。

方法论

    我们建议设计一个统一的上下文提示优化框架,通过联合优化指令和示例,将零样本和少样本提示策略结合起来。为了在保持良好效率的同时实现最佳性能,PHASEEVO 采用并交替使用两种不同的优化策略:

  1. 探索,利用进化算子进行全局搜索,广泛探索整个解空间,防止陷入局部最优解;
  2. 利用,使用反馈梯度变异进行局部搜索,以加快收敛并提高效率。

在这里插入图片描述

    PHASEEVO 不依赖特定的策略,而是旨在以统一和有机的方式组织多个变异算子。在优化过程的每个阶段选择最佳变异算子最终会导致结果提示的最大性能。

变异算子

    遵循利用全局搜索和局部搜索的见解,我们引入了五个变异算子,可将其分为全局算子和局部算子。三个全局算子是: • 拉马克变异是一个逆向工程算子 OL,它通过从说明性问答对 (Q, A) = [(Q1, A1), …,(Qm, Am)] 中学习来提供教学提示,这样 OL(Qi ,L) = Ai , i = 1, …, m 给定基础 LLM L。

在这里插入图片描述

    分布突变的估计(EDA)是一个函数运算符OE,它基于父代P = [p1,…,pk】。P中的项目满足d(pi,pj ) < t,其中d是距离度量,t是阈值。如果P中的项目是根据一定的标准排序的,我们称之为EDA + Index (EDA+I)。

    交叉算子(CR)是一个函数算子OC,它执行OC (p1,p2,L)= P’,其中p1,p2是从群体集合P中选择的两个亲本,其中P = [p1…,pm】。如果用p2 = arg minp∈P d(p1,pi)来选择p2,我们称之为交叉+相异(CR + D)。

    两个局部操作符是:反馈变异是利用一批数据来创建“梯度”δ的函数操作符,该“梯度”δ提供当前提示p的反馈。通过在梯度的相反语义方向上编辑当前提示p来生成新的提示p′,例如,p′= OF(p,δ,L)。

    语义突变是一个函数运算符OS,它执行解释OS(p,L)= p’的操作,其中p’是与p具有相同语义的新提示。

    为了更好地利用这些变异操作符,我们从以下五个方面对它们进行了比较,这五个方面在性能和效率方面对我们的探索-开发策略至关重要:添加或删除示例。这检验了操作者是否可以添加或删除少量实例,以遍历联合提示优化问题的整个空间。

    改进的可能性。这评估了操作符在迭代后带来性能(分数)提高的概率(成功率)。收敛速度。该指标旨在评估操作员需要多快(就迭代次数而言)将当前候选优化为其局部最小解。两个或更多父母?这表明一个运营商是否需要两个或更多的父母,这有可能结合来自不同分支的遗传信息,增强全球探索能力。每次操作的API成本。它是通过LLM代理执行特定操作符所需的API调用次数。

    我们进行了一系列实验,在这些实验中,我们基于4种不同的初始化设置将每个操作符运行100次,以评估每个操作符在五个方面的性能。目标是获得全面的了解每个运营商的固有优势和劣势。这允许我们选择有效的操作符来有效地找到最优解。

    评估结果如表1所示。拉马克突变是引入不同样本的关键操作符,使得能够为全局初始化添加样本。反馈突变导致开发的更快收敛,并有助于添加或删除示例。EDA和交叉变异是进化算子,在探索全局空间时具有相似的特征。语义变异比反馈变异更能局部利用操作的成本效益。有关运算符的更深入讨论,请参考附录B.1和B.2。

PHASEEVO框架

    我们的PHASEEVO框架引入了双重探索开发策略,即“全局探索”→“局部开发”→“全局探索”→“局部开发”,以高效地接近全局最优。具体来说,我们最初利用多样化的采样来促进整个搜索空间的全局探索,结合指令和示例来联合优化提示。我们不仅仅依赖于全局搜索方法,例如进化变异,还通过梯度下降采用反馈变异进行快速、局部开发。这导致在勘探和开发的初始阶段之后的高级初始化。然而,在最初的两个阶段之后,一些候选者可能陷入局部最优。为了解决这个问题,我们在第三阶段利用进化算子,通过在全局范围内探索解决方案来避免局部最优。考虑到全局算子的低效率,我们在最后阶段利用语义变异来加速收敛到全局最优解。图2是优化过程的图示。

  1. 阶段0:全局初始化我们的目标是创建不同的候选人作为初始群体,以探索教学和示例的广阔联合空间。我们基于数据的可用性(输入输出对)和人类专家知识(提示示例)提供了两种类型的初始化。从输入/输出对进行逆向工程。给定一组输入/输出对S = {(Q1,A1),…根据任务T的训练集Dtrain,我们定义了一个LLM代理来应用拉马克算子OL,以对来自所提供的演示对的提示进行逆向工程。人类专家提示示例。这种方式允许人类通过整合先前的知识来启动进化过程。我们还执行了语义操作符OS来增强初始种群的多样性。

  2. 阶段1:局部反馈突变虽然初始阶段(阶段0)可以产生多样化的种群,但是每个候选对象仍然可能远离其局部最优解。为了解决这个问题,我们采用的反馈变异算子,以加快每个候选人的收敛到他们的局部最小值,利用“梯度”信息。这包括引入一个LLM考官,该考官仔细检查当前候选人的不足之处,并随后提供改进指导。这种信息被作为反馈梯度,并被LLM改进器进一步利用,以通过局部开发产生新的候选。这些新的候选包含从前一阶段继承的全局信息,因此可以被视为下一优化阶段的更好的初始化。

    第二阶段:全局进化变异第一阶段提供了一组更精确的候选者,但其中一些可能会陷入局部最优。为了解决这个问题,我们在第二阶段优先考虑勘探而不是开采,这有助于通过进行全局搜索来逃离这些受限的地点。我们利用使用EDA (EDA-I)操作符OE和CR (CR-D)操作符OC的LLM代理来促进候选人之间在更大的全球范围内增加遗传信息的交互。我们不采用余弦相似性作为距离度量,而是采用汉明距离(参见3.3节的更多讨论)来计算基于性能的向量的相似性,以便阶段2可以在进化的代中促进更大的多样性。

    第3阶段:局部语义突变在完成第2阶段的探索后,第3阶段采用局部利用来加速“最后一英里”的收敛。作为PHASEEVO的结束阶段,相对于早期阶段,在该阶段显著优化了群体的适应度得分。因此,选择语义变异算子OS来加速对候选的更具成本效益的利用。最后,我们将最佳候选识别为我们的最终最优提示,并在测试数据集Dtest上评估其性能。PHASEEVO框架的工作流程如算法1所示。

在这里插入图片描述

PHASEEVO设计

    在我们的PHASEEVO框架中,我们提出了两种新颖的设计方案来提高性能和效率。

    设计1:具有汉明距离的性能向量。

    当双亲表现出不同的属性时,像EDA和交叉这样的进化算子发挥最佳作用。在评估相似性分数方面,我们坚持这样的原则:相似性应该基于提示的表现来衡量,而不是基于它们在语言或语义上的相似性。在这种直觉的启发下,我们建议在评估数据集上基于个人表现构建候选向量,命名为“表现向量”。举例来说,在包括五个元素的评估数据集中,正确回答前三个查询而错误回答最后两个查询的候选人将具有[1,1,1,0,0]的向量表示。

    不是计算嵌入空间的余弦相似性,我们建议通过汉明距离来计算候选相似性得分,汉明距离通过检查相应符号不同的位置的数量来计算两个等长向量之间的距离。这种方式确保一个候选人更有可能与不包含相同错误的候选人配对,从而产生具有更多样化遗传信息集的多样化群体。

    设计2:适应性相位停止标准。在我们过渡到下一个阶段之前,每一个进化阶段都是完全进行的。

    进入下一阶段的决定受两个主要标准的影响。性能提升。如果在特定阶段实现操作符后没有表现出性能增益,则表明候选操作符已经被彻底优化。因此,我们过渡到下一个阶段。

    特定于操作员的公差。由于操作符本质上是变化的,更局部化的操作符,如反馈变异,具有很高的改进概率,当没有感知到性能增益时,可能意味着准备进步。然而,全局算子,例如进化算子,可能具有较低的初始改进概率,但是能够访问值得探索的更广泛的分支。因此,当全局操作符没有引入改进时,我们分配更大的容差,并在预定义的时间内运行它们。有关停止标准的更多详细信息,请参见附录B.2。

实验

实验设置任务和数据集

    我们从三个领域挑选了35个基准任务进行彻底的实验:8个大型实验(BBH) (Suzgun等人,2022 a);3 NLP检测任务,包括Ethos (Mollas et al,2021)、Liar (Wang,2017)、挖苦(Farha & Magdy,2020);24个指令归纳任务(Honovich等人,2022)。任务和数据集详情见附录d。

    基线。我们针对各种基于LLM的方法评估PHASEEVO,这些方法在提示优化方面取得了一流的性能:APE(周等人,2023年)和(Pryzant等人,2023年):APE利用迭代蒙特卡罗搜索策略,强调探索,而强调利用,利用不正确的实例作为反馈梯度来改进原始提示。

    OPRO (Yang et al,2023a):利用LLM作为优化器,通过元提示、解答分数对和任务描述来生成更好的指令。prompt breader(Fernando等人,2023年)、EvoPrompt(郭等人,2023年)和(Hsieh等人,2023年):这些方法将LLM与进化算法(EAs)连接起来ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月七꧁ ꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值