SEE: Strategic Exploration and Exploitation for Cohesive In-Context Prompt Optimization¶
会议: ACL 2025
arXiv: 2402.11347
代码: —
领域: LLM/NLP
关键词: prompt optimization、元启发式优化、探索与利用、指令+示例联合优化、自适应算子
一句话总结¶
SEE 是首个将指令(instruction)和示例(examples)作为整体进行联合优化的 prompt 优化框架,采用元启发式优化原则设计四阶段探索-利用策略,配合五种 LLM 算子的自适应选择,在 35 个基准任务上大幅超越 9 种 SOTA 方法。
研究背景与动机¶
- Prompt 设计的困难:手动设计 LLM prompt 需要大量人工和专家知识,自动优化是关键方向。但 prompt 优化本质是离散高维空间中的组合优化问题,极具挑战性。
- 现有方法的割裂:已有工作将指令优化和示例选择作为两个独立任务处理——APE、APO、OPRO 等聚焦零样本指令优化,另一些工作聚焦少样本示例选择。这忽略了指令和示例的协同性(cohesiveness),导致次优性能。
- 传统元启发式算法的低效性:直接套用遗传算法等方法会导致不必要的随机性、计算浪费和收敛缓慢,因为它们重复统一地应用变异和交叉操作而不适应优化过程的具体需求。
- 本文目标:设计一个能同时优化指令和示例的框架,生成从简单零样本到复杂 CoT few-shot 的灵活 prompt,同时保证计算效率。
方法详解¶
整体框架¶
SEE 按元启发式优化框架设计,包含四个阶段:Phase 0 全局初始化→Phase 1 局部反馈操作(利用)→Phase 2 全局融合操作(探索)→Phase 3 局部语义操作(利用)。每个阶段使用最适合的 LLM 算子,并配合自适应停止准则。
关键设计¶
-
五种 LLM 算子的系统分析:
- 全局算子:Lamarckian(从输入-输出对逆向推理指令)、EDA(从一组候选中学习分布生成新候选)、Crossover(从两个父代混合特征)
- 局部算子:Feedback(通过 Examiner+Improver 双智能体基于错误案例改进)、Semantic(保持语义不变做词汇修改)
- 作者在 100 次实验中系统评估了各算子的改进概率、收敛速度、API 成本等 5 个维度
-
四阶段探索-利用策略:
- Phase 0:用 Lamarckian/Semantic 算子创建多样化初始候选池
- Phase 1:用 Feedback 算子快速将每个候选推向局部最优(高收敛速度)
- Phase 2:用 EDA/Crossover 算子融合不同候选的特征,逃出局部最优
- Phase 3:用 Semantic 算子做精细化的"最后一公里"收敛
-
性能向量 + 汉明距离:不使用余弦相似度,而是将每个候选在开发集上的对错记录构建为二元向量(如 [1,1,1,0,0]),用汉明距离选择差异最大的父代进行融合,确保多样性。
损失函数¶
评估函数 \(\mathcal{F}\) 为在开发集 \(\mathcal{D}_{dev}\) 上的准确率。优化目标为 \(\mathcal{P}^* = \arg\max_{\mathcal{P} \in \mathcal{X}} \mathbb{E}_{(\mathcal{Q}, \mathcal{A})}[\mathcal{F}(\mathcal{P}; \mathcal{Q}, \mathcal{A}) | \mathcal{L}]\)。
实验¶
主实验:BBH 8 个任务¶
| 方法 | Causal | Formal Fallacies | Disambiguation | Hyperbaton | Logical Five | Color Reasoning | Salient | Translation | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| OPRO | 71.94 | 71.53 | 36.73 | 49.51 | 75.92 | 50.00 | 65.55 | 43.88 | 58.13 |
| EvoPrompt | 67.24 | 53.70 | 47.96 | 50.81 | 74.79 | 61.40 | 60.90 | 47.58 | 58.05 |
| AELP | 77.77 | 64.79 | 10.67 | 58.25 | 53.74 | 73.49 | 68.14 | 41.43 | 56.04 |
| SEE-io | 72.13 | 72.37 | 8.06 | 58.87 | 86.02 | 48.19 | 60.52 | 49.19 | 56.92 |
| SEE-example | 89.09 | 68.47 | 46.77 | 58.65 | 87.50 | 86.29 | 80.64 | 47.59 | 70.63 |
SEE-example 平均提升较 AELP +15.31、较 OPRO +13.21。
泛化性验证:跨模型¶
| 模型 | Disambiguation | Formal Fallacies | Hyperbaton | Salient Translation |
|---|---|---|---|---|
| GPT-4 | 79.34 | 75.91 | 90.58 | 70.45 |
| GPT-3.5 | 69.99 | 58.49 | 84.35 | 48.39 |
| Claude 2 | 72.95 | 49.46 | 83.32 | 61.82 |
| Llama3-8B | 62.63 | 71.50 | 57.52 | 37.09 |
| Llama2-7B | 42.74 | 56.72 | 53.23 | 21.23 |
GPT-4 一致最优,开源模型中 Mistral-7B 和 Llama3-8B 表现相当。
关键发现¶
- 联合优化显著优于分离优化:SEE 可生成 zero-shot 到复杂 few-shot+CoT 的灵活 prompt,根据任务自适应选择最优形式
- 算子选择的战略性至关重要:迭代历史显示 Feedback 算子在单次迭代中快速提升,而 EDA/Crossover 帮助逃出局部最优实现跨越式提升
- 在 24 个 instruction induction 任务中,SEE 在 87.5% 的任务上超过 APE 和 MoP,100% 任务超过 EvoPrompt 和 OPRO
- 计算效率:在 BBH 任务上较 SOTA 方法平均减少 58.67% 的 API 调用成本
- 性能向量+汉明距离优于传统的嵌入余弦相似度,能更有效促进候选多样性
论文亮点¶
- 首次实现指令+示例的联合优化,打破了 prompt 优化中零样本和少样本的人为割裂
- 四阶段设计将元启发式优化原则与 LLM 算子特性深度结合,战略性安排探索与利用
- 对 5 种算子的系统量化分析(改进概率、收敛速度、成本)为自适应选择提供了依据
- 35 个任务、9 种基线、6 种模型的全面评估规模令人信服
局限性¶
- 框架依赖开发集来评估候选性能,开发集质量和大小直接影响优化效果
- Phase 间的切换依赖预设的停止准则(改进增益阈值和容忍度),这些超参数的调优增加了方法的复杂性
- 主要使用 GPT-3.5-turbo 作为算子执行器,对其他 LLM 的适用性还需更多验证
- 对于极简任务(如情感分类),联合优化的收益可能不值得额外的计算开销
- 性能向量构建需要在开发集上评估所有候选,候选池较大时成本不低
相关工作¶
- 指令优化:APE (Zhou et al., 2023)、APO (Pryzant et al., 2023)、OPRO (Yang et al., 2023a) 仅优化零样本指令
- 示例选择:Liu et al. (2021)、Lu et al. (2022) 等在固定指令下选择最佳 few-shot 示例
- 进化式优化:PromptBreeder (Fernando et al., 2023)、EvoPrompt (Guo et al., 2023) 用遗传算法做 prompt 进化但未联合优化
- 联合优化尝试:AELP (Hsieh et al., 2023)、MoP (Wang et al., 2024) 做了初步尝试但效果和效率仍有限
评分¶
| 维度 | 分数 |
|---|---|
| 新颖性 | ⭐⭐⭐⭐ |
| 技术深度 | ⭐⭐⭐⭐ |
| 实验充分性 | ⭐⭐⭐⭐⭐ |
| 写作质量 | ⭐⭐⭐⭐ |
| 总体推荐 | ⭐⭐⭐⭐ |