标题 | PhaseEvo: Towards Unified In-Context Prompt Optimization for Large Language Models |
---|---|
作者 | Wendi Cui, Jiaxin Zhang, Zhuohang Li, Hao Sun, Damien Lopez, Kamalika Das, Bradley Malin, Sricharan Kumar |
机构 | 1. Intuit AI Research 2. Vanderbilt University 3. University of Cambridge 4. Vanderbilt University Medical Center |
邮箱 | [jiaxin_zhang@intuit.com](Jiaxin Zhang) |
论文 | https://arxiv.org/pdf/2402.11347 |
前言
针对不同任务、不同情况,在离散和高维的自然语言空间中,为大语言模型制定理想的prompt一直以来是一项挑战。为了避免优化离散的long-prompt,现有研究将prompts的instruction和examples的优化视为两个单独的任务,导致性能不佳。而PhaseEvo将两者做联合优化,旨在释放prompt优化的全部潜力。但是这不免会引入复杂的组合优化问题,自然会带来两个挑战:
如何设计一个优化框架,有效地导航prompts的instruction和examples的高维联合空间,避开局部极小值,以确保持续的性能提升? 可以采用什么策略来提高算法的效率,从而以合理的计算复杂度实现快速收敛?
Let's take a look.
研究的问题
给定任务 (T), 输入(Q)/输出(A)数据对, 以及LLM。
希望找到一个prompt形式(在本文由instruction(I)和作为上下文学习用的examples(E)组成),使得[P(I,E);Q]输入到LLM中,LLM能产生A*,和A最match。即:
其中 X 表示自然语言prompt的样本空间,是一个任意大维数的离散且难以处理的空间,这使得式(1)中的优化问题很困难。
PhaseEvo
PhaseEvo是一种高效的自动prompt优化框架,将LLM的生成能力与进化算法的全局搜索能力相结合,其交替使用两种不同的优化策略:
Exploration: 利用进化算子进行全局搜索。在优化过程的每个阶段选择最佳突变算子,以广泛探索整个解决方案空间并防止陷入局部最优解决方案。 Exploitation: 使用反馈梯度变异进行局部搜索以加速收敛并提高效率。
变异算子
PhaseEvo引入了三种全局变异算子和二种局部变异算子:
其中全局变异算子:
拉马克变异(Lamarckian Mutation) 是一种逆向工程操作符 ,在给定基础LLM的情况下,通过学习示例性的输入/输出数据对 ,即 , 以提供指导性的prompt,使得 。 分布估计变异(EDA,Estimation of Distribution Mutation) 是一个函数操作符 ,基于一组父代 生成一个新prompt 。集合 中的项满足 ,其中 是一个距离度量, 是阈值。如果 中的项根据某些标准进行排序,我们将其称为 。 交叉操作符(CR,Crossover Operator) 是一个函数操作符 ,执行 ,其中 是从集合 中选择的两个父代。如果 ,则选择 ,并将其称为。
局部变异算子:
反馈变异(Feedback Mutation) 是一个函数操作符 ,使用一批数据创建“梯度” ,为当前prompt 提供反馈。通过在当前prompt 中沿着梯度的相反语义方向编辑来生成新的prompt ,例如,。
语义变异(Semantic Mutation) 是一个函数操作符 ,执行重述操作 ,其中 是共享相同语义含义的新prompt。
算法流程
第0阶段:全局初始化。
为了创建多样化的候选人作为初始种群,以探索教学和榜样的广阔联合空间。我们根据数据(输入-输出对)的可获得性和人类专家知识(prompt示例)提供了两种类型的初始化。1)使用操作,从输入/输出对进行逆向工程。2) 结合手动设计的prompt示例。并且使用操作,增强初始种群的多样性。
第1阶段:局部反馈突变
虽然一个初始阶段(第0阶段)可能导致一个多样化的种群,但每个候选人仍然可能远离其局部最优解。为了解决这个问题,使用反馈变异算子 ,利用"梯度"信息,加快每个候选人向其局部最小值收敛。这涉及到引入一个LLM检查器,它审查当前候选项不足的实例,然后提供改进指导。这些信息作为反馈梯度,并被LLM改进器进一步利用,通过局部开发来生成新的候选者。这些新的候选者包含了从前一阶段继承的全局信息,因此可以被视为下一优化阶段的更好的初始化。
第2阶段:全局进化突变
第1阶段提供了更精细的候选集,但部分候选集可能陷入局部最优。为了解决这个问题,在第2阶段优先考虑探索而不是利用,这有助于通过进行全局搜索来摆脱这些受限制的地方。使用 操作和 操作,以促进在更大的全局范围内增加候选者之间遗传信息的相互作用。与使用余弦相似度作为距离度量不同,这里采用汉明距离来计算基于性能的向量之间的相似度,使得第2阶段能够在进化中促进更大的多样性。
第3阶段:局部语义突变
在完成第2阶段的探索后,第3阶段使用局部开发来加速收敛的"最后一公里"。作为PhaseEvo的结束阶段,种群的适应度值在该阶段相对于早期阶段有显著的优化。因此,选择语义变异算子,以加快更经济有效地利用候选项。最后,我们识别出最佳候选者作为最终的最优prompt。
实验
遵循AELP( Hsieh et al , 2023)的实践,文章进行了8个BBH任务来全面评估PhaseEvo的性能。实验结果表明,PhaseEvo在保持较高计算效率的同时,显著地超过了当前最先进的基线方法。超过AELP ( 46.0 %↑),EvoPromopt ( 20.3 %↑)和OPRO ( 23.5 %↑)的平均改进。
总结
总而言之,文章持续性地通过提出了一系列变异算子,在LLM+EA的迭代优化过程中,实现了instruction和少样本examples的联合优化,从而提高prompt的性能。从“联合优化”、“全局-局部”的角度行文,也提高了文章的可读性。