SCULPT: Systematic Tuning of Long Prompts¶
会议: ACL 2025
arXiv: 2410.20788
代码: 无
领域: LLM NLP
关键词: 提示词优化, 长提示词, 层次化树结构, 批判者-执行者框架, 提示工程
一句话总结¶
提出 SCULPT 框架,将长提示词优化建模为层次化树结构的迭代修正问题,通过 Critic-Actor 框架对提示词进行结构化的反思和操作级修改,在保持长提示词信息完整性的同时显著提升 LLM 任务性能,并具备对抗扰动的鲁棒性。
研究背景与动机¶
领域现状:提示词优化(Prompt Optimization)是提高大语言模型在各种下游任务上表现的关键技术。现有方法如 APE(Automatic Prompt Engineer)、EvoPrompt 等主要聚焦于短提示词的优化——通过替换词汇、重排句子、添加/删除指令等方式来改进性能。
现有痛点:然而,真实应用中的提示词往往很长且结构复杂(包含任务描述、格式要求、示例、约束条件等多个部分),现有短提示词优化方法在处理这类长提示词时面临严重问题:(1) 全局性修改容易丢失关键信息;(2) 对微小扰动非常敏感,一个段落的调整可能影响整个提示词的语义;(3) 无法生成新的结构性内容来补充提示词的缺陷。
核心矛盾:长提示词的优化空间是巨大的——每个段落、每句话都可能成为优化对象——但现有方法缺乏有效的结构来管理这种复杂性。直接在平铺的文本上做搜索效率极低,且容易陷入局部最优。
本文目标:设计一个专门用于长提示词的系统化优化框架,能够 (1) 在不丢失信息的前提下进行精准修改;(2) 对噪声和扰动具有鲁棒性;(3) 甚至可以在没有初始人工提示词的情况下从零生成高质量提示词。
切入角度:作者观察到长提示词具有天然的层次结构(标题→段落→句子),可以被建模为树结构。在树上进行的修改天然具有局部性——修改一个叶节点不会影响到远处的内容——这为精确和鲁棒的优化提供了结构保证。
核心 idea:将长提示词表示为层次化树结构,用 Critic 模块产生修改建议,用 Actor 模块在树的特定节点上执行精确操作。
方法详解¶
整体框架¶
SCULPT 将长提示词组织为一棵层次化的树,树的不同层次对应提示词的不同粒度(如节→段落→句子)。优化过程是一个迭代循环:每一轮中,Critic 模块评估当前提示词的效果并生成结构化的反思(什么地方有问题、为什么有问题、建议如何修改),然后 Actor 模块根据反思在树的特定节点上执行具体的修改操作(如替换句子、插入新段落、删除冗余内容等)。修改后的提示词在验证集上评估,如果性能提升则接受修改,否则回滚。
关键设计¶
-
层次化树结构表示(Hierarchical Tree Representation):
- 功能:将长提示词组织为结构化的树,支持不同粒度的精确修改
- 核心思路:将提示词自顶向下解析为树结构——根节点是完整提示词,中间节点是各个段落或功能模块(如"任务描述"、"格式要求"、"示例"等),叶节点是具体的句子。每个节点携带其功能描述和内容文本。修改操作定义在特定的树节点上,包括:节点内容替换(Swap)、节点插入(Insert)、节点删除(Delete)、节点内容改写(Paraphrase)等。树结构保证了修改的局部性——修改一个子树不会影响其他子树。
- 设计动机:平铺文本缺乏结构信息,修改一处容易"牵一发而动全身"。树结构将全局优化分解为局部优化,提高搜索效率的同时降低信息丢失风险。
-
Critic 模块(反思生成):
- 功能:评估当前提示词的效果并生成结构化的修改建议
- 核心思路:Critic 以当前提示词和验证集上的表现作为输入,利用 LLM 进行"反思"——分析性能瓶颈出现在提示词的哪个部分、为什么出现问题、建议进行什么类型的修改。Critic 的输出是结构化的,指定了需要修改的树节点位置、问题类型和建议的修改方向。这种反思机制使得修改是有针对性的,而非盲目搜索。
- 设计动机:盲目的随机修改效率低下。Critic 通过"先诊断再治疗"的模式,将优化过程从随机搜索提升为定向改进。
-
Actor 模块(操作执行):
- 功能:根据 Critic 的建议在树结构上执行具体的修改操作
- 核心思路:Actor 接收 Critic 的修改建议,在指定的树节点上执行对应的操作。支持的操作包括:替换节点内容、在特定位置插入新节点、删除冗余节点、对节点内容进行同义改写等。Actor 的输出是修改后的新树,再转化回提示词文本进行评估。如果修改后在验证集上的性能提升,则保留修改并进入下一轮;否则回滚到上一版本。
- 设计动机:将修改操作限定在树的局部节点上,避免了全局修改带来的信息丢失。操作类型的多样性(增删改)使得系统可以灵活应对不同的优化需求。
损失函数 / 训练策略¶
SCULPT 是一个无需训练的推理时框架。优化过程基于验证集上的任务性能指标(如准确率)来评判每次修改的效果。框架使用贪心策略——每轮保留性能提升最大的修改。
实验关键数据¶
主实验¶
在多个 NLP 基准任务上进行评估,涵盖分类、问答、生成等任务类型,使用 GPT-3.5/4 等不同 LLM。
| 方法 | BBH (avg) | 指令遵循 | 分类任务 | 说明 |
|---|---|---|---|---|
| 原始长提示词 | 基线 | 基线 | 基线 | 人工编写 |
| APE | 低于SCULPT | 低于SCULPT | 低于SCULPT | 短提示词优化方法 |
| EvoPrompt | 低于SCULPT | 低于SCULPT | 低于SCULPT | 进化式搜索 |
| OPRO | 低于SCULPT | 低于SCULPT | 中等 | LLM自优化 |
| SCULPT | 最高 | 最高 | 最高 | 本文方法 |
| SCULPT (从零生成) | 接近或超过人工 | 竞争力强 | 良好 | 无需初始提示词 |
消融实验¶
| 配置 | 平均性能 | 说明 |
|---|---|---|
| Full SCULPT | 最高 | 完整框架 |
| w/o Critic | 显著下降 | 去掉反思后修改变为随机 |
| w/o 树结构(平铺修改) | 明显下降 | 缺乏结构化修改降低效率 |
| w/o 迭代(单轮修改) | 中等下降 | 一次修改不足以充分优化 |
| 固定操作类型(仅替换) | 下降 | 单一操作类型不够灵活 |
| 不同树深度 | 中等深度最优 | 太浅→修改粒度粗;太深→搜索空间大 |
关键发现¶
- Critic 模块贡献最大:去掉 Critic 后性能下降最明显,说明"定向反思"比"随机搜索"效率高得多
- 树结构对鲁棒性关键:在对抗扰动实验中,SCULPT 的性能波动明显小于平铺方法,因为树结构将扰动隔离在局部
- 从零生成能力令人惊喜:SCULPT 在没有任何初始提示词的情况下,通过多轮迭代可以生成接近甚至超过人工编写的提示词
- 迭代轮数的边际效应:通常 3-5 轮迭代后性能趋于稳定,更多迭代提升有限
亮点与洞察¶
- 树结构建模提示词是核心创新:将提示词的层次结构显式建模为树,使得修改具有天然的局部性和结构保证。这个想法简洁但有效——长文本的优化本质上就是在层次结构中找最佳配置。
- Critic-Actor 解耦设计:分离"诊断"和"治疗"两个步骤,让每个步骤更聚焦。这个模式可以迁移到其他迭代优化任务中,如代码优化、文章修改等。
- 鲁棒性是实际应用的关键:现有提示词优化方法对微小变化过于敏感,在实际使用中不稳定。SCULPT 的结构化方法提供了更可靠的优化结果。
局限与展望¶
- 每轮迭代需要在验证集上评估,当 LLM 推理成本高且验证集大时,总优化成本可能很高
- 树结构的初始解析依赖于提示词有合理的层次结构,对于非结构化的提示词可能不太适用
- Critic 和 Actor 都依赖 LLM 的能力,如果 LLM 本身无法正确诊断问题,优化方向可能错误
- 未来可以探索将 SCULPT 与 in-context learning 优化结合,同时优化提示词结构和示例选择
- 可以引入多目标优化(如性能 + 简洁性 + 成本),避免提示词过度膨胀
相关工作与启发¶
- vs APE (Automatic Prompt Engineer):APE 通过搜索和评估来优化短提示词,但对长提示词无能为力。SCULPT 通过树结构解决了长提示词的可管理性问题。
- vs OPRO:OPRO 让 LLM 自己优化提示词,但是全局性修改,没有结构化保证。SCULPT 的 Critic-Actor 框架更精细。
- vs DSPy:DSPy 聚焦于提示词的程序化抽象和编译优化,而 SCULPT 更关注自然语言提示词的结构化修正。两者的思路可以结合。
评分¶
- 新颖性: ⭐⭐⭐⭐ 树结构建模和 Critic-Actor 框架的组合在提示词优化领域是新的,但各个组件单独并不新颖
- 实验充分度: ⭐⭐⭐⭐ 覆盖多种任务类型,有鲁棒性实验和消融,但缺少对不同 LLM 的广泛对比
- 写作质量: ⭐⭐⭐⭐ 动机清晰,框架描述系统化,图表质量好
- 价值: ⭐⭐⭐⭐ 填补了长提示词优化的空白,对实际提示工程有参考价值
相关论文¶
- [ACL 2025] P3: Prompts Promote Prompting
- [ACL 2025] Systematic Generalization in Language Models Scales with Information Entropy
- [ACL 2025] A Systematic Study of Compositional Syntactic Transformer Language Models
- [ACL 2025] TestCase-Eval: A Systematic Evaluation of Fault Coverage and Exposure
- [ACL 2025] LLM×MapReduce: Simplified Long-Sequence Processing using Large Language Models