返回
Condor: A Code Discriminator Integrating General Semantics With Code Details
DOI:10.1109/TSE.2025.3620145.png)
摘要
En 中文
大语言模型(LLMs)在各种软件工程任务中展现出巨大潜力。然而,它们在处理复杂需求时,首次生成正确代码仍面临挑战。引入鉴别器从多个生成结果中选择可靠输出是提升其可靠性和稳定性的有效方法。目前,这些鉴别器可分为两类:基于执行的鉴别器和非基于执行的鉴别器。基于执行的鉴别器因难以获取测试用例和安全问题而面临灵活性挑战,而非基于执行的鉴别器虽然更灵活,但在捕捉代码细节的细微差异方面存在困难。为在保持灵活性的同时提升模型捕捉细粒度代码细节的能力,本文提出Condor。我们首先设计对比学习来优化基模型的代码表示,使其能反映代码细节的差异。然后,利用代码修改过程中的中间数据进一步丰富鉴别器的训练数据,增强其辨别代码细节的能力。实验结果表明,在细微代码差异数据集(即CodeNanoFix)上,Condor在鉴别性能上显著优于其他鉴别器:Condor(1.3B)将DeepSeek-Coder(1.3B)的鉴别F1分数从67%提升至73%。在鉴别大语言模型生成输出时,Condor(1.3B)和Condor(110M)分别将Llama-3.1-Instruct(70B)在CodeNanoFix数据集上的Pass@1分数从52.64%提升至62.63%和59.64%。此外,Condor在APPS、MBPP和LiveCodeBench数据集上展现出强大的泛化能力。例如,Condor(1.3B)将Llama-3.1-Instruct(70B)在APPS数据集上的Pass@1提升了147.05%。
Keyword:
Code discriminator
code embedding
code generation
code repair
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.1W
机构
引用论文
Do advanced language models eliminate the need for prompt engineering in software engineering?高级语言模型是否消除了软件工程中快速工程的需要?
Deep learning-based software engineering: progress, challenges, and opportunities基于深度学习的软件工程: 进展、挑战和机遇

