论文

您不需要公共测试来生成正确的代码

You Don't Need Public Tests to Generate Correct Code

摘要

多代理系统经常用于自主代码生成,在复杂算法问题解决中表现出强大的实用性。最近的研究通过利用模拟引导的规划和调试来解决生成功能正确的程序的困难,其中语言模型逐步通过执行跟踪来验证逻辑。然而,这些方法在很大程度上依赖于人类编写的公共测试用例来锚定模拟和调试周期。手工制作详尽的输入输出对在软件开发生命周期中造成了重大的劳动密集型瓶颈。由于在实际场景中实际实现之前很少可以访问 真值 示例,因此这种依赖将现有方法主要限制为策划的竞争性编程数据集。此外,我们还证明,依赖这些公共测试会产生“过度自信差距”,导致框架过度适应基本示例,而在隐藏测试套件上表现不佳。相反,我们注意到外部输入样本并不是成功代码生成的绝对要求。我们证明 大语言模型 具有自主构造有效输入并模拟执行流程以进行自我校正的能力。在此基础上,我们引入了 DryRUN,这是一个框架,通过使 LLM 能够迭代计划、综合其自己的测试输入并运行模拟执行,消除了 真值 数据的必要性,从而减轻了算法的过度自信。使用 LiveCodeBench v6 数据集(2025 年 3 月后)进行的评估表明,DryRUN 的性能可与 CodeSIM(一种最先进的、依赖于测试的基线)相媲美。值得注意的是,它完全不需要公共测试或外部执行信号,同时减少了总体输出词元的使用。