NoFunEval:有趣的是代码语言模型在超越功能正确性的需求上如何失效
软件工程
2024-10-01 v3 人工智能
计算与语言
机器学习
摘要
现有的代码语言模型评估基准几乎完全集中在 LM 能否生成功能正确的代码。在现实世界的软件工程中,开发者的考量超越了功能正确性。他们对“如何”实现某项功能以满足效率、安全性和可维护性等整体系统设计目标有具体要求。如果 LM 展现出对此类需求的稳健理解,他们也会更加信任这些代码 LM。我们提出了一个新的基准 NoFunEval,用于评估代码 LM 在非功能性需求上的表现,以及功能性和非功能性需求的简单分类实例。我们提出了一种提示方法,即编码概念,作为开发者向 LM 传达领域知识的一种方式。我们对 27 个代码 LM 进行了广泛评估。我们的发现是,LM 在我们的基准上测试时通常会失效,暗示了其训练设置中存在根本性的盲点。令人惊讶的是,即使是源自流行的 HumanEval 基准的功能正确性实例,其分类准确率也很低,这让人质疑它们理解的深度以及它们最初能够生成功能正确代码的成功来源。我们在 https://aka.ms/NoFunEval 公开发布了我们的基准和评估脚本。
引用
@article{arxiv.2401.15963,
title = {NoFunEval: Funny How Code LMs Falter on Requirements Beyond Functional Correctness},
author = {Manav Singhal and Tushar Aggarwal and Abhijeet Awasthi and Nagarajan Natarajan and Aditya Kanade},
journal= {arXiv preprint arXiv:2401.15963},
year = {2024}
}
备注
Accepted at COLM'24