BigCodeBench(ビッグコードベンチ)
2024 年に発表された LLM コード生成能力評価ベンチマーク。HumanEval の 164 問に対し 1,140 問と約 7 倍の問題数を持ち、実際のライブラリ(NumPy/Pandas/scikit-learn 等)を使ったより現実的なプログラミングタスクで LLM の真の実力を測定する。
BigCodeBench とは
BigCodeBench は、2024 年 6 月に Big Code Project(Hugging Face 系の OSS コミュニティ)が発表したコード生成 LLM 評価ベンチマークです。
HumanEval(2021年、OpenAI 発表)や MBPP(2021年、Google 発表)は、LLM のコード生成能力評価の標準として長年使われてきましたが、問題数が少なすぎる(HumanEval は 164 問)・簡単すぎる(外部ライブラリを使わない)・実務との乖離が大きい・データ汚染の可能性といった問題がありました。BigCodeBench はこれらを解決するために設計されました。
主な特徴・仕組み
- 問題数: 1,140 問(HumanEval の 7 倍)
- 対象ライブラリ: 139 ライブラリ(NumPy, Pandas, scikit-learn, PIL, requests, SQLite, BeautifulSoup 等)
- 評価モード: Complete(関数補完)と Instruct(自然言語指示→コード)の 2 形式
- 自動テスト: 各問題に平均 5.6 個のユニットテスト(厳密な正確性評価)
- 難易度分布: Level 1-5(LeetCode 難易度スケール準拠)
スコア比較表(BigCodeBench-Instruct、2025 年 2 月時点)
| モデル | スコア (pass@1) | タイプ |
|---|---|---|
| GPT-4o (2024-11-20) | 0.694 | クローズドソース |
| Claude 3.5 Sonnet (2024-10-22) | 0.682 | クローズドソース |
| Gemini 1.5 Pro (002) | 0.647 | クローズドソース |
| DeepSeek-Coder-V2 Instruct | 0.618 | オープンソース |
| Llama 3.1 405B Instruct | 0.598 | オープンソース |
| Qwen2.5-Coder-72B-Instruct | 0.584 | オープンソース |
HumanEval vs BigCodeBench の乖離
ある 2024 年の観測事例では、HumanEval pass@1 が 90.2% のモデルが BigCodeBench では 45.3% にとどまり、HumanEval でのデータ汚染の可能性が示された。一方 HumanEval が 78.5% のモデルが BigCodeBench で 62.1% を記録し、実際のコード生成能力が相対的に高いことが判明した。BigCodeBench でのスコアの方が実際の開発支援能力を正確に反映する。
問題カテゴリ内訳
| カテゴリ | 問題数 | 使用ライブラリ例 |
|---|---|---|
| データ操作 | 約 250 | pandas, numpy, scipy |
| 機械学習 | 約 200 | scikit-learn, statsmodels |
| 画像処理 | 約 150 | PIL/Pillow, cv2 |
| Web・API | 約 130 | requests, BeautifulSoup |
| データベース | 約 120 | sqlite3, sqlalchemy |
| ファイル処理 | 約 110 | os, pathlib, zipfile |
ローカルでの評価実行
# pip install bigcodebench
bigcodebench.generate --model gpt-4o --split instruct --greedy
bigcodebench.evaluate --samples output.jsonl --split instruct
よくある質問(FAQ)
Q1: HumanEval で高スコアのモデルは BigCodeBench でも高スコアになりますか? A: 必ずしもそうではありません。HumanEval はシンプルな問題で汚染の影響を受けやすく、BigCodeBench との乖離が大きいモデルも存在します。
Q2: BigCodeBench は日本語の指示に対応していますか? A: 現在は英語の Instruct モードのみ対応。日本語 LLM の評価には翻訳した問題セットを使うか他のベンチマークを組み合わせることを検討してください。
Q3: BigCodeBench は SWE-bench と何が違いますか? A: SWE-bench は実際の GitHub Issue 解決(マルチファイル・リポジトリ全体理解が必要)を評価し、BigCodeBench は個別関数のコード生成を評価します。SWE-bench の方がより難しく、実際のソフトウェアエンジニアリング能力に近いです。
まとめ
- HumanEval の 7 倍(1,140 問)・139 ライブラリを使用した現実的なコード生成ベンチマーク
- Complete モード(関数補完)と Instruct モード(自然言語指示)の 2 形式で評価
- GPT-4o・Claude 3.5 Sonnet がトップ圏で、オープンソースは DeepSeek-Coder・Qwen2.5-Coder が上位
- HumanEval でデータ汚染が疑われるモデルの真の実力を測定できる重要指標