提纲
1 简介
2 OPRO
3 实验
4 总结
参考文献
1 简介
**Google DeepMind近期发布一种简单且有效的大模型玩法OPRO,以自然语言的形式描述优化任务,让大模型充当优化器。** 在每一次优化中,将之前的历史方案以及对应的价值写进prompt,让大模型生成新的解决方案,然后评估该方案的价值,重复这个过程直到成功完成任务或者达到最大迭代轮次。研究人员在几个任务上进行实验,验证了这种新方案明显优于人工撰写prompt的旧方法。
2 OPRO
图1:OPRO框架
OPRO框架如图所示,需要的要素有三个部分,meta- prompt,LLM跟评估器。首先在meta-prompt中写清楚相关任务描述,以及若干解决路径跟对应的价值分数。在每一次优化中,让meta-prompt作为LLM的输入,生成新的解决路径,然后让评估器去评估该解决路径的价值,将新的解决路径跟得分也加到meta-prompt中,重复这个过程直到任务完成或者达到最大迭代次数。
LLM用于优化任务所需要的能力
能够利用自然语言描述。对于优化任务而言大模型的主要优势在于强大的自然语言理解能力,从而允许我们可以通过自然语言的方式去描述优化任务,不需要正式严格的规范。
平衡探索跟利用。优化任务的一个基本挑战就是平衡探索跟利用,这就要求LLM不仅要利用已经探知的有潜力区域,充分利用已有解决路径的信息,而且还要能探索新的未知区域,防止遗漏更加的解决路径。
meta-prompt设计
让LLM充当优化器,首先需要定义好初始化prompt。prompt这里需要包括两部分关键信息,其一是优化任务描述,用自然语言的方式描述优化任务,包括优化目标跟解决方案约束。例如“generate a new instruction that achieves a higher accuracy”,让LLM去生成一个更好的指令。其二是优化轨迹,给定若干解决路径跟相应的优化得分,让模型去识别高得分跟解决路径的相似之处,鼓励模型在已有解决路径的基础上去构建更优路径,类似于ICL里的里面的demonstration。
解决路径生成
在每一步优化中,LLM会将metaa-prompt作为输入,生成新的解决路径,在这个阶段又两个关键挑战需要解决。其一是优化的稳定性,在优化过程中,并非所有的解决路径都具有高价值,并且价值能单调上升,尤其是容易收到低质量的demonstration影响。为了提高稳定性,研究人员每次让LLM同时生成多个解决路径。第二个挑战是如何平和利用跟探索,研究人员利用LLM的抽样temperature实现这个要求,更低的temperature会鼓励语言模型更多依赖于已探索的区域,更高的temperature则会鼓励语言模型更激进得去探索未知的区域。
3 实验
研究人员在几个任务上进行了对应实验,包括线性回归,旅行商问题跟,在这里只介绍线性回归问题的相关实验。先给定一组(w,b),根据y=wx+b+高斯噪声 去生成50个对应的(x,y),优化任务就是根据这50个(x,y)去寻找最合适的(w,b)。通过实验的到若干发现,在这个几个任务上都有共性。
a) 无论选用哪个大模型,所探索的(w,b)数量都少于暴力搜索,这显示了大模型在优化过程中虽然充当黑盒子的角色,但是却能沿着更合理的方向去优化。
b)大模型之间也有差距,gpt-4在优化任务中有明显优势。
c)优化任务越难,模型的性能也会相应下降。
图2:线性回归任务实验记录
4 总结
OPRO论证了LLM通过简单的prompt engineering就可以去优化多种类型的目标函数,并且在那些搜索空间较小的问题里找到最优解决路径。但是也伴随着一些挑战,LLM的窗口长度限制了它在那些需要大篇幅优化问题描述的任务上的应用,例如高维数据的线性回归。另外,有些优化任务的搜索区域过于颠簸,会让LLM没法找到一个正确的优化方向。
个人觉得,OPRO跟目前的大模型plan想法还是有所区别,OPRO每一步生成都会生成一个新的解决路径,并且通过迭代不断去优化这个解决路径,而大模型pla更多的是问题分解,将复杂的任务分解成多个子问题,然后再逐一解决。所以这两者是可以相互借鉴的,在大模型plan的过程中,利用OPRO为每个子问题提供更加合适的解决路径。
参考文献
- large language models as optimizers