From Monolithic to Modular: Segment-level Automatic Prompt Optimization
本文介绍了 SAPO,一种段落级自动提示词优化方法,它将提示词分解为不同的组件以针对特定的弱点,并在多种基准测试中表现优于现有的整体式方法。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图教一个超级聪明的机器人如何写故事、解数学题或总结新闻文章。你通过给它一组指令来实现这一点,科学家们称之为“提示词”(prompt)。把提示词想象成一份食谱:如果指令模糊或混乱,机器人可能会做出味道像肥皂而不是巧克力的蛋糕。长期以来,研究人员试图通过每次在机器人出错时都重新编写整个食谱来修复这些问题。这就像是因为糖霜稍微有点不对劲就扔掉整个蛋糕,希望下一次尝试能完美无缺。这种被称为“整体式”(monolithic)优化的方法通常能让任务的一个部分表现良好,但却会意外地破坏另一部分,导致机器人感到困惑且结果不稳定。
你即将阅读的论文通过一种名为 SAPO(分段式自动提示词优化)的新方法解决了这个问题。SAP-O 不再是扔掉整个食谱,而是像一位大师级厨师,能够仔细品尝蛋糕,精准识别出到底是哪种成分出了问题(也许是盐放多了,或者糖放少了),并在保持完美部分不变的同时,只修复有问题的部分。作者在五种不同类型的任务上测试了这种方法,从回答阅读理解问题到解决复杂的数学问题,并使用了两种不同的机器人大脑(GPT-3.5-Turbo 和 GPT-4o-mini)。他们发现,通过将指令分解成更小、更易管理的片段,并仅修复薄弱环节,他们可以获得比以往方法好得多的结果,在某些任务上的性能提升了高达 7.25%。
更好的机器人食谱
让我们深入了解它是如何运作的。想象一下,你正在给一个机器人一份非常长且复杂的说明书。过去,如果机器人答错了,一个自动优化器会尝试一次性重写整个说明书。这就像是通过更换整辆车来修理一台坏掉的汽车引擎。有时,这辆新车开起来很棒,但停车时却表现糟糕。旧方法经常让机器人在一件事上变强,但在另一件事上变弱,作者称之为“提示词漂移”(prompt drifting)的问题。
本文的作者 Nikita Kulin 及其团队提出了一种更聪明的方法。他们意识到,一份好的说明书不仅仅是一个巨大的文本块,它是由不同的章节组成的。他们将提示词分解为四个特定的“片段”:
- 角色 (Role): 机器人应该是谁?(例如,“你是一位乐于助人的历史学家。”)
- 上下文 (Context): 背景故事或情境是什么?(例如,“你正在与一名学生交流。”)
- 任务 (Tasks): 机器人具体需要做什么?(例如,“用三句话总结这段文字。”)
- 输出格式 (Output Format): 答案应该长什么样?(例如,“给我一个带项目符号的列表。”)
SAPO 侦探游戏
这种新方法将这四个片段视为侦探游戏中的线索。以下是他们使用的逐步流程:
首先,系统会让机器人进行一次带有大量示例的训练课程。它查看结果,并挑选出前 5 个最佳示例(机器人答对了)和最后 5 个最差示例(机器人搞砸了)。
接下来,系统开始扮演侦探。它要求第二个更聪明的机器人(充当评判者)观察前 5 个和后 5 个示例,并找出机器人成功或失败的原因。是“角色”部分让机器人困惑了?还是“任务”描述得太模糊?评判者会识别哪些片段是“强项”(在好的示例中表现良好)以及哪些是“弱点”(在坏的示例中造成麻烦)。
接着是神奇的部分:约束合成 (Constrained Synthesis)。系统不会重写整个说明书,而是生成新版本的提示词,这些新版本会保留原本表现强劲的片段,并且只修改那些薄弱的片段。这就像是保留完美的巧克力蛋糕面糊,但把烧焦的糖霜换成新鲜的一批。这确保了原本已经运作良好的指令部分不会被意外破坏。
最后,系统会在另一组问题(验证集)上测试这些经过部分修订的提示词。如果新提示词表现更好,它就会被接受。如果没有,系统会保留旧的提示词。这个过程会反复进行,直到机器人达到它所能达到的最佳水平。
结果:明显的赢家
团队在五种截然不同的挑战上测试了这种方法:
- SQuADv2: 根据阅读文章回答问题。
- TweetEval: 对推文的情绪进行分类。
- XSUM: 总结新闻文章。
- CommonGen: 根据单词列表创建句子。
- GSM8K: 解决小学数学应用题。
他们在两个机器人模型上运行了这些测试:GPT-3.5-Turbo 和 GPT-4o-mini。结果令人印象深刻。与那些一次性重写整个提示词的流行方法(如 APE、OPRO 和 EvoPrompt)相比,SAPO 在平均得分上始终更高。
在 GPT-3.5-Turbo 模型上,与排名第二的方法相比,SAPO 的平均得分提高了 5.13%。在更先进的 GPT-4o-mini 上,提升甚至更大,比竞争对手高出 7.25%。最大的胜利发生在需要非常严格答案的任务上,比如数学问题 (GSM8K) 和阅读理解 (SQuAD2),因为在这些任务中,指令中哪怕极其微小的错误也会导致完全错误的答案。
为什么这很重要
作者认为,这种成功源于 SAPO 阻止了当你同时改变一切时所发生的“破坏性干扰”。通过将变化局部化到提示词的薄弱部分,系统保留了那些已经完美运作的部分。这是一种更细致、更具手术式精准度的教学方式。
然而,论文也指出了一些局限性。目前的这种方法使用了一组固定的四个片段。虽然这适用于许多任务,但对于每一种特定类型的问题来说,可能不够详细。作者建议,未来的版本可以让机器人自动发现新的片段类型,而不是仅仅局限于这四个片段。
简而言之,SAPO 表明,当你想要教导一个超级智能机器人时,修复错误最好的方法有时不是从头开始,而是仔细识别到底哪里出了错,然后只修复那一部分。这是一种从“重写一切”到“修复损坏之处”的转变,而目前看来,这正是制胜策略。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。