ベンチマーク · coding
BigCodeBench
BigCodeBench は 1,140 件の実世界のプログラミング課題からなる Python コード生成ベンチマークで、各課題は複数ライブラリの呼び出しを組み合わせる必要があります。評価は実行ベースの Pass@1、すなわち生成した解答が全ユニットテストに合格した課題の割合です。
詳しく見る
- 例
- 典型的な課題は関数シグネチャと詳細な docstring を与えます。例えば「CSV を読み込み、pandas でグループ別の要約統計を計算し、matplotlib で棒グラフを描く」といったもので、複数のライブラリ呼び出しを正しくつなぐ関数本体をモデルに書かせます。
- 採点方法
- 指標は較正済みの Pass@1 で、通常は貪欲デコードを用います。生成された各プログラムをサンドボックス内で課題のユニットテストに対して実行し、全テストに合格した場合のみ解決とみなし、スコアは解決した課題の割合です。報告される分割は Complete(docstring で骨組みされた関数を補完)と Instruct(自然言語の指示のみ)の 2 つに加え、148 課題からなる Hard サブセットがあります。
- 検証方法
- 受理は完全に実行によります。解答は隔離環境で実行したとき、課題の手書きユニットテスト(1 課題あたり約 5.6 個、平均ブランチカバレッジ約 99%)すべてに合格しなければなりません。部分点も参照テキストとの照合もありません。
- 重要な理由
- HumanEval のような単一関数の短いベンチマークと異なり、BigCodeBench はモデルが複雑な指示に従い、139 ライブラリ・7 ドメインにわたる多様な実世界 API を正しく使えるかを検証します。これは実務のソフトウェア作業をより良く反映します。Instruct 分割と Hard サブセットは指示追従とツール合成にさらに負荷をかけます。
解説付きの例
課題
```python
import pandas as pd
import numpy as np
def task_func(df, column):
"""
DataFrame の指定した数値カラムを平均 0・分散 1 に標準化し、
変更後の DataFrame を返す。
Requirements:
- pandas
- numpy
Parameters:
df (pd.DataFrame): 入力データ。
column (str): 標準化する数値カラムの名前。
Returns:
pd.DataFrame: カラムを標準化した DataFrame。
Example:
>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5]})
>>> round(task_func(df, 'a')['a'].mean(), 5)
0.0
"""
```
解答
```python
df[column] = (df[column] - np.mean(df[column])) / np.std(df[column])
return df
```
解説
カラムの平均を引き、母標準偏差(np.std, ddof=0)で割ることで値を平均 0・分散 1 に再スケールし、docstring とその doctest(平均が 0.0 に丸められる)を満たします。しかも必要な 2 つのライブラリを両方使っています。採点は実行ベースで、BigCodeBench は完成した関数をタスクの隠しユニットテストに対して実行し、すべてのテストが通った場合にのみ Pass@1 を与えます。
このベンチマークの検証済みスコアはまだありません。