PDE求解器调试不再整段重写:只遮住出错代码段,单次修复从64.85秒降到0.748秒
核心概要
PDE求解器的自动修复改用离散扩散语言模型:不再从左到右重写整份代码,而是只把出错代码段重新遮住、在左右上下文都在的情况下补全。在PDEBench的五个方程族上,同一检查点下局部补全把平均Pass@32从0.4938提到0.5063,单次修复延迟从64.85秒降到0.748秒;初始生成仍慢于同规模自回归模型,端到端最坏情况平均成本为55.5秒。
深度剖析
PDE求解器的自动调试从整段重写改为只重写出错的那一小段代码。 此前的做法以自回归模型为主,即使执行错误只落在一处代码上,也要按从左到右的顺序读入全部前文并逐词重新生成后文。 在同一个DiffPDE检查点、相同初始候选、执行反馈和调试预算下,局部补全在五个方程族上都不低于整段重生成,平均Pass@32由0.4938升到0.5063。
修复时模型只看到被遮住的代码段,左右两侧的正确代码都保留为条件。 具体做法是局部重遮罩与补全:从执行报错回溯定位出错行,向上下扩展到自然代码边界,把这一段换成掩码标记,再由扩散模型并行补全。 评测覆盖PDEBench的Advection、Burgers、一维反应扩散、一维可压缩Navier–Stokes和Darcy流五个方程族,每个方程族生成32个候选、最多3轮调试。
训练分两步,先监督微调,再用带中间奖励的强化学习处理需要多轮才能修好的耦合错误。 ID-GRPO把成功求解器随机遮罩成补全任务、把失败输出做成纠错任务,并按执行反馈中错误签名是否严格缩小给出中间奖励。 消融中,基础扩散模型经监督微调后平均nRMSE由0.80降到0.28、平均可执行率由0.24升到0.35;完整设计相对无中间奖励版本把nRMSE由0.24降到0.23、Pass@32由0.37升到0.52。
启示与展望
演示范围是PDEBench五个方程族上的求解器生成与局部调试,执行反馈可用来定位并改写具体代码段;作者把扩展到全局程序改写、更大扩散骨干和更多样的PDE情形列为后续方向。
作者指出少数失败需要跨多个代码区域的全局结构改写,超出当前局部补全框架的范围;二维Darcy流的Pass@32为0.09,作者将其归因于椭圆型全局耦合与有限的椭圆PDE先验;初始生成仍慢于同规模自回归基线,效率优势来自修复阶段。
