返回
Reassessing One-Round Test-Time Refinement for Code Generation
DOI:10.3390/ai7090353.png)
摘要
En 中文
测试时优化旨在通过额外的推理改进生成的程序,但其初始候选产生后的价值仍不明确。我们针对一轮Self-Refine和Self-Debug在七个模型和三个Python代码生成基准上进行了受控评估。对于每个模型和任务,两种方法都优化相同的初始候选,使我们能够在初始生成无变化的情况下测量优化增益。Self-Debug在21个模型-基准组合中的16个中产生了正向优化增益,其余五个无变化,而Self-Refine在16个组合中降低了正确性,仅在四个中有所提升。将优化增益分解为修复和退步澄清了这一对比。经过诊断步骤后,Self-Debug的候选保留使34.1%的初始最终测试失败未被解决,但99.95%的初始正确候选保持正确。由于退步几乎不存在,诊断失败后的修复直接转化为正向增益。Self-Refine也修复了初始失败,但其总体退步数量是修复数量的三倍以上,导致增益主要为负。资源分析表明,Self-Refine使用更多标记同时普遍降低正确性,而Self-Debug提供了更有利的增益-开销平衡,尽管其每净附加步骤的推理开销因模型和基准而异。这些结果表明,一轮优化并非固有有益,应仅在预期增益足以证明额外计算和成本时才应用。
Keyword:
large language models
code generation
test-time refinement
self-refinement
self-debugging
execution feedback

