← 返回 2026-05-29

基于语言模型函数调用的反思性提示调优 Reflective Prompt Tuning through Language Model Function-Calling

Farima Fatahi Bayat, Moin Aminnaseri, Pouya Pezeshkpour, Estevam Hruschka 📅 2026-05-20 👍 9 2026-07-13 08:36
函数调用 提示优化 置信度校准 诊断驱动

利用LLM函数调用模拟人工提示工程,通过诊断驱动优化提示

前置知识

提示工程

提示工程是通过精心设计自然语言提示来引导大语言模型生成期望输出的技术。提示通常包括任务描述、示例、指令和约束条件。它是一种无需修改模型参数即可快速适应下游任务的方法,但效果高度依赖于格式、措辞和指令顺序,通常需要大量试错。

本文的核心问题是自动优化提示,因此需要理解提示工程的基本原理、挑战和现有手动方法的局限性,才能理解为什么需要自动化的诊断驱动方法。

LLM函数调用

LLM函数调用是指大语言模型能够根据自然语言输入,生成结构化的函数调用请求的能力。模型会输出函数名称和参数,系统执行这些函数后将结果返回给模型,模型再基于这些结果进行推理和决策。这使得LLM可以与外部工具交互,处理结构化数据,并进行多步推理。

本文的核心创新就是利用LLM的函数调用能力来模拟人类提示工程师的工作流程,理解这一机制对于理解RPT如何实现诊断-修订的迭代循环至关重要。

置信度校准

置信度校准是指让模型输出的置信度与其实际正确概率保持一致的能力。如果模型对错误答案给出高置信度,或对正确答案给出低置信度,就说明校准不佳。常用评估指标包括Brier分数(越低越好)和Expected Calibration Error。校准对于高风险应用中的可靠决策至关重要。

本文的一个重要贡献是将置信度校准纳入优化目标,与任务性能同时优化。理解校准的概念和评估指标有助于理解置信度感知优化的价值。

研究动机

现有大语言模型的提示设计仍然需要大量人工试错和专业知识,即使有自动化的提示优化方法,也存在显著局限性。具体来说,ACE等系统使用固定的提示模板和可复用策略的辅助playbook,限制了优化器进行任意提示级别修订的能力。大多数方法在每次迭代中的更新由单个示例(如Zhang等人2026年的方法)或小批量子集(如Opsahl-Ong等人2024a和Agrawal等人2025年的方法)驱动,这使得优化对局部而非反复出现的失败模式敏感。此外,大多数方法缺乏对先前诊断报告和提示修订的显式记忆,限制了跨迭代的信用分配。最后,提示选择通常仅由任务性能驱动,忽略了可靠性等更广泛的属性。即使像GEPA这样的方法纳入了辅助评估信号,其提示选择仍然主要由任务性能驱动。

本文的目标是本文提出Reflective Prompt Tuning (RPT),一个利用LLM函数调用能力模拟人类提示工程师迭代工作流程的框架。RPT的目标是通过诊断驱动的优化,自动识别提示的系统性失败模式,并生成针对性的修订,从而在减少人工提示工程努力的同时,提高任务性能和置信度校准。具体目标包括:在三个推理任务(HotPotQA多跳推理、LiveBench-Math数学推理、Formula领域特定数值推理)上提升初始提示性能,改进置信度校准,以及提供可解释的优化轨迹。

与已有工作不同的是,本文的独特切入点在于将LLM的函数调用能力作为提示优化的核心机制。与现有方法使用固定的上下文更新流水线不同,RPT通过一个显式的诊断函数来评估目标模型、识别反复出现的失败模式并返回结构化报告。优化器不仅基于当前报告,还基于累积的先前报告记忆来修订提示,这使得优化器能够推理持久的失败和先前的改进尝试,而不是将每次更新视为独立的提案。此外,RPT将置信度校准作为一等优化信号,同时纳入诊断反馈和最终提示选择标准,而现有方法如ACE和MIPRO在不进行实质性修改的情况下不会直接向优化器暴露校准诊断,GEPA虽然可以使用置信度作为辅助反馈,但其提示选择仍然主要由任务性能驱动。

