作者: Changshu Liu, Yang Chen, Reyhaneh Jabbarvand
提交/修订日期: 2024年2月15日提交,2025年5月22日修订 (v5)
摘要:
大型语言模型(LLMs)已被广泛用于自动化编程任务。其能力通常通过测试或证明生成的代码质量来评估。它们能在多大程度上对代码进行推理,是一个揭示其真实能力的关键问题。本文提出了 CodeMind,一个旨在通过以下显式和隐式代码推理任务来衡量 LLMs 代码推理能力的框架:独立执行推理(IER)、规范推理(SR)和动态语义推理(DSR)。IER 评估 LLMs 模拟给定代码输入并预测输出的能力。SR 评估 LLMs 将规范中测试数据的模拟纳入代码生成的能力。DSR 则评估 LLMs 在仅给定特定输入/输出的情况下理解整体代码语义的能力。我们使用 CodeMind 在四个广泛使用的基准上对十个 LLMs 进行了广泛评估,结果表明,LLMs 根据其规模和训练策略,能够对代码的某些动态方面进行推理。然而,对于复杂度更高、包含非平凡逻辑和算术运算符、非原始类型以及 API 调用的代码,其性能会下降。我们证明这些推理任务对 LLMs 的评估方式不同,全面的代码推理评估需要所有这些任务。最后,我们表明 LLMs 在错误修复方面的性能与任何代码推理任务都不相关,并且除了先进的前沿模型外,其他 LLMs 在执行错误修复时并未融入代码推理。
主题/分类:
- 主要:软件工程 (cs.SE)
- 其他:人工智能 (cs.AI);计算与语言 (cs.CL);编程语言 (cs.PL)
arXiv ID: 2402.09664