DebugBench: Evaluating Debugging Capability of Large Language Models

2024年01月09日
  • 简介
    大型语言模型(LLMs)展示了出色的编码能力。然而,作为编程熟练度的另一个关键组成部分,LLMs的调试能力仍然相对未被探索。先前对LLMs调试能力的评估受到数据泄露风险、数据集规模和测试漏洞的多样性等因素的显著限制。为了克服这些不足,我们引入了“DebugBench”,这是一个包含4,253个实例的LLM调试基准测试。它涵盖了C ++,Java和Python中的四个主要错误类别和18种次要类型。为了构建DebugBench,我们从LeetCode社区收集代码片段,使用GPT-4向源数据植入漏洞,并进行严格的质量检查。我们在零-shot场景下评估了两个商业和三个开源模型。我们发现,(1)尽管像GPT-4这样的闭源模型表现出比人类更差的调试性能,但Code Llama等开源模型无法获得任何合格率分数;(2)调试的复杂性显着波动,具体取决于漏洞类别;(3)将运行时反馈纳入调试性能对调试性能有明显影响,但并非总是有帮助。作为扩展,我们还比较了LLM调试和代码生成,揭示了闭源模型之间的强相关性。这些发现将有助于LLMs在调试方面的发展。
  • 图表
  • 解决问题
    评估大型语言模型(LLMs)的调试能力,为此构建了一个名为DebugBench的调试基准,旨在解决当前研究中存在的数据泄露、数据集规模和测试bug类型多样性等问题。
  • 关键思路
    通过对商业和开源模型的评估,发现封闭源代码模型的调试性能不如人类,而开源模型的调试性能更差。不同类型的bug会对调试的复杂性产生显著影响,而将运行时反馈纳入调试过程会对调试性能产生影响,但并非总是有益的。此外,还比较了LLM的调试和代码生成之间的关系,发现封闭源代码模型之间存在很强的相关性。
  • 其它亮点
    构建了一个包含4,253个实例的调试基准DebugBench,涵盖了C++、Java和Python三种语言中四个主要bug类别和18个次要类型。评估了两个商业和三个开源模型的调试性能,揭示了LLMs在调试方面的表现和代码生成之间的关系。
  • 相关研究
    近期的相关研究包括《GPT-3: Language Models are Few-Shot Learners》、《The GPT-2 neural network: language modeling and text generation》、《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论