论文
通过差分测试时间缩放生成代码
Code Generation by Differential Test Time Scaling
摘要
测试时间扩展已成为一种通过在推理时探索大型解决方案空间来改进代码生成的有前景的方法。然而,现有方法通常依赖于实践中不可用的公共测试用例,或者需要大量的 LLM 推理来进行候选选择,从而导致大量的词元消耗和时间开销。我们提出了 DiffCodeGen,这是一种基于覆盖引导差异分析的新型代码生成测试时间缩放方法。 DiffCodeGen 使用各种采样和提示策略生成不同的代码候选,然后应用覆盖引导的模糊测试来合成输入,而无需任何现有测试或 大语言模型。通过对这些输入执行所有候选者,DiffCodeGen 捕获他们的动态行为并根据行为相似性对候选者进行聚类。 DiffCodeGen 选择最大簇的中心点作为最终输出。与之前调用额外的 LLM 推理来进行候选选择的测试时间缩放方法不同,DiffCodeGen 无需任何额外的模型调用即可执行选择,几乎不会产生额外的词元消耗。 DiffCodeGen 是完全异步的,自然适合当前代理编码的趋势,因此高效且高度可扩展。我们评估了 4 个 大语言模型 的 DiffCodeGen,证明了与基线相比的一致改进。与最先进的测试时间扩展方法相比,DiffCodeGen 仅使用一小部分时间和词元即可实现具有竞争力或卓越的性能。 DiffCodeGen 与模型无关,可以与推理模型结合以进一步提高性能。