ICML 2026:PRM-PBE 框架如何提升大语言模型的程序合成能力

尽管大语言模型在代码生成与程序推理任务中表现持续突破,但在编程示例学习(Programming-by-Example,简称PBE)这一经典场景中,仍存在明显短板。PBE任务要求模型仅根据若干输入输出样例,反向推断出底层的程序逻辑——看似简单,实则非常棘手。当前主流方法往往依赖输入到输出的直接映射,或借助思维链推理、执行反馈、监督微调等手段增强推理能力。然而,这类方法对推理过程的监督颗粒度不够精细,模型容易学到只满足部分样例的“捷径”程序,或在复杂逻辑归纳时偏离正确方向。
最近,来自北京大学、京东、华东师范大学以及相关实验室的研究团队联合出击,针对PBE场景中过程监督不足的问题,提出了一套名为PRM-PBE的过程奖励强化学习框架。该框架的核心思路是:通过反馈引导的方式构建推理树,生成高质量的过程监督数据,再训练一个过程奖励模型(Process Reward Model,PRM)来评估每一步推理的质量,最后按照失败模式分阶段进行课程学习和近端策略优化(PPO)。相关论文已发表,标题为PRM-PBE : Process Reward Model for Reinforcement Learning in Programming-by-Example,作者包括房越、金芝、安杰、陈宏申、张锴等。
现有PBE方法缺乏对推理过程的精细监督
编程示例学习(Programming-by-Example)的核心目标,是从少量输入输出样例中准确推断用户期望的程序逻辑。传统PBE系统通常依赖预定义的领域特定语言(DSL),通过符号搜索、递归分解或神经网络引导来完成程序合成。随着大语言模型的崛起,PBE不再局限于特定DSL,模型可以直接基于自然语言提示、输入输出样例和推理链,生成通用的代码。
但是,论文指出,当前基于大语言模型的PBE方法存在一个核心缺陷:模型主要学习输入与输出之间的表层映射,而中间归纳过程却缺乏有效监督。对于复杂的PBE任务,单纯依靠端到端生成很容易出现两类典型错误:第一类是模型推断出的逻辑完全跑偏,例如把“多个列表中相同位置元素相等的索引”误判为简单的集合交集;第二类是模型生成只覆盖部分样例的程序,比如要求实现降序排序,模型却只做了反转操作,结果在部分输入输出上看似正确,实际却与真实规则相差甚远。
这些失败案例表明,PBE的难点不仅在于最终代码能否通过测试,更在于模型能否在推理过程中一步步逼近样例背后的潜在意图。如果缺少对推理步骤的明确监督,模型很容易沿着错误的归纳方向一路偏离,最终产出一个看似合理但逻辑不完整的程序。
用反馈引导的推理树构建过程监督数据
针对中间推理过程难以监督的问题,论文提出了一套反馈引导的推理树构建方法。推理树中的每个节点都对应一个自然语言形式的中间推理步骤,模型从输入输出样例出发,逐步采样后续推理节点,直至形成完整的推理链。由于这些中间节点本身不能直接执行程序,系统会在路径完成后,将其转化为完整的程序,并通过执行测试来判断是否满足所有样例。
在此基础上,论文使用后续路径的成功比例来给节点打分。如果一个节点的大部分后续路径都能导向正确程序,则说明该推理状态相对可靠。反之,如果某个推理前缀的所有后续路径都失败,系统会将其标记为潜在的逻辑偏离点,然后引入外部自然语言指令进行定向修复,从而生成更多高质量的正样本。这一策略有效缓解了PBE过程监督数据中正样本稀疏的难题。
用后继成功率训练过程奖励模型
完成推理树构建后,论文进一步训练了一个过程奖励模型(Process Reward Model),用于评估中间推理步骤的质量。PRM并不直接判断最终程序是否正确,而是为每一个推理状态分配一个奖励分数,用以估算“从这个状态继续生成,有多大可能得到正确的程序”。
具体来说,论文将节点的后继成功率作为训练信号。如果节点A的后续采样路径更容易生成正确程序,而节点B的后续路径更容易失败,那么训练目标就要求PRM给节点A打出更高的分数。相比简单的正负样本分类,这种偏好学习能够更细致地区分不同推理状态的可靠程度,帮助模型学会识别更可能通向正确程序的归纳方向。
三阶段课程学习将过程奖励注入强化学习
获得PRM之后,论文将其接入强化学习框架,用过程级奖励来优化程序合成模型。为了提升训练稳定性,团队设计了一套按照失败模式组织的三阶段课程学习策略,让模型从基础可执行性逐步过渡到复杂的逻辑正确性。
第一阶段专注处理语法错误和运行时错误,训练模型生成能正常执行的程序。第二阶段则处理那些可执行但行为完全不对的程序,引导模型学习输入输出样例中的核心约束。第三阶段专门应对只能通过部分样例的程序,帮助模型减少对有限样例的过拟合。在每个阶段中,PRM都会为中间推理状态提供奖励,然后通过PPO更新策略模型。这样一来,模型就能逐步学会更可靠的程序归纳路径。
多基准实验验证PRM-PBE的有效性
论文在PROSE、SyGuS、Playgol、Lists和MBPP五个代表性PBE基准上进行了实验,覆盖字符串处理、列表操作、归纳逻辑程序设计以及基于MBPP改造的输入输出样例合成任务。实验中还对比了多种闭源与开源的大语言模型,包括GPT-4o、Claude-3.5-Sonnet、Gemini-1.5-Flash、Qwen2.5-Coder、DeepSeek-Coder-V2、Llama-3和Qwen3。
主实验结果显示,PRM-PBE在所有基准上均显著优于现有基线方法。以DeepSeek-Coder-V2为基础模型时,SFT的平均Pass@1仅为42.76%,而PRM-PBE直接提升到56.61%,整整提高了13.85个百分点。即使与最强的非PRM基线——Claude-3.5-Sonnet的WPS方法相比,PRM-PBE仍然高出8.73个百分点。这一结果说明,对于复杂的PBE任务,仅靠提示工程、搜索反馈或监督微调还不够,显式的过程奖励才能更有效地提升程序合成的准确率。

为PBE程序合成提供过程监督的新范式
这项工作的价值在于,它把PBE中最难监督的环节——从样例归纳程序意图——显式地建模出来,并用过程奖励为强化学习提供了比最终执行结果更细粒度的训练信号。相较于仅判断程序是否通过测试,PRM-PBE能够进一步识别推理路径中的偏离点,减少那些只满足部分样例的捷径程序,让模型更可靠地捕捉输入输出样例背后的全局逻辑。
更进一步,这一框架也为后续大语言模型程序合成研究开辟了一条新思路:面对许多难以直接标注中间过程的任务,可以通过“采样后续路径、验证最终结果、反推中间状态价值”的方式来构建过程监督信号。随着更强的代码模型和自动化验证工具不断演进,类似的过程奖励机制有望扩展到更复杂的程序归纳、算法生成以及真实软件工程任务中去。
