返回
Understanding Regression in Code Self-Refinement: A Study of Refinement Protocols Without Execution Feedback
DOI:10.3390/ai7100416.png)
摘要
En 中文
自完善可以提高生成代码的质量而无需额外训练,但在没有执行反馈的情况下,修订也可能将原本正确的代码修改为错误代码。我们研究了自完善协议设计如何影响代码正确性,使用了六个本地可部署的开源权重模型、三个Python代码生成基准和9984个模型-任务对。针对每个协议使用相同的初始代码,我们比较了直接修订与添加评论和规划阶段的完善方法,测试了在完善前询问模型是否需要修订是否会影响正确性,并比较了单独调用与单次响应的效果。在评估的完善协议中,直接修订实现了最高的整体正确率,而添加单独的评论和规划阶段虽然增加了修复次数,但导致了显著更多的退步。直接修订产生了55次修复和20次退步;添加评论产生了220次修复和605次退步,而在评论后添加规划产生了206次修复和719次退步。决策过滤和单次调用组织通过减少有害修改改进了易退步的协议,它们分别将通过率提高了3.89至5.10和3.22至3.92个百分点,但两种方法均未超越直接修订。重复直接生成通过生成另一个候选方案实现了许多修复,而直接修订保持了更为有利的修复-退步平衡。这些结果表明,在没有执行反馈的情况下,完善设计应优先保留已正确的代码,而非增加推理阶段。
Keyword:
large language models
code generation
self-refinement
refinement protocols
correctness regression

