摘要
大型语言模型 (LLMs) 通过 Python 代码极大地增强了任务自动化,涵盖了从软件工程开发到通用推理的各种任务。尽管目前的基准测试表明 LLMs 可以像人类开发者一样使用程序解决任务,但大多数评估仅限于简短且独立的算法任务或独立函数调用。解决具有挑战性和实际意义的任务需要能够利用各种函数调用作为工具来有效地实现数据分析和网络开发等功能。此外,使用多个工具解决任务需要通过准确理解复杂指令进行组合推理。满足这两个特点对 LLMs 来说是一个巨大的挑战。为了评估 LLMs 通过程序解决具有挑战性和实际意义的任务的能力,我们引入了 BigCodeBench,这是一个基准测试,它挑战 LLMs 从 139 个库和 7 个领域调用多个函数调用作为工具,以完成 1,140 个细粒度任务。为了严格评估 LLMs,每个任务包含 5.6 个测试用例,平均分支覆盖率为 99%。此外,我们提出了 BigCodeBench 的面向自然语言的变体 BigCodeBench-Instruct,它自动将原始文档字符串转换为仅包含必要信息的简短指令。我们对 60 个 LLMs 的广泛评估表明,LLMs 尚未能够遵循复杂的指令来精确地使用函数调用,得分高达 60%,明显低于人类的 97% 的表现。结果强调了在这一领域进一步发展的必要性。