核心方法

RPT将提示优化问题形式化为一个两阶段的文本更新过程。在第一阶段,给定当前提示pt,诊断函数在训练集Dtrain上评估目标模型fθ,收集每个示例的推理轨迹ri、最终答案yhat_i和报告置信度ci。它识别失败的示例,并使用批评LLM生成每个失败示例的简洁响应级诊断。然后将这些诊断通过ClusterFusion聚类成反复出现的失败主题,最终生成结构化诊断报告Rt,其中包含当前提示、聚合指标和聚类失败主题的子集。在第二阶段,优化器基于当前提示、当前诊断报告和先前报告记忆M<t,推断可能的提示缺陷并生成下一个提示。这个过程迭代进行,直到达到迭代预算T,然后在开发集Ddev上使用选择函数Phi选择最终提示。

RPT的核心创新在于利用LLM的函数调用能力来构建一个显式的诊断-修订循环,这与现有方法的本质区别在于:首先,诊断函数在整个优化集上评估目标模型,而不是单个示例或小批量,这能够识别反复出现的系统性失败模式而非局部失败;其次,通过ClusterFusion将响应级诊断聚类为数据集级别的失败主题,将局部反馈压缩为系统性目标模型失败的紧凑摘要,帮助优化器推断提示级别的缺陷并提出针对性修订;第三,维护先前报告的外部记忆,使优化器能够推理优化轨迹而非仅当前报告,解决跨迭代的信用分配挑战;最后,支持置信度感知优化,将校准信号同时纳入诊断反馈和开发集选择标准,通过奖励更高的任务分数同时惩罚错误校准(例如通过负Brier分数项)来实现任务性能和校准的联合优化。

方法步骤详情

RPT的完整迭代过程包含以下步骤。步骤1:行为收集和评分。诊断函数首先用提示pt在训练集Dtrain的每个示例上运行目标模型fθ,记录推理轨迹ri、最终答案yhat_i和报告置信度ci,然后计算任务特定的性能指标以及平均置信度和Brier分数用于校准评估。步骤2:失败检测和批评。使用任务特定的评估器识别失败的示例集合。对于每个失败示例,批评LLM生成最多三个简洁的响应级诊断,描述目标模型输出相对于期望答案yi和评估标准如何失败,包括评估报告的置信度ci是否适当。步骤3:识别反复出现的失败模式。对诊断集合应用ClusterFusion,将语义相似的诊断分组为K个反复出现的失败主题,其中每个主题包含简短标签、描述和代表性示例。步骤4:诊断报告生成。诊断函数返回结构化报告,包含当前提示、聚合指标和保留的突出反复出现模式的子集。步骤5:反思性提示修订。优化器基于当前提示、当前诊断报告和先前报告记忆生成下一个提示。步骤6:记忆更新。将当前报告追加到记忆中。这个过程从种子提示p0开始,迭代T次后,在开发集Ddev上选择最终提示。

技术新颖性

RPT的技术新颖性体现在多个方面。首先,在方法论层面,RPT是首个将LLM函数调用显式用于提示优化的框架,通过诊断函数将目标模型行为连接到优化器LLM,这使得优化过程更加结构化和可解释。其次,在失败模式识别方面,RPT引入了将响应级批评聚类为数据集级别失败主题的机制,通过ClusterFusion压缩局部反馈,这比现有方法基于单个示例或小批量的更新更能捕获系统性错误模式。第三,在记忆机制方面,RPT维护先前报告的外部记忆,使优化器能够推理优化轨迹,这对于解决提示优化中的信用分配挑战是新颖的,而现有方法如Reflexion存储的是过去试验的口头反思,Agent-Pro通过交互体验进化代理策略,Dynamic Cheatsheet和ACE构建外部策略playbook,但这些方法都不像RPT那样在提示优化级别使用记忆来跟踪持久的失败和先前的修订尝试。第四,在优化目标方面,RPT将置信度校准作为一等优化信号,同时纳入诊断反馈和最终提示选择标准,这在自动提示优化中是相对新颖的,现有方法如GEPA可以使用置信度作为辅助反馈,但其提示选择仍然主要由任务性能驱动。

