微信扫码
与创始人交个朋友
我要投稿
通过模块化语言模型调用,并组成pipleines来解决复杂任务,极大的推动了NLP任务的发展(下图为prompt优化样例)。在此过程中需要对每个模块设计有效的prompt。为此本文作者重点研究了LLM编程的prompt优化,旨在通过优化提示来最大化下游任务指标。作者将复杂问题分解为优化每个模块的指令提示,并引入了几种策略来制作基于任务的指令,并开发了一种新型优化器MIPRO,使用Llama3-8B在多个项目上都得到了不错的效果,且最高可提升13%的准确率。https://arxiv.org/pdf/2406.11695
使用语言模型(LM)来解决复杂的任务,通常需要应用高级的提示技术(prompting techniques)并将它们组合成多阶段的流程(multi-stage pipelines)。尽管如此,当前的LM程序大多是通过“提示工程”(prompt engineering)来设计的,这是一种通过手动试错来创建长提示的方法,以迫使LM在特定流程中执行特定步骤。
当前最新的研究提出了提示优化器(prompt optimizers),例如APE、OPRO和EvoPrompt等,它们可以检索字符串以识别高性能提示的算法。但是,大多数方法并不能够直接应用于多阶段LM程序,因为在这些程序中缺乏对单个LM调用的评估指标。最近ICLR2024提出的编程模型:DSPy,将LM pipeline抽象为文转图,可以学习如何应用提示、微调、增强和推理技术的组合。但该优化器尽管可以创建多阶段pipeline表示来优化prompt和权重,但是并不能对复杂multi-prompt pipelines的 free-form 指令进行调优。
为此,本文在弱假设条件下探讨任意语言模型(LM)程序中高效优化提示(prompts)的方法,特别是那些具有多个阶段的程序。具体来说,作者无法访问LM权重,只需要LM程序本身、一个优化度量标准以及一组输入输出的训练集。这使得在不收集每个模块的详细训练数据的情况下,可以优化使用黑盒LM的程序。
针对该研究方向,作者正式定义了LM程序的提示优化问题,并提出了两个关键挑战:1)随着模块数量的增加,提示的范围空间将会非常大,基于Less is More的思想,构建一些高质量的prompt至关重要;2)面对复杂的多阶段任务,需要联合优化许多不同的变量,而这些变量参数化了所有模块的提示,必须有效地推断每个变量配置的影响。为此,本文作者定义了几种策略来应对此类挑战,并系统的探索了它们的性能。
下图定义了优化语言模型(LM)程序中提示的问题,并提出了一个通用的优化框架。如下图所示:LM程序:由多个模块(个模块)组成的程序,每个模块使用不同的语言模型(LM)。每个模块由一个包含一组变量的提示模板定义。例如,对于一个少样本问答(few-shot QA)的提示模板,可能包含用于指令、示例和目标问题的变量。
变量和赋值:是所用提示模板中所有变量的集合,是变量到字符串的总赋值。指定了在这种赋值下运行的程序。
优化目标:目标是找到一个总赋值,使得在训练集上的度量下,程序的性能最优化。这涉及到优化程序在任务级别上的表现,而没有直接访问到LM的权重以及中间阶段指标。
为了能够获取与任务、程序、数据和指标性质一致的候选提示。可以从以下三个方面来思考:(i) 构建指导性示例轨迹(即每个模块的输入和输出),以展示 LM 应如何执行任务,(ii) 收集和总结可能影响高质量指令构建的重要因素,和/或 (iii) 对如何使用 LM 提出高性能指令进行元优化。
对于多种配置组合选择,作者提出了三种解决方案来解决该问题:贪婪(greedy)方法、代理(surrogate)方法和基于历史(history-based)的方法。
以上方法各有优势和局限性,为此作者提出了一种创新算法,专为优化多阶段语言模型(LM)程序设计:MIPRO(Multi-prompt Instruction PRoposal Optimizer)。MIPRO通过其设计和变体展示了在多阶段LM程序优化中的高效率和灵活性,尤其在提升程序性能方面表现突出。具体来说:
它通过应用贝叶斯优化技术,有效预测不同变量组合的质量,从而提高参数空间检索的效率。MIPRO的一个关键特点是将多配置组合选择与提示任务分离,使得语言模型能够专注于生成高质量的任务提示。此外,它采用元优化过程来不断改进提示策略,并通过在小批量训练数据上的评估来增加优化过程的效率。
MIPRO的工作流程包括初始化、提案、更新和提取优化集四个步骤。在初始化阶段,算法根据提案超参数提出一组指令和任务示例,并对贝叶斯模型中的潜在变量进行均匀先验初始化。提案阶段利用树状Parzen估计器的采样规则来提出部分指令和示例赋值。更新阶段在随机选择的小批量样本上评估这些赋值,并据此更新模型的先验认知。最后,在提取优化集阶段,定期评估候选参数化并返回得分最高的配置。
MIPRO还包括几个变体,如0-Shot MIPRO专注于指令优化,Bayesian Bootstrap专注于示例优化,MIPRO++则进一步使用贝叶斯模型来优化提案超参数,0-Shot MIPRO++专注于通过元优化(meta-optimization)过程来调优和改进指令提案策略。这些变体使得MIPRO能够灵活适应不同的任务和条件。
如下图所示,作者展示了不同优化器在多个任务上的性能表现,涵盖了不同的领域和难度级别,以评估和比较不同优化策略的有效性。可以发现:1)优化引导示例(few-shot demonstrations)对于提高性能至关重要,尤其是在复杂任务上。2)对于具有复杂规则的任务,如HotPotQA Conditional,指令优化显示出其重要性,能够指导LM生成符合特定格式的输出。3)MIPRO通过联合优化指令和示例,可以获得最佳的整体性能。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-24
「深度」O1意义被大大低估!OpenAI核心科学家重磅发声:测试时计算将引爆AGI时代!
2024-12-24
AI大牛解析o3技术路线!大模型下一步技术路线已现端倪?
2024-12-23
AI Agent智能体产品的5个级别
2024-12-23
Anthropic官方揭秘:构建AI智能体的"最强攻略"!
2024-12-23
2025年AI大模型的趋势与洞察
2024-12-23
阶跃星辰完成数亿美元 B 轮融资,发力「超级模型」+「超级应用」
2024-12-23
百川智能发布全链路领域增强金融大模型Baichuan4-Finance,金融能力领先GPT-4o近20%
2024-12-22
AI“落地”系列——Agent
2024-05-28
2024-04-26
2024-08-13
2024-08-21
2024-07-09
2024-06-13
2024-08-04
2024-04-11
2024-07-18
2024-07-01