摘要
arXiv:2406.06647v4 宣告类型: replace-cross
摘要: 大型语言模型(LLMs)的出现显著推动了程序合成的前沿。基于LLM的程序合成的进步要求对LLM生成的代码进行全面评估。现有的评估框架主要关注生成代码的功能正确性;作为代码质量的重要指标之一的效率,在现有评估中往往被忽视。在这项工作中,我们开发了ENAMEL(EfficeNcy AutoMatic EvaLuator),这是一种严格的高标准基准,用于评估LLM在生成高效代码方面的能力。首先,我们提出了一种新的效率度量标准eff@k,它将pass@k度量标准从正确性推广到效率,并适当地处理了右截尾的执行时间。此外,通过拉奥-布莱克韦尔化,我们得到了eff@k的无偏且方差减少估计值;我们也提供了新估计值的数值稳定实现。其次,为了设定高效评估的标准,我们雇用了一名人类专家来设计最佳算法和实现作为我们效率的参考解决方案,其中许多解决方案比现有的HumanEval和HumanEval+的标准解决方案更加高效。此外,为了确保严格的评估,我们雇用了一名人类专家来编纂强大的测试用例生成器,以筛选出错误的代码并区分次优算法。使用我们的基准ENAMEL对30个流行LLM进行广泛研究显示,LLM仍然无法生成专家级高效的代码。通过我们问题集的两个子集,我们证明了这种缺陷是因为当前的LLM在设计高级算法方面存在困难,并且几乎没有意识到实现优化。我们的基准可在 https://github.com/q-rz/enamel 获取。