Reflective Prompt Tuning (RPT)概览
Figure 1: Reflective Prompt Tuning (RPT)概览

实验结果

实验结果表明RPT在三个推理任务上始终改进初始提示,并在任务性能和置信度校准方面与最先进的基线竞争。在任务性能方面,使用GPT-5作为优化器时,RPT在HotPotQA上从初始55.5分提高到68.4分(提升+12.9分),在LiveBench-Math上从58.1分提高到70.5分(提升+12.4分),在Formula上从72.3分提高到84.0分(提升+11.7分),平均得分从71.2分提高到74.3分(提升+3.1分)。相比基线方法,RPT在LiveBench-Math上对每个优化器设置都实现了最佳最终性能,特别是在数学推理任务上表现突出。在HotPotQA上,RPT使用GPT-5时获得最佳最终性能,在其他优化器设置下与最强基线接近。在置信度校准方面,使用GPT-5作为优化器时,RPT在HotPotQA上Brier分数从0.438降低到0.241,在LiveBench-Math上从0.347降低到0.174,在Formula上从0.272降低到0.129,所有任务都显著改进了校准。优化轨迹分析显示,RPT产生与诊断失败模式对齐的针对性提示修订,引入验证步骤、答案形式约束、算术检查或单位处理规则的修订往往能提高任务分数同时降低Brier分数。最强的优化器LLM(GPT-5相比GPT-5-mini)产生更好的聚合性能,从68.5分提高到74.3分,在所有三个任务上都有增益。

不同提示优化器在GPT-4.1作为目标模型上的基准测试结果
Table 1: 不同提示优化器在GPT-4.1作为目标模型上的基准测试结果
置信度感知优化结果
Table 2: 置信度感知优化结果
跨数据集的失败到修订对齐
Figure 2: 跨数据集的失败到修订对齐
修订主题和下一次迭代指标变化
Figure 3: 修订主题和下一次迭代指标变化
查看结构化数据
任务指标本文基线提升
HotPotQA 准确率 68.4% ACE: 66.6% +1.8个百分点
LiveBench-Math 任务分数 70.5 MIPRO: 47.6 +22.9点
Formula 准确率 84.0% ACE: 85.5% -1.5个百分点(低于ACE)
HotPotQA Brier分数 0.241 GEPA-C: 0.296 降低0.055
LiveBench-Math Brier分数 0.174 GEPA-C: 0.519 降低0.345
Formula Brier分数 0.129 GEPA-C: 0.246 降低0.117

局限与改进

作者承认了几个局限性。首先,RPT仅在三个推理任务上评估:多跳问答、数学推理和领域特定数值推理,这些任务虽然涵盖不同形式的推理,但没有捕捉到完整的提示优化设置范围,如开放生成、编码、对话或长视界交互任务。其次,实验使用GPT-4.1作为目标模型和前沿专有LLM(GPT-5、GPT-5-mini、Gemini-3.1-Pro、Gemini-3.1-Flash-Lite)作为优化器,RPT在较小的开源模型、较弱的优化器LLM或函数调用不可用的设置下的效果可能不同。第三,RPT比使用单个示例或小批量小批量的提示优化器计算成本更高,每次迭代在优化集上评估目标模型、批评失败示例、聚类诊断以及基于先前报告条件优化器。虽然诊断报告被压缩且记忆在迭代预算下保持可管理,但将RPT扩展到更大的数据集或更长的优化轨迹可能需要更激进的采样、报告压缩或记忆检索。最后,RPT改进提示但不能保证仅通过提示就能解决所有失败,一些持久的错误,特别是更深的数学推理失败或领域特定约定错误,可能需要互补的干预,如更好的工具、外部验证器、检索、微调或目标模型本身的更改。置信度感知设置依赖口头置信度,这只是一个黑盒不确定性代理,虽然RPT在实验中改进了校准,但自报告置信度可能仍然对提示敏感,应该在高风险下游决策使用前仔细验证。

