Mutation-based Consistency Testing for Evaluating the Code Understanding Capability of LLMs

2024年01月11日
  • 简介
    大型语言模型(LLMs)已经展现出在处理自然语言和编程语言方面的非凡能力,这使得在软件工程领域中出现了各种应用,例如需求工程、代码生成和软件测试。然而,现有的代码生成基准测试并不一定评估LLMs的代码理解性能,特别是对于代码与自然语言描述中可能出现的微妙不一致性。本文提出了一种新方法,通过向现有代码生成数据集引入代码变异,从而系统地评估LLMs的代码理解性能,特别关注代码和其描述之间的微小差异。代码变异是改变原始代码语义的小变化,从而与自然语言描述产生不匹配。我们应用不同类型的代码变异,例如运算符替换和语句删除,生成不一致的代码-描述对。然后,我们使用这些对来测试LLMs正确检测不一致性的能力。我们提出了一种新的LLM测试方法,称为基于变异的一致性测试(MCT),并在两个流行的LLMs,GPT-3.5和GPT-4上进行了案例研究,使用最先进的代码生成基准测试HumanEval-X,该测试涵盖六种编程语言(Python、C++、Java、Go、JavaScript和Rust)。我们比较了LLMs在不同类型的代码变异和编程语言之间的性能,并分析了结果。我们发现LLMs在其代码理解性能方面存在显着差异,并且它们在变异类型和语言方面具有不同的优势和劣势。
  • 作者讲解
  • 图表
  • 解决问题
    这篇论文试图通过引入代码变异来系统评估大型语言模型(LLMs)的代码理解能力,特别关注代码和自然语言描述之间的微妙差异。这是否是一个新问题?
  • 关键思路
    论文提出了一种新的LLM测试方法,称为基于变异的一致性测试(MCT),并在人工评估-X基准测试上对两种流行的LLMs进行了案例研究,比较它们在不同类型的代码变异和编程语言上的表现。相比当前领域的研究状况,这篇论文的思路是将代码变异引入到现有的代码生成数据集中,以测量LLMs的代码理解能力,特别关注代码和自然语言描述之间的微妙差异。
  • 其它亮点
    论文使用了不同类型的代码变异来生成不一致的代码-描述对,以测试LLMs正确检测不一致性的能力。实验使用了最新的代码生成基准测试HumanEval-X,该基准测试包括六种编程语言(Python,C ++,Java,Go,JavaScript和Rust)。研究发现,LLMs在代码理解方面的表现存在显著差异,并且它们在不同类型的变异和编程语言上具有不同的优势和劣势。
  • 相关研究
    最近的相关研究包括使用LLMs进行代码生成和测试等方面的工作,例如GPT-3和CodeBERT等模型。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

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

向作者提问