[論文レビュー] BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions
BigCodeBench は、139 個のライブラリと 7 ドメインに跨る LLM ベースのコード生成を、複雑なツール使用指示とともに評価し、60 個の LLM を評価し、人間の性能との大きなギャップを明らかにする(Complete で最大 60% Pass@1、Instruct で <50%)。
Task automation has been greatly empowered by the recent advances in Large Language Models (LLMs) via Python code, where the tasks ranging from software engineering development to general-purpose reasoning. While current benchmarks have shown that LLMs can solve tasks using programs like human developers, the majority of their evaluations are limited to short and self-contained algorithmic tasks or standalone function calls. Solving challenging and practical tasks requires the capability of utilizing diverse function calls as tools to efficiently implement functionalities like data analysis and web development. In addition, using multiple tools to solve a task needs compositional reasoning by accurately understanding complex instructions. Fulfilling both of these characteristics can pose a great challenge for LLMs.To assess how well LLMs can solve challenging and practical tasks via programs, we introduce BigCodeBench, a benchmark that challenges LLMs to invoke multiple function calls as tools from 139 libraries and 7 domains for 1,140 fine-grained tasks. To evaluate LLMs rigorously, each task encompasses 5.6 test cases with an average branch coverage of 99%. In addition, we propose a natural-language-oriented variant of BigCodeBench, BigCodeBench-Instruct, that automatically transforms the original docstrings into short instructions only with essential information. Our extensive evaluation of 60 LLMs shows that LLMs are not yet capable of following complex instructions to use function calls precisely, with scores up to 60%, significantly lower than the human performance of 97%. The results underscore the need for further advancements in this area.
研究の動機と目的
- 挑戦的で実世界のプログラミング課題に対する LLM の評価を動機づける。
- 多様なライブラリ(ツール)を呼び出し、複雑で構成的な指示に従う LLM の能力を評価する。
- 二つのベンチマークバリアントを提供する:BigCodeBench-Complete(構造化された docstring)と BigCodeBench-Instruct(NL 指向の指示)。
- 現行のベンチマークとの相関を示し、人間を上回るモデルが欠けているギャップを特定する。
提案手法
- データ合成、リファクタリング、テスト、キュレーションを含む人間–LLM 共同作業による大規模で高品質な実行ベースのベンチマークを構築する。
- seed 例を用いてタスクを抽出し、多様なライブラリ(139 ライブラリ、7 ドメイン)で豊富化する。
- Code Interpreter を有効化した GPT-4 セッションと人間の介在による指導を用いて、合成プログラムをリファクタリングし厳格なテストケースを生成する。
- タスクの難易度とテストの決定性を保証するために、3 段階の人間キュレーション(検査、事前評価、クロスチェック)を適用する。
- タスクを NL 指向のバリアント(BigCodeBench-Instruct)に変換するため、ドックストリング prompts を簡潔な指示へ変換する。
- ゼロショット設定で Pass@K 指標を用いて LLM を評価し、欠落したコンテキストを考慮したキャリブレーション分析を含める。

実験結果
リサーチクエスチョン
- RQ1多様なツール使用と複雑な指示を必要とする実践的なプログラミング課題を LLM は解けるか。
- RQ2指示チューニングは、複雑な制約を遵守し、ドメイン横断でツールを使用する能力にどのように影響するか。
- RQ3モデルサイズ、指示チューニング、オープンエンドな複数ライブラリのコード生成タスクにおける性能の関係は?
主な発見
- BigCodeBench-Complete で 60 の最先端 LLM、BigCodeBench-Instruct で 35 の指示チューニング済み LLM を評価。
- 最高モデル(GPT-4o)は BigCodeBench-Complete で最大 60% Pass@1、BigCodeBench-Instruct で 50% 未満を達成。
- 較正済みの結果は Complete と Instruct のランキング間に強い整合を示し(Pearson r = 0.982)。
- 指示チューニングされたモデルは複雑な制約を従う能力を向上させ、平均的な較正済み Pass@1 はベースモデルより高くなる(例:特定の比較で 40.7% 対 35.7%)。
- 長い文脈のプロンプトでは重要な import 文を省略するモデルが多く、タスクの成功率に影響を与え、ドメイン特化がツール使用のパフォーマンスに影響を与える。
- BigCodeBench は HumanEval+ および LiveCodeBench との強い相関を示し、主流のベンチマークと整合する一方で、独自の評価側面を明らかにする。

より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。