ベンチマーク · coding

EvalPlus

0 結果 0 モデル

EvalPlus は HumanEval と MBPP に大量のテストケースを追加して(HumanEval+ と MBPP+ として)、LLM が生成したコードの正しさを厳密に検証します。指標は pass@k(通常は pass@1)です。

詳しく見る
Python の関数補完タスク:関数シグネチャと、いくつかの例を含む自然言語の docstring を与えられ、モデルが関数本体を書きます。それを大幅に拡張されたテスト群で実行し、元のベンチマークが見落としていた境界ケース(空入力、境界値、大きな値)を追加で検査します。
採点方法
指標は pass@k で、ほぼ常に pass@1 です。生成コードが全テスト(元の base テストと新規の plus テスト)を通過した場合にのみ、その問題は解けたと数えます。pass@k は不偏推定量で、n≥k サンプル・うち c 個が正解のとき 1 − C(n−c, k)/C(n, k) となり、報告スコアはセット全体で解けた問題の割合です。
検証方法
各解答はサンドボックス内で base+plus の全テストに対しテストごとのタイムアウト付きで実行され、すべての assertion を通過した場合にのみ受理されます。追加の入力は型を意識した変異と LLM による種生成で作られ、検証済みの参照解でフィルタされるため、「passed」はすべての入力で参照解と一致することを意味します。
重要な理由
HumanEval/MBPP の元のテスト群は貧弱で、もっともらしいが誤ったコードを通してしまい、モデルの正しさを過大評価します。EvalPlus は約 80×(HumanEval+)・約 35×(MBPP+)に拡張したテスト群でこうした誤りを捕捉し、通常 pass@1 を数ポイント下げるため、コード系 LLM 評価のより信頼できる標準となっています。
解説付きの例
課題
EvalPlus(HumanEval+)風の代表的な問題——シグネチャと docstring から関数本体を完成させてください: ```python from typing import List def sum_even_at_odd_index(numbers: List[int]) -> int: """Return the sum of all even values located at odd indices. >>> sum_even_at_odd_index([3, 8, 7, 4, 5]) 12 >>> sum_even_at_odd_index([1, 3, 5]) 0 """ ```
解答
```python
def sum_even_at_odd_index(numbers: List[int]) -> int:
    return sum(n for i, n in enumerate(numbers) if i % 2 == 1 and n % 2 == 0)
```
解説
解法は enumerate でリストを走査し、奇数インデックス(i % 2 == 1)にある偶数(n % 2 == 0)の値だけを残して合計します。これは docstring の両方の例に加え、空リストや全て奇数といった境界ケースにも一致します。採点は pass/fail で、関数は base+plus の全テストで実行され、すべて通過した場合にのみその問題が加点されます。

このベンチマークの検証済みスコアはまだありません。