eval-framework 0.9.0__tar.gz → 0.9.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {eval_framework-0.9.0 → eval_framework-0.9.2}/PKG-INFO +4 -2
- {eval_framework-0.9.0 → eval_framework-0.9.2}/README.md +2 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/pyproject.toml +2 -2
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/code_assertion.py +2 -2
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/minerva_math_utils.py +9 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/response_generator.py +3 -1
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/base.py +27 -8
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/mbpp.py +1 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/registry.py +33 -27
- eval_framework-0.9.2/src/eval_framework/tasks/task_names.py +213 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/utils.py +11 -1
- eval_framework-0.9.0/src/eval_framework/tasks/task_names.py +0 -82
- {eval_framework-0.9.0 → eval_framework-0.9.2}/LICENSE +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/base_config.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/context/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/context/determined.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/context/eval.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/context/local.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/evaluation_generator.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/exceptions.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/external/drop_process_results.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/external/ifeval_impl/README.md +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/llm/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/llm/aleph_alpha.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/llm/base.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/llm/huggingface.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/llm/models.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/llm/openai.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/logger.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/main.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/base.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/csv_format.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/f1.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/format_checker.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/ifeval.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/json_format.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/language_checker.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/length_control.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/repetition.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/completion/text_counter.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/base.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/language.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/models.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/llm/utils.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/py.typed +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/result_processors/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/result_processors/base.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/result_processors/hf_uploader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/result_processors/result_processor.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/run.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/run_direct.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/shared/types.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/suite.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/gpqa.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/dataset_revisions.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/eval_config.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/markdown_doc.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/perturbation.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/task_loader.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/tasks/task_style.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/utils/constants.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/utils/file_ops.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/utils/helpers.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/utils/logging.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/utils/packaging.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/eval_framework/utils/tqdm_handler.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/template_formatting/README.md +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/template_formatting/__init__.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/template_formatting/formatter.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/template_formatting/mistral_formatter.py +0 -0
- {eval_framework-0.9.0 → eval_framework-0.9.2}/src/template_formatting/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: eval-framework
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: Evaluation Framework
|
|
5
5
|
Author: Aleph Alpha Research
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Requires-Dist: xmltodict>=1.0.4,<1.1
|
|
|
216
216
|
Requires-Dist: pydantic>=2.13.4,<3
|
|
217
217
|
Requires-Dist: datasets>=5.0.1,<6
|
|
218
218
|
Requires-Dist: pycountry>=26.2.16,<27
|
|
219
|
-
Requires-Dist: nltk>=3.10.
|
|
219
|
+
Requires-Dist: nltk>=3.10.2,<4
|
|
220
220
|
Requires-Dist: python-dotenv>=1.2.2,<2
|
|
221
221
|
Requires-Dist: lingua-language-detector>=2.2.0,<3
|
|
222
222
|
Requires-Dist: google-crc32c>=1.8.0,<2
|
|
@@ -450,11 +450,13 @@ from eval_framework.main import main
|
|
|
450
450
|
from eval_framework.tasks.eval_config import EvalConfig
|
|
451
451
|
from template_formatting.formatter import HFFormatter
|
|
452
452
|
|
|
453
|
+
|
|
453
454
|
# Define your model
|
|
454
455
|
class MyHuggingFaceModel(HFLLM):
|
|
455
456
|
LLM_NAME = "microsoft/DialoGPT-medium"
|
|
456
457
|
DEFAULT_FORMATTER = partial(HFFormatter, "microsoft/DialoGPT-medium")
|
|
457
458
|
|
|
459
|
+
|
|
458
460
|
if __name__ == "__main__":
|
|
459
461
|
# Initialize your model
|
|
460
462
|
llm = MyHuggingFaceModel()
|
|
@@ -189,11 +189,13 @@ from eval_framework.main import main
|
|
|
189
189
|
from eval_framework.tasks.eval_config import EvalConfig
|
|
190
190
|
from template_formatting.formatter import HFFormatter
|
|
191
191
|
|
|
192
|
+
|
|
192
193
|
# Define your model
|
|
193
194
|
class MyHuggingFaceModel(HFLLM):
|
|
194
195
|
LLM_NAME = "microsoft/DialoGPT-medium"
|
|
195
196
|
DEFAULT_FORMATTER = partial(HFFormatter, "microsoft/DialoGPT-medium")
|
|
196
197
|
|
|
198
|
+
|
|
197
199
|
if __name__ == "__main__":
|
|
198
200
|
# Initialize your model
|
|
199
201
|
llm = MyHuggingFaceModel()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "eval-framework"
|
|
3
|
-
version = "0.9.
|
|
3
|
+
version = "0.9.2"
|
|
4
4
|
description = "Evaluation Framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -23,7 +23,7 @@ dependencies = [
|
|
|
23
23
|
"pydantic>=2.13.4,<3",
|
|
24
24
|
"datasets>=5.0.1,<6",
|
|
25
25
|
"pycountry>=26.2.16,<27",
|
|
26
|
-
"nltk>=3.10.
|
|
26
|
+
"nltk>=3.10.2,<4",
|
|
27
27
|
"python-dotenv>=1.2.2,<2",
|
|
28
28
|
"lingua-language-detector>=2.2.0,<3",
|
|
29
29
|
"google-crc32c>=1.8.0,<2",
|
|
@@ -2,7 +2,7 @@ from llm_sandbox.exceptions import SandboxTimeoutError
|
|
|
2
2
|
|
|
3
3
|
from eval_framework.metrics.base import BaseMetric, MetricResult
|
|
4
4
|
from eval_framework.shared.types import Completion
|
|
5
|
-
from eval_framework.tasks.utils import run_python_code
|
|
5
|
+
from eval_framework.tasks.utils import DockerReturnedEmptyOutput, run_python_code
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class CodeCompletionAssertion(BaseMetric[Completion]):
|
|
@@ -16,7 +16,7 @@ class CodeCompletionAssertion(BaseMetric[Completion]):
|
|
|
16
16
|
code = response.completion
|
|
17
17
|
try:
|
|
18
18
|
output = run_python_code(code, image="python:3.12-slim", runtime_configs={"mem_limit": "512m"})
|
|
19
|
-
except SandboxTimeoutError:
|
|
19
|
+
except (SandboxTimeoutError, DockerReturnedEmptyOutput):
|
|
20
20
|
# The submitted code timed out (e.g. an infinite loop) -- a failing sample, not an infra
|
|
21
21
|
# problem.
|
|
22
22
|
import traceback
|
|
@@ -350,8 +350,17 @@ def strip_string_hendrycks(string: str) -> str:
|
|
|
350
350
|
return string
|
|
351
351
|
|
|
352
352
|
|
|
353
|
+
# MATH gold answers stay under ~80 chars.
|
|
354
|
+
_PLAUSIBLE_ANSWER_LEN = 128
|
|
355
|
+
|
|
356
|
+
|
|
353
357
|
def is_equiv_minerva(x1: str, x2: str, timeout_seconds: int = 5) -> bool:
|
|
354
358
|
"""Sympy-based equivalence (Minerva)."""
|
|
359
|
+
# extract_answers can fall back to the whole completion; sympy grinds on such
|
|
360
|
+
# 1000+ char strings until the timeout. A side far longer than the other can't
|
|
361
|
+
# be an equivalent final answer, so refuse it before parsing.
|
|
362
|
+
if max(len(x1), len(x2)) > max(_PLAUSIBLE_ANSWER_LEN, 3 * min(len(x1), len(x2))):
|
|
363
|
+
return False
|
|
355
364
|
|
|
356
365
|
def _timeout_handler(signum: Any, frame: Any) -> None:
|
|
357
366
|
raise TimeoutError()
|
|
@@ -26,7 +26,7 @@ from eval_framework.shared.types import (
|
|
|
26
26
|
Loglikelihood,
|
|
27
27
|
RawLoglikelihood,
|
|
28
28
|
)
|
|
29
|
-
from eval_framework.tasks.base import Language, ResponseType, Sample
|
|
29
|
+
from eval_framework.tasks.base import RANDOM_SEED, Language, ResponseType, Sample
|
|
30
30
|
from eval_framework.tasks.eval_config import EvalConfig
|
|
31
31
|
from eval_framework.tasks.utils import raise_errors
|
|
32
32
|
from eval_framework.utils.constants import RED, RESET
|
|
@@ -67,6 +67,7 @@ class ResponseGenerator:
|
|
|
67
67
|
config.task_subjects,
|
|
68
68
|
config.hf_revision,
|
|
69
69
|
user_prompt_suffix=config.user_prompt_suffix,
|
|
70
|
+
seed=RANDOM_SEED,
|
|
70
71
|
)
|
|
71
72
|
else:
|
|
72
73
|
self.task = registry()[config.task_name].create(
|
|
@@ -74,6 +75,7 @@ class ResponseGenerator:
|
|
|
74
75
|
config.task_subjects,
|
|
75
76
|
config.hf_revision,
|
|
76
77
|
user_prompt_suffix=config.user_prompt_suffix,
|
|
78
|
+
seed=RANDOM_SEED,
|
|
77
79
|
)
|
|
78
80
|
|
|
79
81
|
self.response_type = self.task.get_response_type()
|
|
@@ -147,6 +147,7 @@ class BaseTask[SubjectType](Task):
|
|
|
147
147
|
self.stop_sequences: list[str] | None = None
|
|
148
148
|
self.max_tokens: int | None = None
|
|
149
149
|
self.hf_revision: str | None = self._apply_hf_revision()
|
|
150
|
+
self.rnd: random.Random | None = None
|
|
150
151
|
|
|
151
152
|
def _apply_hf_revision(self, custom_hf_revision: str | None = None) -> str | None:
|
|
152
153
|
# Precedence: CLI/config override > REVISION_LOCKFILE pin.
|
|
@@ -167,12 +168,13 @@ class BaseTask[SubjectType](Task):
|
|
|
167
168
|
custom_subjects: list[str] | None,
|
|
168
169
|
custom_hf_revision: str | None,
|
|
169
170
|
user_prompt_suffix: str | None = None,
|
|
171
|
+
seed: int | None = RANDOM_SEED,
|
|
170
172
|
) -> Self:
|
|
171
173
|
instance = cls(num_fewshot=num_fewshot)
|
|
172
174
|
if user_prompt_suffix is not None and instance.get_response_type() != ResponseType.COMPLETION:
|
|
173
175
|
raise ValueError("user_prompt_suffix is only supported for completion tasks.")
|
|
174
176
|
instance.user_prompt_suffix = user_prompt_suffix
|
|
175
|
-
|
|
177
|
+
instance.rnd = random.Random(seed)
|
|
176
178
|
# If custom subjects were provided during initialization, they take precedence over the class-level SUBJECTS.
|
|
177
179
|
filtered_subjects = instance._filter_task_subjects(custom_subjects=custom_subjects)
|
|
178
180
|
if filtered_subjects:
|
|
@@ -190,11 +192,27 @@ class BaseTask[SubjectType](Task):
|
|
|
190
192
|
|
|
191
193
|
assert hasattr(self, "SUBJECTS") and len(self.SUBJECTS) > 0
|
|
192
194
|
if isinstance(self.SUBJECTS[0], tuple):
|
|
193
|
-
# subjects are specified as strings but
|
|
194
|
-
|
|
195
|
+
# subjects are specified as comma-separated strings but tuple positions may each hold a
|
|
196
|
+
# different type (e.g. tuple[str, int, str]). Infer the expected type per position from an
|
|
197
|
+
# actual subject and cast each part back to it, so it compares equal to the real values
|
|
198
|
+
# below instead of just their str() form. "*" is a wildcard sentinel and stays a string.
|
|
199
|
+
num_items = len(self.SUBJECTS[0])
|
|
200
|
+
position_types = [type(self.SUBJECTS[0][i]) for i in range(num_items)]
|
|
201
|
+
|
|
202
|
+
def cast(raw: str, i: int) -> Any:
|
|
203
|
+
raw = raw.strip()
|
|
204
|
+
return raw if raw == "*" else position_types[i](raw)
|
|
205
|
+
|
|
206
|
+
filters = []
|
|
207
|
+
for custom_subject in custom_subjects:
|
|
208
|
+
parts = custom_subject.split(",")
|
|
209
|
+
assert len(parts) == num_items, (
|
|
210
|
+
f"Subject '{custom_subject}' has {len(parts)} parts, expected {num_items} for "
|
|
211
|
+
f"task {self.display_name()}"
|
|
212
|
+
)
|
|
213
|
+
filters.append(tuple(cast(part, i) for i, part in enumerate(parts)))
|
|
195
214
|
|
|
196
215
|
# check if all parts of custom subjects exists (* is a wildcard)
|
|
197
|
-
num_items = len(self.SUBJECTS[0])
|
|
198
216
|
legal_values = [
|
|
199
217
|
set([s[i] for s in self.SUBJECTS if isinstance(s, tuple)] + ["*"]) for i in range(num_items)
|
|
200
218
|
]
|
|
@@ -204,18 +222,18 @@ class BaseTask[SubjectType](Task):
|
|
|
204
222
|
assert v in legal_values[i], f"Subject part {v} not found in task {self.__class__.__name__}"
|
|
205
223
|
|
|
206
224
|
# filter task subjects. * is a supported wildcard for a specific item in a tuple, e.g. "DE_DE, *"
|
|
207
|
-
chosen_subjects = []
|
|
225
|
+
chosen_subjects: list[tuple] = []
|
|
208
226
|
for subject in self.SUBJECTS:
|
|
209
227
|
subject_tuple = subject if isinstance(subject, tuple) else tuple(str(subject).split(","))
|
|
210
228
|
for filter in filters:
|
|
211
229
|
if all(filter[i] == "*" or filter[i] == subject_tuple[i] for i in range(num_items)):
|
|
212
230
|
chosen_subjects.append(subject_tuple)
|
|
213
231
|
break
|
|
214
|
-
return chosen_subjects
|
|
232
|
+
return chosen_subjects
|
|
215
233
|
else:
|
|
216
234
|
for cs in custom_subjects:
|
|
217
235
|
assert cs in self.SUBJECTS, f"Subject {cs} not found in task {self.__class__.__name__}"
|
|
218
|
-
return custom_subjects
|
|
236
|
+
return custom_subjects
|
|
219
237
|
|
|
220
238
|
def _load_hf_dataset(self, **kwargs: Any) -> Any:
|
|
221
239
|
cache_dir: str = os.environ.get("HF_DATASET_CACHE_DIR", f"{Path.home()}/.cache/huggingface/datasets")
|
|
@@ -228,8 +246,8 @@ class BaseTask[SubjectType](Task):
|
|
|
228
246
|
)
|
|
229
247
|
|
|
230
248
|
def _shuffle_splits(self, hf_dataset: DatasetDict) -> dict[str, Any]:
|
|
249
|
+
assert self.rnd is not None, "Task RNG is unseeded; build tasks via `with_overwrite`."
|
|
231
250
|
dataset = {}
|
|
232
|
-
self.rnd = random.Random(RANDOM_SEED)
|
|
233
251
|
|
|
234
252
|
for split, data in hf_dataset.items():
|
|
235
253
|
if split not in [self.SAMPLE_SPLIT, self.FEWSHOT_SPLIT]:
|
|
@@ -397,6 +415,7 @@ class BaseTask[SubjectType](Task):
|
|
|
397
415
|
return None
|
|
398
416
|
|
|
399
417
|
def _sample_fewshot_examples(self, item: dict[str, Any]) -> list[dict]:
|
|
418
|
+
assert self.rnd is not None, "Task RNG is unseeded; build tasks via `with_overwrite`."
|
|
400
419
|
if self.FEWSHOT_SPLIT == self.SAMPLE_SPLIT:
|
|
401
420
|
# If the fewshot and sample splits are the same, we risk including the current eval item
|
|
402
421
|
# as a fewshot example (leaking the answer). To prevent this, sample one extra example,
|
|
@@ -102,6 +102,7 @@ class MBPP(BaseTask[str]):
|
|
|
102
102
|
return f"{BEGIN}\n" + target + f"\n{END}"
|
|
103
103
|
|
|
104
104
|
def _sample_fewshot_examples(self, item: dict[str, Any]) -> list[dict]:
|
|
105
|
+
assert self.rnd is not None
|
|
105
106
|
fewshot_examples = self.rnd.sample(self.dataset[self.FEWSHOT_SPLIT], self.num_fewshot)
|
|
106
107
|
return fewshot_examples
|
|
107
108
|
|
|
@@ -5,7 +5,7 @@ from abc import ABC, abstractmethod
|
|
|
5
5
|
from collections.abc import Generator, Iterator, Sequence
|
|
6
6
|
from typing import TYPE_CHECKING, Any
|
|
7
7
|
|
|
8
|
-
from eval_framework.tasks.base import BaseTask, ResponseType
|
|
8
|
+
from eval_framework.tasks.base import RANDOM_SEED, BaseTask, ResponseType
|
|
9
9
|
from eval_framework.tasks.perturbation import PerturbationConfig, create_perturbation_class
|
|
10
10
|
from template_formatting.formatter import BaseFormatter
|
|
11
11
|
|
|
@@ -62,6 +62,7 @@ class EvalFactory(ABC):
|
|
|
62
62
|
custom_subjects: list[str] | None,
|
|
63
63
|
custom_hf_revision: str | None,
|
|
64
64
|
user_prompt_suffix: str | None = None,
|
|
65
|
+
seed: int | None = None,
|
|
65
66
|
) -> BaseTask: ...
|
|
66
67
|
|
|
67
68
|
@abstractmethod
|
|
@@ -72,6 +73,7 @@ class EvalFactory(ABC):
|
|
|
72
73
|
custom_subjects: list[str] | None,
|
|
73
74
|
custom_hf_revision: str | None,
|
|
74
75
|
user_prompt_suffix: str | None = None,
|
|
76
|
+
seed: int | None = None,
|
|
75
77
|
) -> BaseTask: ...
|
|
76
78
|
|
|
77
79
|
@abstractmethod
|
|
@@ -115,12 +117,14 @@ class _Lazy(EvalFactory):
|
|
|
115
117
|
custom_subjects: list[str] | None,
|
|
116
118
|
custom_hf_revision: str | None,
|
|
117
119
|
user_prompt_suffix: str | None = None,
|
|
120
|
+
seed: int | None = None,
|
|
118
121
|
) -> BaseTask:
|
|
119
122
|
return self.task_class().with_overwrite(
|
|
120
123
|
num_fewshot=num_fewshot,
|
|
121
124
|
custom_subjects=custom_subjects,
|
|
122
125
|
custom_hf_revision=custom_hf_revision,
|
|
123
126
|
user_prompt_suffix=user_prompt_suffix,
|
|
127
|
+
seed=seed,
|
|
124
128
|
)
|
|
125
129
|
|
|
126
130
|
def create_perturbation(
|
|
@@ -130,6 +134,7 @@ class _Lazy(EvalFactory):
|
|
|
130
134
|
custom_subjects: list[str] | None,
|
|
131
135
|
custom_hf_revision: str | None,
|
|
132
136
|
user_prompt_suffix: str | None = None,
|
|
137
|
+
seed: int | None = None,
|
|
133
138
|
) -> BaseTask:
|
|
134
139
|
perturbation_task_class = create_perturbation_class(self.task_class(), perturbation_config)
|
|
135
140
|
return perturbation_task_class.with_overwrite(
|
|
@@ -137,6 +142,7 @@ class _Lazy(EvalFactory):
|
|
|
137
142
|
custom_subjects=custom_subjects,
|
|
138
143
|
custom_hf_revision=custom_hf_revision,
|
|
139
144
|
user_prompt_suffix=user_prompt_suffix,
|
|
145
|
+
seed=seed,
|
|
140
146
|
)
|
|
141
147
|
|
|
142
148
|
def response_type(self) -> ResponseType:
|
|
@@ -153,9 +159,9 @@ class _Lazy(EvalFactory):
|
|
|
153
159
|
|
|
154
160
|
def markdown_doc(self, formatters: Sequence[BaseFormatter]) -> str:
|
|
155
161
|
try:
|
|
156
|
-
task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None)
|
|
162
|
+
task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None, seed=RANDOM_SEED)
|
|
157
163
|
except (TypeError, ValueError, AssertionError):
|
|
158
|
-
task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None)
|
|
164
|
+
task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None, seed=RANDOM_SEED)
|
|
159
165
|
return task.markdown_doc(formatters)
|
|
160
166
|
|
|
161
167
|
|
|
@@ -178,12 +184,14 @@ class _Eager(EvalFactory):
|
|
|
178
184
|
custom_subjects: list[str] | None,
|
|
179
185
|
custom_hf_revision: str | None,
|
|
180
186
|
user_prompt_suffix: str | None = None,
|
|
187
|
+
seed: int | None = None,
|
|
181
188
|
) -> BaseTask:
|
|
182
189
|
return self._task.with_overwrite(
|
|
183
190
|
num_fewshot=num_fewshot,
|
|
184
191
|
custom_subjects=custom_subjects,
|
|
185
192
|
custom_hf_revision=custom_hf_revision,
|
|
186
193
|
user_prompt_suffix=user_prompt_suffix,
|
|
194
|
+
seed=seed,
|
|
187
195
|
)
|
|
188
196
|
|
|
189
197
|
def create_perturbation(
|
|
@@ -193,6 +201,7 @@ class _Eager(EvalFactory):
|
|
|
193
201
|
custom_subjects: list[str] | None,
|
|
194
202
|
custom_hf_revision: str | None,
|
|
195
203
|
user_prompt_suffix: str | None = None,
|
|
204
|
+
seed: int | None = None,
|
|
196
205
|
) -> BaseTask:
|
|
197
206
|
perturbation_task_class = create_perturbation_class(self._task, perturbation_config)
|
|
198
207
|
return perturbation_task_class.with_overwrite(
|
|
@@ -200,6 +209,7 @@ class _Eager(EvalFactory):
|
|
|
200
209
|
custom_subjects=custom_subjects,
|
|
201
210
|
custom_hf_revision=custom_hf_revision,
|
|
202
211
|
user_prompt_suffix=user_prompt_suffix,
|
|
212
|
+
seed=seed,
|
|
203
213
|
)
|
|
204
214
|
|
|
205
215
|
def response_type(self) -> ResponseType:
|
|
@@ -216,27 +226,22 @@ class _Eager(EvalFactory):
|
|
|
216
226
|
|
|
217
227
|
def markdown_doc(self, formatters: Sequence[BaseFormatter]) -> str:
|
|
218
228
|
try:
|
|
219
|
-
task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None)
|
|
229
|
+
task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None, seed=RANDOM_SEED)
|
|
220
230
|
except (TypeError, ValueError, AssertionError):
|
|
221
|
-
task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None)
|
|
231
|
+
task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None, seed=RANDOM_SEED)
|
|
222
232
|
return task.markdown_doc(formatters)
|
|
223
233
|
|
|
224
234
|
|
|
225
235
|
class Registry:
|
|
226
|
-
"""A registry for
|
|
227
|
-
|
|
228
|
-
Task names are hashed based on the upper-case name, to avoid issues with
|
|
229
|
-
ambiguous naming.
|
|
230
|
-
"""
|
|
236
|
+
"""A registry for Tasks"""
|
|
231
237
|
|
|
232
238
|
def __init__(self) -> None:
|
|
233
|
-
|
|
234
|
-
self._registry: dict[str, tuple[str, EvalFactory]] = dict()
|
|
239
|
+
self._registry: dict[str, EvalFactory] = dict()
|
|
235
240
|
|
|
236
241
|
def __iter__(self) -> Iterator[str]:
|
|
237
242
|
"""Iterate over all task names in the registry."""
|
|
238
|
-
for
|
|
239
|
-
yield
|
|
243
|
+
for factory in self._registry.values():
|
|
244
|
+
yield factory.id()
|
|
240
245
|
|
|
241
246
|
def task_names(self) -> list[str]:
|
|
242
247
|
"""The names of all registered tasks."""
|
|
@@ -244,7 +249,8 @@ class Registry:
|
|
|
244
249
|
|
|
245
250
|
def items(self) -> Iterator[tuple[str, EvalFactory]]:
|
|
246
251
|
"""Iterate over `(task name, EvalFactory)` pairs in the registry."""
|
|
247
|
-
|
|
252
|
+
for factory in self._registry.values():
|
|
253
|
+
yield factory.id(), factory
|
|
248
254
|
|
|
249
255
|
@staticmethod
|
|
250
256
|
def _task_key(name: str, /) -> str:
|
|
@@ -262,26 +268,25 @@ class Registry:
|
|
|
262
268
|
def __getitem__(self, name: str, /) -> EvalFactory:
|
|
263
269
|
task_key = self._task_key(name)
|
|
264
270
|
try:
|
|
265
|
-
|
|
271
|
+
return self._registry[task_key]
|
|
266
272
|
except KeyError:
|
|
267
273
|
raise KeyError(f"Task not found: {name=} with task_key {task_key=}")
|
|
268
274
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
task_key = self._task_key(name)
|
|
275
|
+
def add(self, factory: EvalFactory) -> None:
|
|
276
|
+
"""Register a factory under the key derived from its ``id()``."""
|
|
277
|
+
task_key = self._task_key(factory.id())
|
|
273
278
|
if task_key in self._registry:
|
|
274
279
|
raise ValueError(f"Cannot register duplicate task with key: {task_key}")
|
|
275
280
|
|
|
276
|
-
self._registry[task_key] =
|
|
281
|
+
self._registry[task_key] = factory
|
|
277
282
|
|
|
278
283
|
def register(self, task: type[BaseTask]) -> str:
|
|
279
284
|
"""The class name is used as the task name."""
|
|
280
285
|
if not issubclass(task, BaseTask):
|
|
281
286
|
raise ValueError(f"Can only register subclasses of BaseTask, got {task}")
|
|
282
|
-
|
|
283
|
-
self
|
|
284
|
-
return
|
|
287
|
+
factory = _Eager(task)
|
|
288
|
+
self.add(factory)
|
|
289
|
+
return factory.id()
|
|
285
290
|
|
|
286
291
|
def register_lazy(self, class_path: str, /) -> None:
|
|
287
292
|
"""Register a task by its dotted class path, without importing its module."""
|
|
@@ -291,7 +296,7 @@ class Registry:
|
|
|
291
296
|
"`eval_framework.tasks.benchmarks.mmlu.MMLU`): "
|
|
292
297
|
)
|
|
293
298
|
base_module, class_name = class_path.rsplit(".", maxsplit=1)
|
|
294
|
-
self
|
|
299
|
+
self.add(_Lazy(class_name=class_name, module=base_module))
|
|
295
300
|
|
|
296
301
|
|
|
297
302
|
_REGISTRY = Registry()
|
|
@@ -335,6 +340,7 @@ def register_task(task: type[BaseTask]) -> str:
|
|
|
335
340
|
return registry().register(task)
|
|
336
341
|
|
|
337
342
|
|
|
338
|
-
def register_lazy_task(class_path: str,
|
|
343
|
+
def register_lazy_task(class_path: str, /, registry: Registry | None = None) -> None:
|
|
339
344
|
"""Register a task by its dotted class path, without importing its module."""
|
|
340
|
-
registry
|
|
345
|
+
r = registry if registry is not None else _REGISTRY
|
|
346
|
+
r.register_lazy(class_path)
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
from eval_framework.tasks.base import BaseTask
|
|
4
|
+
from eval_framework.tasks.registry import Registry, register_lazy_task
|
|
5
|
+
from eval_framework.tasks.registry import registry as global_registry
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class TaskNameEnum(Enum):
|
|
9
|
+
@property
|
|
10
|
+
def value(self) -> type[BaseTask]:
|
|
11
|
+
return super().value
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def register_all_tasks(registry: Registry | None = None) -> None:
|
|
15
|
+
"""Register all the benchmark tasks with the eval framework
|
|
16
|
+
|
|
17
|
+
Uses global registry by default.
|
|
18
|
+
"""
|
|
19
|
+
registry = registry if registry is not None else global_registry()
|
|
20
|
+
|
|
21
|
+
register_math_reasoning_tasks(registry=registry)
|
|
22
|
+
register_arc_tasks(registry=registry)
|
|
23
|
+
register_arc_de_tasks(registry=registry)
|
|
24
|
+
register_bigcodebench_tasks(registry=registry)
|
|
25
|
+
register_copa_tasks(registry=registry)
|
|
26
|
+
register_goldenswag_tasks(registry=registry)
|
|
27
|
+
register_gpqa_tasks(registry=registry)
|
|
28
|
+
register_gsm8k_tasks(registry=registry)
|
|
29
|
+
register_hellaswag_tasks(registry=registry)
|
|
30
|
+
register_humaneval_tasks(registry=registry)
|
|
31
|
+
register_ifeval_tasks(registry=registry)
|
|
32
|
+
register_multipl_e_tasks(registry=registry)
|
|
33
|
+
register_mbpp_tasks(registry=registry)
|
|
34
|
+
register_mmlu_tasks(registry=registry)
|
|
35
|
+
register_mmlu_pro_tasks(registry=registry)
|
|
36
|
+
register_global_mmlu_tasks(registry=registry)
|
|
37
|
+
register_piqa_tasks(registry=registry)
|
|
38
|
+
register_sciq_tasks(registry=registry)
|
|
39
|
+
register_squad_tasks(registry=registry)
|
|
40
|
+
register_winogrande_tasks(registry=registry)
|
|
41
|
+
register_csqa_tasks(registry=registry)
|
|
42
|
+
register_drop_tasks(registry=registry)
|
|
43
|
+
register_naturalqs_open_tasks(registry=registry)
|
|
44
|
+
register_social_iqa_tasks(registry=registry)
|
|
45
|
+
register_medqa_tasks(registry=registry)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def register_arc_tasks(registry: Registry) -> None:
|
|
49
|
+
"""Register arc benchmark tasks."""
|
|
50
|
+
register_lazy_task("eval_framework.tasks.benchmarks.arc.ARC", registry=registry)
|
|
51
|
+
register_lazy_task("eval_framework.tasks.benchmarks.arc.ARC_IDK", registry=registry)
|
|
52
|
+
register_lazy_task("eval_framework.tasks.benchmarks.arc.ARC_OLMES", registry=registry)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def register_hellaswag_tasks(registry: Registry) -> None:
|
|
56
|
+
"""Register hellaswag benchmark tasks."""
|
|
57
|
+
register_lazy_task("eval_framework.tasks.benchmarks.hellaswag.HELLASWAG", registry=registry)
|
|
58
|
+
register_lazy_task("eval_framework.tasks.benchmarks.hellaswag.HELLASWAG_OLMES", registry=registry)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def register_piqa_tasks(registry: Registry) -> None:
|
|
62
|
+
"""Register piqa benchmark tasks."""
|
|
63
|
+
register_lazy_task("eval_framework.tasks.benchmarks.piqa.PIQA", registry=registry)
|
|
64
|
+
register_lazy_task("eval_framework.tasks.benchmarks.piqa.PIQA_IDK", registry=registry)
|
|
65
|
+
register_lazy_task("eval_framework.tasks.benchmarks.piqa.PIQA_OLMES", registry=registry)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def register_gpqa_tasks(registry: Registry) -> None:
|
|
69
|
+
"""Register gpqa benchmark tasks."""
|
|
70
|
+
register_lazy_task("eval_framework.tasks.benchmarks.gpqa.GPQA_OLMES", registry=registry)
|
|
71
|
+
register_lazy_task("eval_framework.tasks.benchmarks.gpqa.GPQA_DIAMOND_COT", registry=registry)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def register_gsm8k_tasks(registry: Registry) -> None:
|
|
75
|
+
"""Register gsm8k benchmark tasks."""
|
|
76
|
+
register_lazy_task("eval_framework.tasks.benchmarks.gsm8k.GSM8K_OLMES", registry=registry)
|
|
77
|
+
register_lazy_task("eval_framework.tasks.benchmarks.gsm8k.GSM8KBPB", registry=registry)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def register_math_reasoning_tasks(registry: Registry) -> None:
|
|
81
|
+
"""Register math_reasoning benchmark tasks."""
|
|
82
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.AIME2024", registry=registry)
|
|
83
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.AIME2026", registry=registry)
|
|
84
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.AIME2025", registry=registry)
|
|
85
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATHMinervaBPB", registry=registry)
|
|
86
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.GSM8KReasoning", registry=registry)
|
|
87
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATH500", registry=registry)
|
|
88
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATHMinerva_OLMES", registry=registry)
|
|
89
|
+
register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATHMinerva_OLMES_NONL", registry=registry)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def register_mmlu_tasks(registry: Registry) -> None:
|
|
93
|
+
"""Register mmlu benchmark tasks."""
|
|
94
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU", registry=registry)
|
|
95
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU_IDK", registry=registry)
|
|
96
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU_OLMES", registry=registry)
|
|
97
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu.FullTextMMLU", registry=registry)
|
|
98
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU_COT", registry=registry)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def register_humaneval_tasks(registry: Registry) -> None:
|
|
102
|
+
"""Register humaneval benchmark tasks."""
|
|
103
|
+
register_lazy_task("eval_framework.tasks.benchmarks.humaneval.HumanEvalBPB", registry=registry)
|
|
104
|
+
register_lazy_task("eval_framework.tasks.benchmarks.humaneval.HumanEval_OLMES", registry=registry)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def register_mbpp_tasks(registry: Registry) -> None:
|
|
108
|
+
"""Register mbpp benchmark tasks."""
|
|
109
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPPBPB", registry=registry)
|
|
110
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPP_OLMES", registry=registry)
|
|
111
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPP_EvalPlus", registry=registry)
|
|
112
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPP_BPB_EvalPlus", registry=registry)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def register_bigcodebench_tasks(registry: Registry) -> None:
|
|
116
|
+
"""Register bigcodebench benchmark tasks."""
|
|
117
|
+
register_lazy_task("eval_framework.tasks.benchmarks.bigcodebench.BigCodeBench_OLMES", registry=registry)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def register_arc_de_tasks(registry: Registry) -> None:
|
|
121
|
+
"""Register arc_de benchmark tasks."""
|
|
122
|
+
register_lazy_task("eval_framework.tasks.benchmarks.arc_de.ARC_DE", registry=registry)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def register_copa_tasks(registry: Registry) -> None:
|
|
126
|
+
"""Register copa benchmark tasks."""
|
|
127
|
+
register_lazy_task("eval_framework.tasks.benchmarks.copa.COPA_OLMES", registry=registry)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def register_goldenswag_tasks(registry: Registry) -> None:
|
|
131
|
+
"""Register goldenswag benchmark tasks."""
|
|
132
|
+
register_lazy_task("eval_framework.tasks.benchmarks.goldenswag.GOLDENSWAG", registry=registry)
|
|
133
|
+
register_lazy_task("eval_framework.tasks.benchmarks.goldenswag.GOLDENSWAG_IDK", registry=registry)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def register_ifeval_tasks(registry: Registry) -> None:
|
|
137
|
+
"""Register ifeval benchmark tasks."""
|
|
138
|
+
register_lazy_task("eval_framework.tasks.benchmarks.ifeval.IFEval", registry=registry)
|
|
139
|
+
register_lazy_task("eval_framework.tasks.benchmarks.ifeval.IFEvalDe", registry=registry)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def register_multipl_e_tasks(registry: Registry) -> None:
|
|
143
|
+
"""Register multipl_e benchmark tasks."""
|
|
144
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalCpp", registry=registry)
|
|
145
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalJava", registry=registry)
|
|
146
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalJs", registry=registry)
|
|
147
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalPhp", registry=registry)
|
|
148
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalRs", registry=registry)
|
|
149
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalSh", registry=registry)
|
|
150
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPCpp", registry=registry)
|
|
151
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPJava", registry=registry)
|
|
152
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPJs", registry=registry)
|
|
153
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPPhp", registry=registry)
|
|
154
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPRs", registry=registry)
|
|
155
|
+
register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPSh", registry=registry)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def register_mmlu_pro_tasks(registry: Registry) -> None:
|
|
159
|
+
"""Register mmlu_pro benchmark tasks."""
|
|
160
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu_pro.MMLU_PRO", registry=registry)
|
|
161
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu_pro.MMLU_PRO_IDK", registry=registry)
|
|
162
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu_pro.MMLU_PRO_OLMES", registry=registry)
|
|
163
|
+
register_lazy_task("eval_framework.tasks.benchmarks.mmlu_pro.MMLU_PRO_COT", registry=registry)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def register_global_mmlu_tasks(registry: Registry) -> None:
|
|
167
|
+
"""Register global_mmlu benchmark tasks."""
|
|
168
|
+
register_lazy_task("eval_framework.tasks.benchmarks.global_mmlu.GlobalMMLU", registry=registry)
|
|
169
|
+
register_lazy_task("eval_framework.tasks.benchmarks.global_mmlu.GlobalMMLU_German", registry=registry)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def register_sciq_tasks(registry: Registry) -> None:
|
|
173
|
+
"""Register sciq benchmark tasks."""
|
|
174
|
+
register_lazy_task("eval_framework.tasks.benchmarks.sciq.SCIQ_OLMES", registry=registry)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def register_squad_tasks(registry: Registry) -> None:
|
|
178
|
+
"""Register squad benchmark tasks."""
|
|
179
|
+
register_lazy_task("eval_framework.tasks.benchmarks.squad.SQuAD_OLMES", registry=registry)
|
|
180
|
+
register_lazy_task("eval_framework.tasks.benchmarks.squad.SQuAD2_MA", registry=registry)
|
|
181
|
+
register_lazy_task("eval_framework.tasks.benchmarks.squad.SQuAD2_MA_NO_SYSPROMPT", registry=registry)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def register_winogrande_tasks(registry: Registry) -> None:
|
|
185
|
+
"""Register winogrande benchmark tasks."""
|
|
186
|
+
register_lazy_task("eval_framework.tasks.benchmarks.winogrande.WINOGRANDECloze", registry=registry)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def register_csqa_tasks(registry: Registry) -> None:
|
|
190
|
+
"""Register csqa benchmark tasks."""
|
|
191
|
+
register_lazy_task("eval_framework.tasks.benchmarks.csqa.CommonsenseQAMC_OLMES", registry=registry)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
def register_drop_tasks(registry: Registry) -> None:
|
|
195
|
+
"""Register drop benchmark tasks."""
|
|
196
|
+
register_lazy_task("eval_framework.tasks.benchmarks.drop.DropCompletion_OLMES", registry=registry)
|
|
197
|
+
register_lazy_task("eval_framework.tasks.benchmarks.drop.DropMC_OLMES", registry=registry)
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def register_naturalqs_open_tasks(registry: Registry) -> None:
|
|
201
|
+
"""Register naturalqs_open benchmark tasks."""
|
|
202
|
+
register_lazy_task("eval_framework.tasks.benchmarks.naturalqs_open.NaturalQsOpen", registry=registry)
|
|
203
|
+
register_lazy_task("eval_framework.tasks.benchmarks.naturalqs_open.NaturalQsOpenMC_OLMES", registry=registry)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def register_social_iqa_tasks(registry: Registry) -> None:
|
|
207
|
+
"""Register social_iqa benchmark tasks."""
|
|
208
|
+
register_lazy_task("eval_framework.tasks.benchmarks.social_iqa.SocialIQAMC_OLMES", registry=registry)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def register_medqa_tasks(registry: Registry) -> None:
|
|
212
|
+
"""Register medqa benchmark tasks."""
|
|
213
|
+
register_lazy_task("eval_framework.tasks.benchmarks.medqa.MedQAMC_OLMES", registry=registry)
|