ベンチマーク · coding
MBPP
MBPP(Mostly Basic Python Problems)は、平易な英語で記述された入門レベルの Python プログラミング課題を約 1000 問集めたコード生成ベンチマークで、各課題には自動テストケースが付いています。モデルが最初の一度で正しい関数を書ける頻度を測り、pass@1 指標で報告します。
詳しく見る
- 例
- 典型的な課題は、一行の説明から小さな Python 関数を書くようモデルに求めます——例えば「n 番目の Fibonacci 数を返す関数を書け」や「文字列が回文かどうか判定せよ」——そのうえで付属の assert ベースのテストを使って実行されます。
- 採点方法
- 指標は pass@1 です。各課題についてモデルは解答を 1 つ生成し、スコアは生成コードがその課題のすべてのテストケースに合格した課題の割合です。
- 検証方法
- 解答は自動で判定されます。生成された関数は課題の assert ベースの単体テストで実行され、すべてのテストに合格したときのみ正解と数えられます(人間の判定や厳密な文字列一致はありません)。
- 重要な理由
- MBPP は基本的な Python コード生成の、古くからある実行の容易なベースラインです。今日の強力なモデルは上限近くのスコアを取るため飽和(saturated)したとみなされ、今では最上位システムを見分ける手段というより、主に健全性チェックとして役立ちます。
解説付きの例
課題
MBPP 形式の問題:「与えられた小文字の文字列に含まれる母音(a, e, i, o, u)の数を数える python 関数を書きなさい。」これには 3 つの隠れた assert テストが付属し、例えば
assert count_vowels('hello') == 2、assert count_vowels('world') == 1、assert count_vowels('rhythm') == 0 で、関数名はテストが呼び出す名前と一致している必要があります。解答
def count_vowels(s):
return sum(1 for ch in s if ch in 'aeiou')
解説
文字列を走査して母音集合 'aeiou' に属する文字を数えると、3 つの入力に対してそれぞれ 2、1、0 が得られ、すべての assert が通ります。MBPP は生成された関数を付属の 3 つの assert テストすべてで実行し、合格/不合格で採点します(機能的正しさ、pass@k)。
| 日付 | モデル | スコア | ソース |
|---|---|---|---|
| 2026-07-16 | Granite 4.0 3B | 63.2% | IBMがCodeAlchemyをオープンソース化:高品質なコードの大量合成データセット |
| 2026-07-13 | Qwen3.5-4B | 13.0% | Flintは推論トレースを圧縮してトークン使用量を削減しつつ精度を維持 |
| 2024-12-17 | Falcon3-10B-Base | 73.8% | Falcon3ファミリーが科学、数学、コード能力を強化した5つのオープンモデルをリリース |