Source code for eval_framework.benchmarks.humaneval_plus

"""HumanEvalPlus: HumanEval on the EvalPlus dataset (https://huggingface.co/datasets/evalplus/humanevalplus),
which adds far more test cases per problem. The prompt shape is identical to HumanEval's ``_V2`` variants, so
these reuse the builders exposed by the ``humaneval`` module; only the dataset (and the execution metric,
which needs numpy in the sandbox) differ.
"""

from eval_framework.benchmarks.humaneval import v2_bpb, v2_execution
from eval_framework.contract import Benchmark
from eval_framework.metrics.completion.code_assertion import HumanEvalPlusCodeCompletionAssertion
from eval_framework.tasks.dataset_loading import DatasetPolicy

HUMANEVAL_PLUS_DATASET_PATH = "evalplus/humanevalplus"


[docs] def humaneval_plus(dataset: DatasetPolicy | None = None) -> Benchmark: return v2_execution( "HumanEvalPlus", dataset_path=HUMANEVAL_PLUS_DATASET_PATH, metrics=[HumanEvalPlusCodeCompletionAssertion], # numpy in the sandbox for some EvalPlus tests dataset=dataset, )
[docs] def humaneval_plus_bpb(dataset: DatasetPolicy | None = None) -> Benchmark: return v2_bpb("HumanEvalPlusBPB", dataset_path=HUMANEVAL_PLUS_DATASET_PATH, dataset=dataset)
HUMANEVAL_PLUS_BENCHMARKS: list[Benchmark] = [humaneval_plus(), humaneval_plus_bpb()]