论文
CodeSpecBench:生成可执行行为规范的 LLM 基准测试
CodeSpecBench: Benchmarking LLMs for Executable Behavioral Specification Generation
摘要
大语言模型 (LLM) 可以从自然语言生成代码,但它们捕获预期程序行为的程度仍不清楚。通过前置条件和后置条件定义的可执行行为规范提供了评估这种理解的具体方法。然而,现有的规范生成工作在评估方法、任务设置和规范表达方面受到限制。我们引入了 CodeSpecBench,这是在基于执行的评估协议下生成可执行行为规范的基准。 CodeSpecBench 支持函数级和存储库级任务,并将规范编码为可执行的 Python 函数。它由不同的现实世界代码库构建而成,可以对正确性(接受有效行为)和完整性(拒绝无效行为)进行现实评估。在 CodeSpecBench 上评估 15 个最先进的 LLM 时,我们发现存储库级任务的性能急剧下降,其中最好的模型仅获得 20.2% 的通过率。我们进一步发现规范生成比代码生成更具挑战性,这表明强大的编码性能不一定反映对预期程序语义的深刻理解。我们的数据和代码可在 https://github.com/SparksofAGI/CodeSpecBench 获取。