对比反思用于迭代提示优化

arXiv cs.AI 论文

摘要

提出了一种对比反思(Contrastive Reflection)迭代提示优化框架,用于智能体信息检索工作流。该框架利用结构化轨迹识别错误锚定的行为切片,并通过教师LLM进行对比修复,在HotpotQA上实现了显著改进。

arXiv:2606.30840v1 公告类型:新 摘要:LLM智能体正成为信息检索的核心:它们发出检索查询、综合答案,并日益作为IR评估的裁判。改进控制这些智能体的提示是一个优化问题,但在应用IR环境中,它通常看起来更像调试而非盲目搜索。工程师需要知道哪个行为失败了,哪个附近的行为仍然有效,两者有什么区别,以及提示编辑是否能在不引入回归的情况下提高保留质量。 我们提出了对比反思(Contrastive Reflection),一种用于智能体信息检索工作流的迭代提示优化框架。该框架从以任务为中心的质量定义开始:问答智能体暴露检索或推理轨迹,评分智能体暴露维度级别评分和理由。这些结构化轨迹用于识别错误锚定的行为切片,添加来自同一区域的附近成功示例,并要求教师LLM提出有针对性的提示编辑。只有当验证性能提高时,候选编辑才被接受,并可选择进行回归检查。我们使用基于树的切片选择器实例化了该框架,但贡献在于对比反思循环,而非树本身。 在公开的HotpotQA检索增强问答设置中,一次树选择的对比修复将保留的精确匹配准确率从51.4%提高到60.4%。仅失败和随机证据变体改进较少,并且破坏了更多先前正确的示例。一次轻量级仅指令比较将该方法置于现代提示优化器附近:MIPROv2达到59.4%,GEPA达到57.0%。结果是为IR智能体提供了一种可解释的优化循环,旨在使提示修复更具可检查性和验证驱动性。
查看原文
查看缓存全文

缓存时间: 2026/07/01 05:36

# 对比反思:迭代式提示优化方法

来源: https://arxiv.org/html/2606.30840

\(2026\)

###### 摘要

LLM智能体正日益成为信息检索的核心:它们生成检索查询、根据证据综合答案、个性化结果,并且越来越多地充当IR评估的评判者。因此,优化控制这些智能体的提示成为一个优化问题,但在应用IR场景中,这通常看起来更像是调试而非盲目搜索。工程师需要知道哪个行为失败了,哪个相近的行为仍然有效,两者之间的区别是什么,以及提示修改是否在保持出品质量的同时没有引入回归。

我们提出对比反思(Contrastive Reflection),一种专为智能体IR工作流设计的迭代式提示优化框架。该框架从以任务为中心的质量定义出发:QA智能体可以暴露检索或推理轨迹,而评分智能体可以暴露维度级分数和解释。这些结构化轨迹用于识别以错误锚定的行为切片,添加来自同一区域的相近成功案例,并要求一个教师LLM提出有针对性的提示修改。候选修改仅在验证性能提升时被接受,并可选择进行回归检查。我们使用基于树的切片选择器实例化该框架,但主要贡献在于对比反思循环本身而非树形结构。

在公开的HotpotQA检索增强QA设置上,一次树选择对比修复将保准精确匹配准确率从51.4%提升至60.4%。仅失败和随机证据变体也有所改进,但保准增益较小,且破坏了更多先前正确的示例。同一设置上的轻量指令对比将该方法置于接近现代提示优化器的位置:MIPROv2达到59.4%测试准确率,GEPA达到57.0%。源自LinkedIn的评分工作流激发了任务中心设计,但论文的主要实证证据是公开的HotpotQA研究。结果是为IR中的AI智能体提供了一个可解释的优化循环,旨在使提示修复更可检查、更以验证为驱动。

AI智能体,信息检索,提示优化,检索增强生成,LLM反思,行为切片

††会议:KDD 2026 信息检索AI智能体研讨会;2026年8月;††期刊年份:2026††版权:无††CCS:计算方法论 自然语言处理††CCS:信息系统 信息检索

## 1. 引言

LLM智能体越来越多地用于信息检索(IR)管道:它们为多跳检索生成子查询,根据证据综合答案,并取代人类标注员担任相关性评判者(Thomas等人,2024;Farzi和Dietz,2025)。我们的动机场景是源自LinkedIn的评分工作流,其中LLM评判者必须根据多个任务特定维度、解释和回归敏感约束来评分结果是否适合某个成员或查询。该场景塑造了方法:最终评分告诉团队评判者是否与参考匹配,但维度分数和解释解释了它是*如何*出错的。

在此类评估工作流中,提示改进很少是一次性搜索问题。一个提示可能整体表现良好,但在某一小类示例上反复出错:多跳QA中的实体消歧、评分中的一个评级维度、或针对某部分输入的格式行为。工程师通常通过提出五个问题来调试此类系统:哪些案例出错了,哪些相似案例仍然有效,两者之间的区别是什么,什么指令能解决这种对比,以及更改是否有助于改善且不破坏其他行为?

