本文是LLM系列文章,针对《Can Large Language Models Reason About Code?》的翻译。
摘要
大型语言模型(LLM)已被广泛用于自动化编程任务。通过测试执行评估代码质量来评估它们的能力。然而,正如我们将要展示的那样,代码合成的成功并不意味着代码推理,这对于信任LLM执行涉及程序分析的任务至关重要,例如测试生成和调试。本文介绍了CodeMind,这是一个旨在通过几个归纳推理任务来衡量LLM代码推理能力的框架。CodeMind目前支持三个任务:独立执行推理(IER)、依赖执行推理(DER)和规范推理(SR)。前两个评估模型用于预测任意代码或模型可以正确合成的代码的执行输出。第三个评估LLM实现指定预期行为的能力。我们使用CodeMind对两种不同编程语言的五个基准测试中的十个LLM进行了广泛评估,用于两种代码生成任务(代码合成和翻译),这表明LLM在某种程度上可以解释程序执行流程,特别是简单程序和它们能正确生成的程序。然而,对于复杂度更高的代码、非琐碎的逻辑和算术运算符、非基元类型和API调用,它们的性能会下降。我们观察到,尽管相关,但代码生成能力并不意味着代码推理:与代码推理相比,基于测试通过的LLM排名可能非常不同。
1 引言
2 CODEMIND
3 实验设置
4 结果与分析
5 结论
在本文中,我们讨论了代码推理任务作为评估编程任务LLM的替代方案的必要性。我们引入了CodeMind,这是一个支持多个代码推理任务的框架,并在一项大规模的基础理论研究中使用CodeMind来评估最先进
163



被折叠的 条评论
为什么被折叠?