独立分析的弱点

RPT在特定场景下存在一些弱点。首先,在领域特定计算任务(如Formula)上,RPT的表现不如ACE,这表明对于高度专业化的领域,局部实例级更新或预定义的提示结构可能更有效。改进方向可以是混合方法,结合RPT的系统性诊断与ACE的领域特定策略。其次,RPT的计算成本相对较高,每次迭代需要评估整个优化集,这在资源受限的环境中可能不可行。改进方向包括引入采样策略(如主动学习选择最有信息量的示例)、分布式评估或近似诊断(如使用模型蒸馏或缓存)。第三,RPT的诊断依赖于批评LLM的输出质量,如果批评不准确或有偏见,可能导致错误的修订。改进方向包括多批评者集成、人工监督或批评质量校准。第四,RPT的记忆是线性增长的,对于长期优化轨迹可能变得过大。改进方向包括基于检索的记忆(如只检索与当前失败相关的先前报告)或摘要记忆(如将多轮报告压缩为高层策略)。第五,RPT目前使用固定的ClusterFusion聚类参数K,可能不适合所有任务。改进方向包括自适应K选择或基于任务特性的参数调优。

未来方向

作者提出的未来工作方向包括扩展到更广泛的任务范围,如开放生成、编码、对话或长视界交互任务。基于论文成果的可延伸方向包括:首先,探索RPT在开源模型和较弱优化器LLM上的效果,以及函数调用不可用时的替代实现(如结构化输出)。其次,研究RPT与其他提示优化方法的混合,如结合ACE的领域特定playbook或MIPRO的贝叶斯搜索策略。第三,扩展RPT的优化目标,包括公平性、安全性、鲁棒性等更广泛的可靠性属性。第四,研究RPT在模块化LLM程序中的应用,如优化程序组件而不仅仅是提示。第五,开发更高效的记忆机制,如基于检索的记忆或分层记忆结构,以支持更大规模的优化。第六,探索RPT在人机协作中的应用,让人类专家能够监督和引导优化过程。第七,研究RPT在不同配置下的可扩展性,包括更大的数据集、更长的优化轨迹和更多的优化器类型。第八,开发RPT的诊断和修订的可视化工具,帮助用户理解优化过程并干预。最后,将RPT的思想扩展到其他类型的模型优化,如超参数调优、神经网络架构搜索等。

复现评估

作者在论文中声明代码已开源(https://github.com/megagonlabs/RPT),这有利于复现。实验使用的三个任务都是公开数据集:HotPotQA、LiveBench-Math和Formula。目标模型使用GPT-4.1,优化器LLM使用GPT-5、GPT-5-mini、Gemini-3.1-Pro和Gemini-3.1-Flash-Lite,这些都是专有API,需要付费访问,这可能限制了一些研究者的复现能力。论文提供了详细的实现细节,包括提示模板、ClusterFusion参数选择和任务特定的评估指标。然而,一些实现细节可能需要在代码库中进一步验证,如具体的批评提示格式和聚类参数。计算成本是主要挑战,每个优化器设置在每个任务上需要多次迭代,每次迭代评估整个训练集,这需要大量的API调用和计算资源。总体而言,有了开源代码和详细的论文描述,研究者应该能够复现主要结果,但需要足够的API预算和计算资源。