论文
当不确定性不够时:代码生成中自我修正的实证研究
When Uncertainty Isn't Enough: An Empirical Study of Self-Correction in Code Generation
摘要
用于代码生成的大语言模型常产出错误的解,且没有可靠的失败指标。我们研究为自然语言开发的不确定性估计方法能否迁移到代码生成,以及这些信号能否通过选择性自我修正改进代码生成。我们在HumanEval与BigCodeBench上、针对三个小型代码LLM评估五种不确定性方法:平均token熵、言语化置信度、P(True)、熵集成与语义熵探针。我们发现,多样本P(True)与正确性的相关性最强,而其他所有方法(包括语义熵探针)仅呈弱相关。随后我们用这些不确定性信号驱动三种自我修正策略:自适应解码、基于不确定性的再生成与基于验证的再生成。结果揭示了比预期更强的负面发现:基于不确定性的自我修正无法可靠提升Pass@1,在两个基准的6种配置中有5种出现精度下降(-3到-10个百分点),自适应解码在6种配置中有4种降低精度。只有基于验证的自我修正能可靠提升Pass@1:在HumanEval上提升+6至+26个百分点,在BigCodeBench上提升+8至+20个百分点,且增益与基线强度成反比。这些发现跨两个基准一致复现,表明廉价的不确定性估计器本身不足以提升代码正确性,其实用价值在于充当更昂贵的、基于执行的修正回路的门控信号,而非作为验证的独立替代品。
