BigCodeBench(ビッグコードベンチ)
LLM のコード生成能力を実用的なプログラミングタスクで評価するベンチマーク。HumanEval の限界を超え、複数ライブラリの組合せ・API 呼出し・データ処理など現実的な開発シナリオを網羅する。
BigCodeBench とは
BigCodeBench は 2024 年に BigCode プロジェクトから公開された、LLM のコード生成能力を測定する大規模ベンチマークである。従来の HumanEval(164 問)や MBPP(974 問)がアルゴリズム的な小問題に偏っていたのに対し、BigCodeBench は 実務レベルのプログラミングタスク 1,140 問 を収録し、複数ライブラリの組合せや外部 API の利用を要求する。
HumanEval との差異
| 比較軸 | HumanEval | BigCodeBench |
|---|---|---|
| 問題数 | 164 | 1,140 |
| タスク粒度 | 単一関数・アルゴリズム | 複数関数・ライブラリ連携 |
| ライブラリ使用 | 標準ライブラリのみ | 139 ライブラリ(NumPy, Pandas, requests 等) |
| テストケース | 平均 7.7 件/問 | 平均 5.6 件/問(より複雑な検証) |
| 実務類似性 | 低(競技プログラミング寄り) | 高(データ処理・Web・ML パイプライン) |
評価モード
BigCodeBench は 2 つの評価モードを提供する。
- Complete(完全生成): 関数シグネチャとドキュメント文字列から完全な実装を生成。コード生成能力の純粋な測定。
- Instruct(指示追従): 自然言語の指示文からコードを生成。指示理解力とコード生成力の複合評価。
タスクカテゴリ
1,140 問は以下の実務領域をカバーする。
- データ処理: Pandas・NumPy によるデータ変換・集計・可視化
- Web/API: requests・Flask・FastAPI を用いた HTTP 通信・サーバー構築
- ファイル操作: CSV/JSON/XML の読み書き・パス操作・圧縮展開
- 機械学習: scikit-learn・PyTorch によるモデル学習・評価パイプライン
- 暗号・セキュリティ: hashlib・cryptography による暗号化・署名検証
- テスト・品質: unittest・pytest によるテストコード生成
採点方式
生成コードをサンドボックス環境(Docker コンテナ)で実行し、テストケースの通過率(pass@k)で採点する。pass@1(1 回の生成で正解する確率)が主要指標で、pass@5 も補助指標として報告される。実行時間制限は問題ごとに設定され、無限ループや過剰なリソース消費は不正解扱いとなる。
FAQ
Q1: BigCodeBench は Python 以外の言語に対応しているか?
2026 年時点では Python のみ対応している。これは評価対象ライブラリ(NumPy, Pandas 等)が Python エコシステムに集中しているためである。多言語対応は将来の拡張計画に含まれている。
Q2: HumanEval で高スコアのモデルが BigCodeBench で低スコアになることはあるか?
頻繁に観察される。HumanEval はアルゴリズム能力を測るが、BigCodeBench は外部ライブラリの正しい使い方や複合的な処理フローの構築を要求するため、実務的なコード生成能力が不足するモデルはスコアが大幅に低下する。
Q3: 自社モデルの評価をローカルで実行できるか?
BigCodeBench は GitHub でオープンソース公開されており、Docker 環境があればローカル実行可能である。公式の bigcodebench パッケージを pip install して evaluate コマンドを実行する。