面向神经代码生成的功能重叠重排序方法
软件工程
2024-08-09 v4 人工智能
机器学习
摘要
代码大型语言模型(CodeLLMs)开创了代码生成进步的新时代。然而,从所有可能的CodeLLM输出中选取最佳代码解仍具挑战。以往方法常忽视解簇之间复杂的功能相似性与交互。我们提出SRank,一种用于从代码生成中选取最佳解的新型重排序策略,侧重于建模解簇间的关系。通过量化解簇间的功能重叠,我们的方法为代码解提供了更优的排序策略。实证结果表明,该方法在pass@1指标上取得显著成果。例如,在Human-Eval基准上,我们使用Codex002达到69.66%的pass@1,WizardCoder为75.31%,StarCoder为53.99%,CodeGen为60.55%,在相同CodeLLM上超越CodeT和Coder-Reviewer等最先进代码生成重排序方法,优势明显(平均提升约6.1%)。即使在采样解和测试用例数量有限的场景下,我们的方法也展现出鲁棒性与优越性,树立了代码生成重排序的新基准。我们的实现见 https://github.com/FSoft-AI4Code/SRank-CodeRanker。
引用
@article{arxiv.2311.03366,
title = {Functional Overlap Reranking for Neural Code Generation},
author = {Hung Quoc To and Minh Huynh Nguyen and Nghi D. Q. Bui},
journal= {arXiv preprint arXiv:2311.03366},
year = {2024}
}
备注
ACL 2024, Long Findings