论文
再试一次,不要回头:盲重采样在小代码模型中优于自我修复
Try Again, Don't Look Back: Blind Resampling Outperforms Self-Repair in Small Code Models
摘要
自我修复 - 将失败的程序及其测试输出返回到模型并要求更正 - 是代码代理的标准组件,并且几乎总是根据根本不重试的基线进行评估。我们认为这种比较混淆了反馈的价值和额外尝试的价值。在三个模型尺度(1.5B、3B、7B)的 MBPP+ 上使用安慰剂对照设计,我们比较了四种匹配预算的重试条件:盲目重采样、无内容的失败通知、真实的执行反馈以及通过口头自我反思增强的反馈。盲重采样是低于 7B 的最强条件,并且在统计上与 7B 的最佳条件保持一致,同时消耗的词元少 2.5-5.5 倍;以模型自身失败的尝试为条件的成本为 1.5B 时的 6.1 分 (p=0.006),并且执行反馈的信息内容与安慰剂相比没有增加任何可测量的内容。我们将此归因于锚定:当显示其先前的尝试时,模型在 33-68% 的重试中重现了几乎相同的程序,而在盲重采样下为 2-14%。两个进一步的实验界定了这种效果。检索到的其他任务的解决方案没有任何改变(限制为+/-3.5分),这将伤害定位于自我调节而不是上下文长度;而反思,作为可衡量地削弱锚的唯一条件,仍然以成本为主导。复制排除了两种相互竞争的解释:惩罚在完全精度下保持不变,并且它在独立的模型系列上复制。在跨越两个系列和两种精度的六种配置中,其大小仅通过基线质量来预测(r=0.96)——锚定的成本是第一次尝试失败的成本。