中文

自我修复是代码生成的万能灵药吗?

计算与语言 2024-02-05 v5 人工智能 编程语言 软件工程

摘要

大语言模型在代码生成方面展现出非凡能力,但在执行复杂任务时仍显吃力。自我修复——即模型调试并修复自身代码——近来成为在这些场景下提升性能的流行方法。然而,尽管其日益流行,现有关于自我修复的研究范围有限;因此在许多设置下,其有效性仍知之甚少。本文中,我们分析了 Code Llama、GPT-3.5 和 GPT-4 在取自 HumanEval 和 APPS 的问题上执行自我修复的能力。我们发现,当把执行修复的代价考虑在内时,性能提升往往有限,在不同数据子集间差异很大,且有时完全不存在。我们假设这是因为自我修复受限于模型对其自身代码提供反馈的能力;使用更强的模型人为提升反馈质量后,我们观察到大幅更大的性能提升。类似地,一项小规模研究中我们向 GPT-4 提供来自人类参与者的反馈,表明即便对最强模型而言,自我修复仍远远落后于人类水平调试所能达到的效果。

关键词

引用

@article{arxiv.2306.09896,
  title  = {Is Self-Repair a Silver Bullet for Code Generation?},
  author = {Theo X. Olausson and Jeevana Priya Inala and Chenglong Wang and Jianfeng Gao and Armando Solar-Lezama},
  journal= {arXiv preprint arXiv:2306.09896},
  year   = {2024}
}

备注

Accepted to ICLR 2024. Added additional Code Llama experiments and fixed a data processing error harming Code Llama's reported self-repair performance on HumanEval