Created
Jul 28, 2024 05:25 AM
Favorite
Favorite
Priority
备注
推荐
🌟🌟🌟🌟
类型
Prompt
点击上方蓝字关注我
本文:5100字阅读 13分钟
都说结构化提示词难优化,其实你可能没找到合适的方法,优化问题一言难尽,但最简单的标准就是你针对某一个模型优化过的某一条提示词比初始状态性能更好,运行更稳定。微软最近又有一个新的研究,通过自动优化你的指令数据集来提升你的Prompt能力,这个研究可以广泛应用于多模态数据训练,个性化AI助手训练,教育、科研、以及创意写作等各个领域,仅对单一的结构化Prompt优化也有很好的作用。接下来,我将优化一个腾讯元器官网文档中的结构化提示词示例,为你展示这项研究。
特别是需要微调开源模型的朋友,这个优化过的指令数据集可以改善你的指令跟随问题。
notion image
图片由xiumaodalle生成
这项大型语言模型的自动指令演进方法,论文是《Automatic Instruction Evolving for Large Language Models》。
01
指令进化的全自动化解决方案
Auto EvolInstruct是一个端到端的自动化指令进化框架。它的核心目标是在不需要人工干预的情况下,自动优化和提升指令数据集的质量。与传统的人工设计进化方法相比,Auto EvolInstruct具有以下显著特点:
1. 自动分析:能够自主分析给定的指令数据,识别其特征和潜在的改进空间。
2. 动态优化:根据进化过程中暴露的问题,实时调整和优化进化策略。
3. 多重验证:通过并行执行多次优化和验证,确保生成的进化方法的稳定性和有效性。
4. 全流程自动化:从初始方法设计到最终数据集进化,实现全过程的自动化。
notion image
Auto EvolInstruct的核心工作流程。从初始进化方法e0开始,通过反复的进化轨迹分析和方法优化,最终得到优化的进化方法e*。这个过程涉及Evol LLM和Optimizer LLM的协同工作,不断改进指令的质量和复杂度。
02
深入Auto EvolInstruct的工作原理
要真正理解Auto EvolInstruct的强大之处,我们需要深入了解其工作流程的每个环节。以下是Auto EvolInstruct的核心步骤:
1. 初始进化方法设计
Auto EvolInstruct的起点是一个精心设计的通用初始进化方法。这个方法能够自主分析输入指令,并为给定数据头脑风暴合适的进化规则。让我们看一个具体的例子:
notion image
这个初始方法展示了Auto EvolInstruct如何指导大语言模型(LLM)进行指令重写。它提供了一个结构化的框架,引导LLM逐步思考如何增加指令的复杂度,同时保持指令的本质不变。
2. 进化轨迹分析
在每一轮进化后,Auto EvolInstruct会仔细分析进化轨迹,识别潜在的问题和失败案例。这一步骤使用了另一个专门的提示模板:
这个分析步骤能够帮助系统识别诸如"复杂度停滞"、"资格不足"、"关键信息丢失"等问题。例如:
  • 复杂度停滞:进化后的指令没有展现出增强的复杂性,仅仅是重述了原始指令的范围。
  • 资格不足:进化后的指令缺乏必要的限定条件,需要额外的询问才能生成有意义的响应。
  • 关键信息丢失:进化后的指令遗漏了原始指令中的关键细节,导致需要补充信息才能提供实质性的回应。
