AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


微软最新,让Prompt进化自动化,用Auto EvolInstruct来拯救你的结构化提示词
发布日期:2024-07-26 14:34:30 浏览次数: 1827



都说结构化提示词难优化,其实你可能没找到合适的方法,优化问题一言难尽,但最简单的标准就是你针对某一个模型优化过的某一条提示词比初始状态性能更好,运行更稳定。微软最近又有一个新的研究,通过自动优化你的指令数据集来提升你的Prompt能力,这个研究可以广泛应用于多模态数据训练,个性化AI助手训练,教育、科研、以及创意写作等各个领域,仅对单一的结构化Prompt优化也有很好的作用。接下来,我将优化一个腾讯元器官网文档中的结构化提示词示例,为你展示这项研究。

特别是需要微调开源模型的朋友,这个优化过的指令数据集可以改善你的指令跟随问题。

图片由xiumaodalle生成

这项大型语言模型的自动指令演进方法,论文是《Automatic Instruction Evolving for Large Language Models》。

01

指令进化的全自动化解决方案

Auto EvolInstruct是一个端到端的自动化指令进化框架。它的核心目标是在不需要人工干预的情况下,自动优化和提升指令数据集的质量。与传统的人工设计进化方法相比,Auto EvolInstruct具有以下显著特点:


1. 自动分析:能够自主分析给定的指令数据,识别其特征和潜在的改进空间。


2. 动态优化:根据进化过程中暴露的问题,实时调整和优化进化策略。


3. 多重验证:通过并行执行多次优化和验证,确保生成的进化方法的稳定性和有效性。


4. 全流程自动化:从初始方法设计到最终数据集进化,实现全过程的自动化。


Auto EvolInstruct的核心工作流程。从初始进化方法e0开始,通过反复的进化轨迹分析和方法优化,最终得到优化的进化方法e*。这个过程涉及Evol LLM和Optimizer LLM的协同工作,不断改进指令的质量和复杂度。


02

深入Auto EvolInstruct的工作原理

要真正理解Auto EvolInstruct的强大之处,我们需要深入了解其工作流程的每个环节。以下是Auto EvolInstruct的核心步骤:


1. 初始进化方法设计


Auto EvolInstruct的起点是一个精心设计的通用初始进化方法。这个方法能够自主分析输入指令,并为给定数据头脑风暴合适的进化规则。让我们看一个具体的例子:


这个初始方法展示了Auto EvolInstruct如何指导大语言模型(LLM)进行指令重写。它提供了一个结构化的框架,引导LLM逐步思考如何增加指令的复杂度,同时保持指令的本质不变。



2. 进化轨迹分析


在每一轮进化后,Auto EvolInstruct会仔细分析进化轨迹,识别潜在的问题和失败案例。这一步骤使用了另一个专门的提示模板:



##进化轨迹
以下列表显示了指令如何演变成更复杂版本的案例。

对于每个案例,阶段0代表指令的初始状态,每个后续阶段都要求基于前一阶段增加复杂度。

请识别未能成功进化的案例,并提供它们的案例ID和原因。

{进化轨迹}

这个分析步骤能够帮助系统识别诸如"复杂度停滞"、"资格不足"、"关键信息丢失"等问题。例如:


- 复杂度停滞:进化后的指令没有展现出增强的复杂性,仅仅是重述了原始指令的范围。


- 资格不足:进化后的指令缺乏必要的限定条件,需要额外的询问才能生成有意义的响应。


- 关键信息丢失:进化后的指令遗漏了原始指令中的关键细节,导致需要补充信息才能提供实质性的回应。



3. 进化方法优化


基于进化轨迹分析的结果,Auto EvolInstruct会自动调整和优化进化方法。这一步骤使用了如下的优化提示:



###进化优化提示
{反馈}

我将为你提供上述指令的进化方法。你需要根据进化失败案例的反馈来优化这个方法,同时不影响其他案例的性能,并确保优化后的方法带来的复杂度增加不低于之前的方法。

请按以下格式提供优化后的方法。

```优化后的方法\n<在此处填写优化后的方法>\n```

{进化提示}

通过这个步骤,系统能够根据之前识别出的问题,动态调整进化策略。例如,如果发现许多案例存在"复杂度停滞"的问题,优化后的方法可能会增加更具体的指导,如"确保添加至少一个新的变量或条件"。



4. 多重优化策略


为了提高稳定性和探索更多可能性,Auto EvolInstruct在每一步优化中都会执行多次并行的分析和优化。这种策略通过下面的方式实现:

- 使用优化器LLM执行m次分析和优化,生成m个不同的潜在改进方法。


- 用这些方法分别进化开发集中的指令,并生成相应的响应集。


- 计算每种方法的进化失败率,选择失败率最低的方法作为下一步的进化方法。


这种多重优化策略大大提高了最终进化方法的稳定性和有效性。



5. 迭代改进


上述过程会不断重复,直到达到预设的优化次数或进化失败率不再下降。通过这种迭代过程,Auto EvolInstruct能够不断完善进化方法,适应不同指令数据的特点。


03

Auto EvolInstruct的惊人效果

那么,Auto EvolInstruct的表现如何呢?实验结果令人振奋。在多项任务上,Auto EvolInstruct显著优于人工设计的进化方法:


- 指令跟随:在MT-Bench上提升0.44分,AlpacaEval上提升3.39%。


