We use cookies to improve your experience with our site.

CodeRankEval:用于代码排名的LLM性能基准测试与分析

CodeRankEval: Benchmarking and Analyzing LLM Performance for Code Ranking

  • 摘要:
    研究背景 大语言模型(LLMs)在软件工程领域获得了广泛关注,在代码生成、补全和理解等任务中表现出色。随着这些模型越来越多地被集成到开发工作流程中,如何准确评估其生成代码的质量已成为关键挑战。有效的代码排名对于代码审查、优化解决方案以及提供改进代码的反馈等任务至关重要。传统的代码评估方法通常依赖于基于执行的度量,主要关注功能正确性。然而,这类方法存在明显局限:不仅评估过程耗时、需要复杂的环境配置,更难以捕捉代码在可读性、可维护性等关键质量维度上的表现。尽管LLMs有潜力作为“裁判”来进行代码排名,但目前缺乏全面评估其在不同排名范式(点对点、成对比较、列表比较)下表现的资源,并且未能测试它们在常见代码缺陷下的鲁棒性。缺乏适当的基准测试,限制了对基于LLM的代码排名系统的有效评估和改进。
    目的 本论文旨在通过研究基准测试,为基于LLM代码排名的表现、成本效益和鲁棒性提供有价值的见解,填补现有文献中的重要空白,并为研究人员和实践者提供工具,帮助他们更好地理解和提升LLM在现实世界软件工程应用中的能力。
    方法 我们提出了CodeRankEval,一个旨在评估代码排名模型在点对点、成对比较和列表比较排名范式下表现的基准测试套件。CodeRankEval是基于五个LLM在HumanEval基准问题上生成的代码所构建的,提供了一个多范式数据集。该数据集包括三个部分:点对点(pointwise)、成对比较(pairwise)和列表比较(listwise)排名,这些排名通过专有LLM评估者的共识评分生成。为了评估LLM在应对常见代码缺陷(如无关注释和混淆)时的鲁棒性,我们通过引入噪声(如无关注释、变量混淆和死代码),创建了CodeRankEval-Perturbed版本,评估使用 ndcg@k、accuracy@t1和pass@t1等度量指标。
    结果 CodeRankEval数据集揭示了排名范式之间的明显性能与成本权衡:成对比较(pairwise)在准确度上始终表现最佳,但其计算成本最高,为O(n²);而列表比较(listwise)则提供了最低的成本O(1),同时在识别正确的顶级解决方案方面具有竞争力。点对点(pointwise)提供了平衡的结果,但与成对比较和列表比较相比,其准确度较低。此外,简单的提示设计(如Simple)能够产生最佳的排名准确性,这表明较少的限制性指令有助于模型更有效地执行任务。进一步而言,尽管存在常见的输入扰动,LLM仍然表现出强大的鲁棒性,但它们对位置偏差依然敏感。这些发现强调了根据具体应用需求选择排名范式的重要性,并进一步凸显了像CodeRankEval这样的专用基准在评估实际场景中模型性能的价值。
    结论 提示设计和排名范式显著影响基于LLM的代码排名性能。较简单的提示能够在点对点、成对比较和列表比较任务中获得更好的排名准确性。尽管成对比较排名实现了最高的准确性,其计算成本也最高;而列表比较排名则最具成本效益,但在排名质量上表现较弱。此外,模型对常见的输入扰动表现出强大的鲁棒性,并且代码生成与排名性能之间存在正相关关系,尽管这种关系并非绝对。下一步工作包括提高成对比较排名的效率,并扩展框架以包括多模块任务和更多编程语言。

     

    Abstract: Large language models (LLMs) are increasingly applied across diverse software engineering tasks. Consequently, their ability to effectively rank code quality is crucial for applications like selecting optimal solutions and aiding code review. However, evaluating this essential code ranking capability is hampered by a lack of benchmarks covering diverse paradigms and robustness testing. To address this, we introduce CodeRankEval, a benchmark suite for multi-paradigm evaluation, and CodeRankEval-Perturbed for robustness testing against common code flaws. Our empirical study reveals key insights: pairwise ranking yields the highest accuracy but is costly; listwise is the cheapest and shows comparable performance with pairwise; pointwise generally exhibits lower performance with intermediate cost. Besides, ranking ability correlates positively with generation ability, models show reasonable robustness to perturbations but may exhibit positional bias. Overall, this work provides valuable resources and insights for understanding and improving LLM-based code ranking evaluation.

     

/

返回文章
返回