3. 进化方法优化
基于进化轨迹分析的结果,Auto EvolInstruct会自动调整和优化进化方法。这一步骤使用了如下的优化提示:
通过这个步骤,系统能够根据之前识别出的问题,动态调整进化策略。例如,如果发现许多案例存在"复杂度停滞"的问题,优化后的方法可能会增加更具体的指导,如"确保添加至少一个新的变量或条件"。
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不仅能够匹敌人工设计的方法,还能在多个领域实现显著的突破。
notion image
这张表格提供了非常全面和详细的实验结果,让我们深入分析一下:
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示例:
notion image
网页版优化后
notion image
notion image
以上可以看出,不同的模型(上图是GPT-4和Claude3.5 sonnet)会有不同的优化结果。我为我整合过的提示词专门写了段代码,还做了评估,但没有迭代,优化用的是Deepseek-chat模型:
notion image
以下是我认为值得应用的领域和方向:.
1. 多模态指令优化
虽然目前的实验主要集中在文本领域,但Auto EvolInstruct的框架具有很强的可扩展性。未来有望将其应用于图像、音频等多模态指令的优化,为跨模态AI应用提供强大支持。
2. 个性化AI助手训练
Auto EvolInstruct可以帮助开发者更高效地创建和优化针对特定领域或用户群的个性化AI助手指令集,提升用户体验。
3. 教育领域的应用
在教育科技领域,Auto EvolInstruct可用于自动生成和优化针对不同学习阶段和风格的教学指令,实现更加个性化和有效的AI辅助教学。
4. 自动化科研辅助
将Auto EvolInstruct应用于科研领域,可以帮助研究人员自动生成和优化实验设计指令、数据分析指令等,加速科研进程。
5. 创意写作与内容生成
在创意产业中,Auto EvolInstruct可以用于优化各类内容生成指令,如广告文案、故事情节等,为创作者提供更多灵感和可能性。当然您也可以用这个方法优化:
往期推荐
欢迎来群里共同探讨!
  1. 非常感谢大家对我的支持和认可。自2024年6月18日起再进入赞赏群,需赞赏两篇文章各200元(共400元),我特意开了新群。赞赏低于400元仅视为对作者的喜欢。Reference:
    1. 您赞赏完毕后我将赠与您这些文件并拉您进群,以表示对您赞赏的感谢:
      1、自4月11日至今7月15日60多篇文章文末提及的附件近百份,包括:
      A:语气关键字提取Prompt、自我发现Promt、预测prompt、Tom谈判、GPT记忆、参与式Prompt、弦外音、Medprompt、语义嵌入向量提示词、类比提示、检索增强RAT、TextGrad、UNIPrompt、贝叶斯优化等优质提示词、优化过的CoT prompt框架等
      B、微调、SAMMO优化、DSPy运行环境部署等Dockerfile文件
      C、能运行的代码包括:本地模型运行DSPy写的Agent、DSPy意图识别代码、DSPy与Langchain优化Prompt 、prompt-SAW提示压缩、概率迭代优化Prompt代码
      、SymbolCot的DSPy代码、提示词敏感性和一致性代码、GraphRAG转PDF成为数据集等
      D、公众号文章介绍过的50多篇论文、资料尤其是谷歌提示、Prompt调查报告等重磅资料
      2、和与您一样的共识者探讨本公众号有关的文章、技术,共同进步
      3、就文章涉及的问题向本人咨询
      4、后续文章提及的提示词、代码、资料等文件
      赞赏完成后,请添加我的微信xiumaoprompt拉您入群。本群有效期为永久,除非特殊情况下的解散。
  1. https://arxiv.org/abs/2406.00770v1
  1. https://docs.qq.com/aio/p/scxmsn78nzsuj64?p=GuUqopKfJROU2atryKkO6P7
  1. <本文完结>转载请与本喵联系,私自抓取转载将被起诉如果您觉得这篇文章对您有帮助或启发感谢您为我【点赞】【在看】<您为我点赞在看,只有我能看到>👉微信号:xiumaoprompt加我微信之前,请务必先点赞或在看这样我才能更快地识别并回应您
    1. 🎉让我们一起创造更多美好!🎉
      notion image
优化13
自动化2
prompt75
微软6
优化 · 目录
上一篇能PK过DSPy的自动Prompt优化方法来了,GRAD-SUM:用梯度汇总优化你的提示词
Loading...