当代提示优化器,包括基于反思和DSPy的方法如GEPA和MIPROv2(Agrawal等人,2025;Opsahl-Ong等人,2024;Khattab等人,2024),能够显著改善提示。然而,许多优化器主要通过标量验证指标、随机批次或指令-演示组合搜索来运行。这些方法可以找到更好的提示,而无需暴露关于*哪些*行为发生了变化的简洁解释。当反思仅在随机示例或错误上进行时,提示修改可能由恰好出现在批次中的案例驱动,而不一定是失效行为与工作行为之间的系统性对比。

本文将提示优化重新定义为*对比反思*。核心思想很简单:在要求LLM改进提示之前,首先识别一个包含错误和附近成功的连贯切片,然后描述定义该切片的属性。反思变成了一个有针对性的比较-修复步骤,而非泛泛要求更好的指令。本文中的公开实验在单预测器HotpotQA程序上测试了这一想法;源自LinkedIn的评分设置解释了以任务为中心的设计,但不作为公开基准处理。

我们做出三项贡献。第一,我们形式化了提示优化中以任务为中心的质量:任务特定的结构化输出定义了用于切片发现、回归追踪和针对性编辑的属性。第二,我们定义了一个迭代对比反思循环:评估、寻找对比切片、反思、编辑、验证、重复。第三,我们通过公开的HotpotQA(Yang等人,2018)研究评估了这一想法,并描述了同一循环如何在源自LinkedIn的评分工作流中得到改进。

## 2. 相关工作

**提示优化。** 早期的提示调优工作优化了连续软提示(Lester等人,2021),而最近的离散方法将语言模型本身视为优化器。OPRO和APE使用LLM生成和改进指令(Yang等人,2024;Zhou等人,2023);PromptAgent将提示改进视为规划(Wang等人,2024);APO应用类似梯度的文本反馈(Pryzant等人,2023)。DSPy为多阶段LM程序提供了编程模型和优化器(Khattab等人,2024);MIPROv2搜索指令和演示(Opsahl-Ong等人,2024)。这些方法是强大的搜索基线,但它们并未主要关注为促成修改的错误和成功之间生成可解释的对比。

**反思与进化提示搜索。** GEPA在采样轨迹上使用LLM反思,并维护候选提示的帕累托前沿(Agrawal等人,2025);Promptbreeder和EvoPrompt探索了相关的进化提示改进策略(Fernando等人,2023;Guo等人,2024)。StraGo(Wu等人,2024)最相关:它表明当优化器同时反思成功和失败而非仅失败时,提示优化会改进。对比反思共享这一直觉,但在对比来源上有所不同。StraGo从全局池中采样成功和失败,并要求LLM跨它们综合出战略指导;对比反思则要求成功来自与失败*相同的以错误锚定的行为切片*,以便对比锁定编辑必须针对的单一、可解释的边界。树是构建这种切片的一种方式;未来工作可以将对比证据选择与贝叶斯或进化搜索相结合。

**结构化评估与切片发现。** 在IR中,LLM越来越多地被用作自动相关性评判者(Thomas等人,2024),而基于标准的评判将相关性分解为显性维度(Farzi和Dietz,2025)。CheckList主张在聚合准确率之外使用行为切片(Ribeiro等人,2020)。另一条工作线专注于*自动发现*此类切片:SliceFinder使用决策树和聚类搜索来寻找可解释、错误密集的子组以进行模型验证(Chung等人,2019);Domino通过跨模态嵌入聚类发现系统性错误(Eyuboglu等人,2022)。我们的切片选择器重用了SliceFinder风格的树原语,但本文的贡献并非切片发现本身;而是将发现的切片及其邻近成功案例接入一个以验证为门控的反思循环以进行提示优化。树是使对比证据对教师LLM可解释的最简单选择器。

## 3. 对比反思

对比反思将提示优化分解为两个常被混淆的问题。第一个是*优化器应该看哪里?*第二个是*应该做什么修改?*通用LLM可以帮助回答第二个问题,但它需要第一个问题的有用描述。以任务为中心的质量定义创建了该描述:优化器不再只观察最终分数,而是看到任务特定的维度、步骤和解释,这些可以解释为什么相近的示例发生分歧。因此,该框架作为一个迭代循环进行:

1. (1) 在训练和验证示例上评估当前提示。
2. (2) 识别具有可解释共享属性的错误密集区域。
3. (3) 从同一区域添加邻近的成功示例,形成对比切片。
4. (4) 将切片、其定义属性、错误/成功对比以及当前提示部分呈现给教师LLM。
5. (5) 要求教师提出有针对性的提示修改。
6. (6) 仅当修改改善了验证性能时接受该修改,并可选择进行回归检查。

在此框架中,失败决定优化器应该看哪里,但成功决定编辑必须保留什么。这是对比反思与仅失败反思的主要区别:修复不仅仅是修复错误案例的指令,而是试图推断同一任务区域内坏行为与好行为之间的边界。