- 数学推理:在GSM8K上提升11.89%。


- 代码生成:在HumanEval上提升5.4%。


这些数据清晰地表明,Auto EvolInstruct不仅能够匹敌人工设计的方法,还能在多个领域实现显著的突破。


这张表格提供了非常全面和详细的实验结果,让我们深入分析一下:


1. 数据和模型设置(表格顶部):


- 实验涉及三个主要任务:指令跟随、数学推理和代码生成。


- 使用了不同规模的数据集和模型,从小型(7B)到大型(8x7B)。


- GPT-4被用作evol LLM和optimizer LLM,这说明了系统使用了最先进的语言模型来优化指令。


2. 模型性能比较:


表格分为几个主要部分,比较了不同类型的模型:


a) 闭源模型:


- GPT-4在所有任务上都表现出色,尤其是在GSM8K上达到了92.00%的准确率。


- Claude 2.0和GPT-3.5-Turbo也表现不俗,特别是在指令跟随任务上。


b) 开源基础模型:


- 这些模型在没有特定指令调优的情况下性能较低,但在某些任务上仍然表现不错,如DeepSeek-Coder-Base在代码生成上达到56.10%。


c) 开源通用指令调优模型:


- 这些模型经过指令调优后,性能有了显著提升。


- Mixtral-8x7B-Instruct-v0.1在指令跟随任务上表现尤为出色,达到了94.78%的准确率。


d) 特定能力的开源指令模型:


- 这些模型在各自专门的任务上表现优秀,如WizardMath在GSM8K上达到81.60%,DeepSeek-Coder-Instruct在HumanEval上达到79.30%。


3. 指令进化方法比较(表格底部):


- 这部分是本研究的核心,比较了Seed Data、Evol-Instruct和Auto Evol-Instruct在不同规模模型上的表现。


- Auto Evol-Instruct在几乎所有情况下都优于Seed Data和Evol-Instruct。


- 在大型模型上,Auto Evol-Instruct的优势更为明显:


* MT-Bench:8.09 (+0.44)


* AlpacaEval:91.37 (+3.39)


* GSM8K:82.49 (+11.89)


* HumanEval:77.40 (+5.4)


4. 关键发现:


- Auto Evol-Instruct在大型模型上的表现尤其出色,在某些任务上甚至超过了一些专门训练的模型。


- 在数学推理(GSM8K)任务上,Auto Evol-Instruct的改进最为显著,大型模型上提升了11.89个百分点。


- 在代码生成(HumanEval)任务上,Auto Evol-Instruct也取得了显著进步,超过了许多专门的代码生成模型。


5. 总体趋势:


- 指令进化方法普遍能够提升模型性能。


- Auto Evol-Instruct在大多数情况下优于传统的Evol-Instruct方法。


- 模型规模越大,Auto Evol-Instruct的优势越明显。



这些结果强有力地证明了Auto Evol-Instruct的有效性,特别是在提升大型语言模型的性能方面。它不仅在通用任务上表现出色,还在特定领域的任务中展现了竞争力,这凸显了该方法的广泛适用性和潜力。



05

Auto EvolInstruct应用

如果您要把这个方法用于指令数据集创建,我认为您至少需要以下这些步骤的准备才能开始应用于实践:

1. 数据准备


确保你的初始指令数据集质量良好,覆盖了目标任务的各个方面。


2. 参数调优


根据具体任务和数据特点,调整Auto EvolInstruct的参数,如优化步数、并行优化次数等。


3. 结果分析


仔细研究Auto EvolInstruct生成的进化轨迹分析报告,了解数据特点和进化过程中的关键问题。


4. 人机协作


将Auto EvolInstruct的输出与你的专业知识结合,可能需要对自动生成的进化方法进行微调。


5. 迭代应用


随着新数据的积累和任务的变化,定期重新运行Auto EvolInstruct以保持最佳性能。



如果应用于单一的prompt调优,有两种方式,一种是萃取论文中的提示词在网页版和高级模型交互后实现优化,另一种写代码进行优化,无论哪一种,您来群里都有提示词和源码可以送你。


以下是腾讯元器官方文档Prompt示例:

网页版优化后

以上可以看出,不同的模型(上图是GPT-4和Claude3.5 sonnet)会有不同的优化结果。我为我整合过的提示词专门写了段代码,还做了评估,但没有迭代,优化用的是Deepseek-chat模型:


以下是我认为值得应用的领域和方向:.

1. 多模态指令优化


虽然目前的实验主要集中在文本领域,但Auto EvolInstruct的框架具有很强的可扩展性。未来有望将其应用于图像、音频等多模态指令的优化,为跨模态AI应用提供强大支持。


2. 个性化AI助手训练


Auto EvolInstruct可以帮助开发者更高效地创建和优化针对特定领域或用户群的个性化AI助手指令集,提升用户体验。


3. 教育领域的应用


在教育科技领域,Auto EvolInstruct可用于自动生成和优化针对不同学习阶段和风格的教学指令,实现更加个性化和有效的AI辅助教学。


4. 自动化科研辅助


将Auto EvolInstruct应用于科研领域,可以帮助研究人员自动生成和优化实验设计指令、数据分析指令等,加速科研进程。


5. 创意写作与内容生成


在创意产业中,Auto EvolInstruct可以用于优化各类内容生成指令,如广告文案、故事情节等,为创作者提供更多灵感和可能性。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询