BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions

2024年06月22日
  • 简介
    自动化软件工程已经受益于最近大型语言模型(LLMs)在编程方面的进展。虽然当前的基准测试已经表明,LLMs可以像人类开发人员一样执行各种软件工程任务,但它们的大多数评估仅限于短而自包含的算法任务。解决具有挑战性和实用性的编程任务需要能够利用多样的函数调用作为工具来高效地实现数据分析和Web开发等功能。此外,使用多个工具来解决任务需要通过准确理解复杂的指令进行组合推理。实现这两个特征可能对LLMs构成巨大挑战。为了评估LLMs解决具有挑战性和实用性的编程任务的能力,我们引入了Bench基准测试,该基准测试挑战LLMs从139个库和7个领域中调用多个函数调用作为工具来完成1140个细粒度编程任务。为了严格评估LLMs,每个编程任务包含5.6个测试用例,平均分支覆盖率为99%。此外,我们提出了Bench的自然语言定向变体Benchi,它将原始docstrings自动转换为仅具有基本信息的简短指令。我们对60个LLMs进行了广泛的评估,结果表明LLMs尚不能精确地遵循复杂的指令来使用函数调用,得分最高达60%,显著低于人类的97%的表现。这些结果强调了在这个领域进一步发展的必要性。
  • 图表
  • 解决问题
    评估大型语言模型在解决实际编程任务中的能力
  • 关键思路
    提出了一个新的基准测试Bench,挑战LLMs使用139个库和7个领域的多个函数调用作为工具来解决1140个细粒度编程任务。评估结果表明,LLMs还不能准确地遵循复杂的指令来精确使用函数调用。
  • 其它亮点
    Bench基准测试包含5.6个测试用例,并且有99%的平均分支覆盖率。论文提出了一个自然语言导向的变体Benchi,将原始docstrings自动转换为只包含必要信息的简短指令。60个LLMs的广泛评估结果表明,LLMs的得分最高只有60%,远低于人类的97%。
  • 相关研究
    最近的相关研究包括使用LLMs进行代码自动补全和代码生成的研究,如《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》和《Deep Code Comment Generation》。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论