CodeMind: A Framework to Challenge Large Language Models for Code Reasoning

2024年02月15日
  • 简介
    仅仅依靠测试通过来评估大型语言模型(LLMs)在代码合成方面的表现可能会导致不公平的评估或者促进存在数据泄漏的模型。作为替代方案,我们引入了CodeMind,这是一个旨在评估LLMs代码推理能力的框架。CodeMind目前支持三种代码推理任务:独立执行推理(IER),依赖执行推理(DER)和规范推理(SR)。前两个评估模型来预测任意代码或模型能够正确合成的代码的执行输出。第三个评估LLMs实现指定期望行为的程度。我们在两种不同的编程语言中使用CodeMind对五个基准测试中的九个LLMs进行了广泛的评估,结果显示LLMs在控制流结构方面表现公平,并且通常能够解释输入如何演变为输出,特别是对于简单程序和它们可以正确合成的程序。然而,它们在具有更高复杂性、非平凡逻辑和算术运算符、非原始类型和API调用的代码方面的表现下降。此外,我们观察到,虽然相关,规范推理(对于代码合成至关重要)并不意味着执行推理(对于更广泛的编程任务,如测试和调试至关重要):基于测试通过排名LLMs可能与代码推理不同。
  • 作者讲解
  • 图表
  • 解决问题
    CodeMind: 评估大型语言模型的代码推理能力
  • 关键思路
    CodeMind框架通过独立执行推理、依赖执行推理和规范推理三个任务来评估大型语言模型的代码推理能力,以代替单纯依靠测试结果评估模型的方法。
  • 其它亮点
    论文使用CodeMind框架评估了九个大型语言模型在五个基准测试集中的表现。结果显示,模型在简单程序和能够正确合成的程序中表现良好,但在复杂程序、非平凡逻辑和算术运算符、非基本类型和API调用等情况下表现下降。此外,论文还发现规范推理并不意味着执行推理,因此仅依靠测试结果评估模型可能会与实际代码推理能力不符。
  • 相关研究
    在相关研究方面,最近的一些论文包括:《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》、《Learning to Continually Learn》、《The Annotated Transformer》等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问