第2步中的切片选择器是故意抽象的。决策树是一种选择,但也可以使用其他算法:聚类、嵌入最近邻搜索、规则挖掘、人工编写的切片或学习到的错误分类器。假设并不是树是唯一最优的。假设是当教师收到连贯的对比描述而非任意一批示例时,反思会得到改善。

### 3.1. 问题定义

令 \(\pi_\phi\) 表示一个具有提示 \(\phi\) 的LLM程序,指标 \(m\),训练集 \(D_{tr}\),验证集 \(D_{val}\),以及基线提示 \(\phi_0\)。标准提示优化寻求最大化验证性能的提示:

\((1) \max_\phi \; \mathbb{E}_{(x,y) \sim D_{val}} \left[ m(\pi_\phi(x), y) \right].\)

我们用 \(M_{val}(\phi)\) 表示这个验证目标。对比反思添加了一个中间对象:一个切片选择器 \(g\),它将当前训练示例和结构化轨迹映射到一组连贯的、以错误锚定的对比切片,

\((2) \mathcal{C}_t = g\left(D_{tr}, \{\pi_{\phi_t}(x): (x,y) \in D_{tr}\}\right).\)

第二个参数表示当前程序输出以及任务暴露的任何结构化轨迹。每个切片 \(C \in \mathcal{C}_t\) 都配有一个解释或属性描述 \(a(C)\),例如规则路径、聚类摘要或人工编写的切片。然后,一个反思运算符 \(r\) 根据当前提示和选定的对比证据提出修改:

\((3) \Delta\phi_t = r(\phi_t, C, a(C), E_C),\)

其中 \(E_C\) 包含来自同一切片的错误和邻近的成功。该编辑是一个提示级别的修复:它不改变训练示例,而是改变指令,使得学生模型应处理未来匹配相同对比模式的示例。我们写作 \(\phi_c = \phi_t \oplus \Delta\phi_t\) 表示将编辑应用于提示的文本操作。

接受规则使框架与保准行为保持一致:

\((4) \phi_{t+1} = \begin{cases} \phi_c, & \text{if } A_t(\phi_c), \\ \phi_t, & \text{otherwise,} \end{cases}\)

其中 \(A_t(\phi_c)\) 在 \(M_{val}(\phi_c) > M_{val}(\phi_t)\) 且每个启用的回归检查满足 \(R_k(\phi_c, \phi_0) \leq \delta_k\) 时为真。这里 \(M_{val}\) 是公式(1)中的验证指标。回归约束 \(R_k\) 是可选的,并测量相对于参考提示 \(\phi_0\) 的受保护行为;当禁用时,接受简化为验证改进。因此,主要的设计自由度在于选择器 \(g\):本文研究基于树的选择器,但该形式化允许其他找到有用对比切片的方式。

**算法1 对比反思**

1: 提示 \(\phi_0\),训练集 \(D_{tr}\),验证集 \(D_{val}\),指标 \(m\),选择器 \(g\),反射器 \(r\),可选约束 \((R_k, \delta_k)\)

2: \(\phi_{best} \leftarrow \phi_0\); \(s_{best} \leftarrow M_{val}(\phi_0)\)

3: **for** \(t = 1\) **to** \(T\) **do**

4: 评估 \(\pi_{\phi_{best}}\) 在 \(D_{tr}\) 上并缓存轨迹

5: \(\mathcal{C} \leftarrow g(D_{tr}, \text{traces})\)

6: 按错误密度、支持度和可解释性对切片排序

7: **for all** 对比切片 \(C \in \mathcal{C}\) **do**

8: 从错误和邻近的成功构建证据 \(E_C\)

9: \(\Delta\phi \leftarrow r(\phi_{best}, C, a(C), E_C)\)

10: \(\phi_c \leftarrow \phi_{best} \oplus \Delta\phi\)

11: \(s_c \leftarrow M_{val}(\phi_c)\)

12: **if** \(s_c > s_{best}\) 且所有启用的约束均满足 **then**

13: \(\phi_{best} \leftarrow \phi_c\); \(s_{best} \leftarrow s_c\)

14: **break**

15: **else**

16: 记录被拒绝的编辑供后续反思

17: **end if**

18: **end for**

19: **end for**

20: **return** \(\phi_{best}\)

### 3.2. 以任务为中心的对比质量

对比反思并不要求每个任务立即简化为单一标量信号。这也是该方法可能比随机示例反思更有效的一个原因:优化器接收到关于输出*如何*出错的、任务原生的证据,而不仅仅是输出是否出错。对于QA任务,程序可以暴露中间推理步骤、检索查询、证据摘要和最终答案;对于评分任务,它可以暴露维度级分数、权重和解释。这些结构化输出定义了用于构建切片、追踪回归和指导编辑的属性。

相似文章

CORE:对比反思实现推理能力的快速提升

Hugging Face Daily Papers

对比反思(CORE)是一种非参数算法,通过比较成功与不成功的推理轨迹,生成简洁、可解释的洞见,从而以比现有方法更少的样本和 rollout 次数,实现语言模型更快、更高效的自我改进。