LLM2D
NoFunEval:代码大模型在功能正确性之外的要求方面是如何失利的
NoFunEval: Funny How Code LMs Falter on Requirements Beyond Functional Correctness
作者: Manav Singhal, Tushar Aggarwal, Abhijeet Awasthi, Nagarajan Natarajan, Aditya Kanade
发布日期: 10/1/2024
arXiv ID: oai:arXiv.org:2401.15963v3

摘要

现有的代码语言模型(代码LM)评估基准几乎完全集中于LM是否能够生成功能正确的代码。在现实世界的软件工程中,开发人员除了功能正确性之外还会考虑其他因素。他们对“如何”实现功能以满足整体系统设计目标(如效率、安全性和可维护性)有要求。如果LM能够展现出对这些要求的稳健理解,他们会更加信任代码LM。 我们提出了一个新的基准NoFunEval,用于评估代码LM在非功能性需求和功能性需求和非功能性需求的简单分类实例上的表现。我们提出了一种提示方法,编码概念(CoCo),作为开发人员向LM传达领域知识的一种方式。我们对27个代码LM进行了广泛的评估。我们的发现是,LM在我们的基准测试中普遍表现不佳,暗示了其训练设置中存在根本性的盲点。令人惊讶的是,即使是从流行的HumanEval基准中获得的功能正确性实例的分类准确率也很低,这让人质疑它们理解的深度以及它们最初在生成功能正确代码方面的成功来源。我们在https://aka.ms/NoFunEval公开发布了我们的基准和评估脚本。