eval-framework 0.6.4__tar.gz → 0.8.0__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.6.4 → eval_framework-0.8.0}/PKG-INFO +10 -15
- {eval_framework-0.6.4 → eval_framework-0.8.0}/README.md +6 -3
- {eval_framework-0.6.4 → eval_framework-0.8.0}/pyproject.toml +12 -21
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/llm/models.py +0 -5
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/language_checker.py +6 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/run.py +17 -13
- eval_framework-0.8.0/src/eval_framework/tasks/__init__.py +6 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/base.py +18 -33
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/copa.py +3 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/csqa.py +6 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/drop.py +6 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/gpqa.py +3 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/humaneval.py +3 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/math_reasoning.py +9 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mbpp.py +1 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/medqa.py +4 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +2 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/piqa.py +4 -5
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/sciq.py +2 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/social_iqa.py +2 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/squad.py +5 -3
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/winogrande.py +2 -0
- eval_framework-0.8.0/src/eval_framework/tasks/dataset_revisions.py +84 -0
- eval_framework-0.8.0/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +3 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/hf-dataset-revisions.json +1 -2
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/registry.py +0 -20
- eval_framework-0.8.0/src/eval_framework/tasks/task_names.py +85 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/utils.py +5 -2
- eval_framework-0.6.4/src/eval_framework/llm/mistral.py +0 -88
- eval_framework-0.6.4/src/eval_framework/llm/vllm.py +0 -565
- eval_framework-0.6.4/src/eval_framework/llm/vllm_local_server.py +0 -222
- eval_framework-0.6.4/src/eval_framework/metrics/completion/bleu.py +0 -76
- eval_framework-0.6.4/src/eval_framework/metrics/completion/chrf.py +0 -62
- eval_framework-0.6.4/src/eval_framework/metrics/completion/ter.py +0 -67
- eval_framework-0.6.4/src/eval_framework/tasks/__init__.py +0 -12
- eval_framework-0.6.4/src/eval_framework/tasks/dataset_revisions.py +0 -145
- eval_framework-0.6.4/src/eval_framework/tasks/task-dataset-revisions.json +0 -66
- eval_framework-0.6.4/src/eval_framework/tasks/task_names.py +0 -284
- {eval_framework-0.6.4 → eval_framework-0.8.0}/LICENSE +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/base_config.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/context/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/context/determined.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/context/eval.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/context/local.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/evaluation_generator.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/exceptions.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/external/drop_process_results.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/README.md +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/llm/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/llm/aleph_alpha.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/llm/base.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/llm/huggingface.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/llm/openai.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/logger.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/main.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/base.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/csv_format.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/f1.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/format_checker.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/ifeval.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/json_format.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/length_control.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/repetition.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/text_counter.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/base.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/language.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/models.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/utils.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/py.typed +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/response_generator.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/result_processors/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/result_processors/base.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/result_processors/hf_uploader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/result_processors/result_processor.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/run_direct.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/shared/types.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/suite.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/triviaqa.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/eval_config.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/perturbation.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/task_loader.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/task_style.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/constants.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/file_ops.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/generate_task_docs.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/helpers.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/logging.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/packaging.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/utils/tqdm_handler.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/template_formatting/README.md +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/template_formatting/__init__.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/template_formatting/formatter.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/src/template_formatting/mistral_formatter.py +0 -0
- {eval_framework-0.6.4 → eval_framework-0.8.0}/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.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Evaluation Framework
|
|
5
5
|
Author: Aleph Alpha Research
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,6 @@ Requires-Dist: pyyaml>=6.0.3,<7
|
|
|
215
215
|
Requires-Dist: xmltodict>=1.0.4,<1.1
|
|
216
216
|
Requires-Dist: pydantic>=2.13.4,<3
|
|
217
217
|
Requires-Dist: datasets>=5.0.0,<6
|
|
218
|
-
Requires-Dist: sacrebleu>=2.6.0,<3
|
|
219
218
|
Requires-Dist: pycountry>=26.2.16,<27
|
|
220
219
|
Requires-Dist: nltk>=3.10.0,<4
|
|
221
220
|
Requires-Dist: python-dotenv>=1.2.2,<2
|
|
@@ -231,20 +230,17 @@ Requires-Dist: llm-sandbox[docker]==0.3.39
|
|
|
231
230
|
Requires-Dist: jsonlines>=4,<5
|
|
232
231
|
Requires-Dist: lxml>=6.1.1,<7
|
|
233
232
|
Requires-Dist: python-iso639>=2026.4.20
|
|
234
|
-
Requires-Dist: wandb>=0.28.
|
|
233
|
+
Requires-Dist: wandb>=0.28.1,<1
|
|
235
234
|
Requires-Dist: boto3>=1.43.19,<2
|
|
236
235
|
Requires-Dist: numpy>=2.2.6
|
|
237
236
|
Requires-Dist: antlr4-python3-runtime==4.11.0
|
|
238
237
|
Requires-Dist: scipy>=1.18.0,<2
|
|
239
238
|
Requires-Dist: accelerate ; extra == 'accelerate'
|
|
240
|
-
Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,
|
|
239
|
+
Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,optional] ; extra == 'all'
|
|
241
240
|
Requires-Dist: aleph-alpha-client>=11.5.1 ; extra == 'api'
|
|
242
241
|
Requires-Dist: determined>=0.38.1,<0.39 ; extra == 'determined'
|
|
243
242
|
Requires-Dist: tensorboard==2.21.0 ; extra == 'determined'
|
|
244
|
-
Requires-Dist:
|
|
245
|
-
Requires-Dist: huggingface-hub>=0.36.2,<0.37 ; extra == 'mistral'
|
|
246
|
-
Requires-Dist: eval-framework[vllm] ; extra == 'mistral'
|
|
247
|
-
Requires-Dist: openai>=1.109.1,<3 ; extra == 'openai'
|
|
243
|
+
Requires-Dist: openai>=2.46.0,<3 ; extra == 'openai'
|
|
248
244
|
Requires-Dist: tiktoken>=0.13.0,<1 ; extra == 'openai'
|
|
249
245
|
Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
|
|
250
246
|
Requires-Dist: transformers>=4.45.2,<5 ; extra == 'optional'
|
|
@@ -252,19 +248,15 @@ Requires-Dist: jinja2>=3.1.6,<4 ; extra == 'optional'
|
|
|
252
248
|
Requires-Dist: transformers>=4.45.2,<5 ; extra == 'transformers'
|
|
253
249
|
Requires-Dist: torch>=2.5,<3 ; extra == 'transformers'
|
|
254
250
|
Requires-Dist: accelerate>=1.14.0,<2 ; extra == 'transformers'
|
|
255
|
-
Requires-Dist: vllm>=0.22,<0.23 ; extra == 'vllm'
|
|
256
|
-
Requires-Dist: torch>=2.5,<3 ; extra == 'vllm'
|
|
257
251
|
Requires-Python: >=3.12, <3.13
|
|
258
252
|
Project-URL: repository, https://github.com/Aleph-Alpha-Research/eval-framework
|
|
259
253
|
Provides-Extra: accelerate
|
|
260
254
|
Provides-Extra: all
|
|
261
255
|
Provides-Extra: api
|
|
262
256
|
Provides-Extra: determined
|
|
263
|
-
Provides-Extra: mistral
|
|
264
257
|
Provides-Extra: openai
|
|
265
258
|
Provides-Extra: optional
|
|
266
259
|
Provides-Extra: transformers
|
|
267
|
-
Provides-Extra: vllm
|
|
268
260
|
Description-Content-Type: text/markdown
|
|
269
261
|
|
|
270
262
|
<!-- Badges -->
|
|
@@ -317,12 +309,13 @@ pip install eval_framework
|
|
|
317
309
|
There are optional extras available to unlock specific features of the library:
|
|
318
310
|
- `api` for inference using the aleph-alpha client.
|
|
319
311
|
- `determined` for running jobs via determined.
|
|
320
|
-
- `
|
|
312
|
+
- `openai` for inference against OpenAI-compatible HTTP endpoints.
|
|
321
313
|
- `transformers` for inference using the transformers library.
|
|
322
|
-
- `vllm` for inference via VLLM.
|
|
323
314
|
|
|
324
315
|
As a short hand, the `all` extra installs all of the above.
|
|
325
316
|
|
|
317
|
+
For local vLLM inference, see the sibling [`local-vllm-server/`](./local-vllm-server/README.md) package.
|
|
318
|
+
|
|
326
319
|
We use `uv` to better resolve dependencies when downloading the extras. You can install uv with:
|
|
327
320
|
```bash
|
|
328
321
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -523,8 +516,10 @@ If you use `eval-framework` in your research, please cite:
|
|
|
523
516
|
|
|
524
517
|
```bibtex
|
|
525
518
|
@software{eval_framework,
|
|
519
|
+
author={Aleph Alpha Research},
|
|
526
520
|
title={Aleph Alpha Eval Framework},
|
|
527
|
-
year={
|
|
521
|
+
year={2026},
|
|
522
|
+
version = {x.y.z},
|
|
528
523
|
url={https://github.com/Aleph-Alpha-Research/eval-framework}
|
|
529
524
|
}
|
|
530
525
|
```
|
|
@@ -48,12 +48,13 @@ pip install eval_framework
|
|
|
48
48
|
There are optional extras available to unlock specific features of the library:
|
|
49
49
|
- `api` for inference using the aleph-alpha client.
|
|
50
50
|
- `determined` for running jobs via determined.
|
|
51
|
-
- `
|
|
51
|
+
- `openai` for inference against OpenAI-compatible HTTP endpoints.
|
|
52
52
|
- `transformers` for inference using the transformers library.
|
|
53
|
-
- `vllm` for inference via VLLM.
|
|
54
53
|
|
|
55
54
|
As a short hand, the `all` extra installs all of the above.
|
|
56
55
|
|
|
56
|
+
For local vLLM inference, see the sibling [`local-vllm-server/`](./local-vllm-server/README.md) package.
|
|
57
|
+
|
|
57
58
|
We use `uv` to better resolve dependencies when downloading the extras. You can install uv with:
|
|
58
59
|
```bash
|
|
59
60
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
@@ -254,8 +255,10 @@ If you use `eval-framework` in your research, please cite:
|
|
|
254
255
|
|
|
255
256
|
```bibtex
|
|
256
257
|
@software{eval_framework,
|
|
258
|
+
author={Aleph Alpha Research},
|
|
257
259
|
title={Aleph Alpha Eval Framework},
|
|
258
|
-
year={
|
|
260
|
+
year={2026},
|
|
261
|
+
version = {x.y.z},
|
|
259
262
|
url={https://github.com/Aleph-Alpha-Research/eval-framework}
|
|
260
263
|
}
|
|
261
264
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "eval-framework"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.8.0"
|
|
4
4
|
description = "Evaluation Framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -22,7 +22,6 @@ dependencies = [
|
|
|
22
22
|
"xmltodict>=1.0.4,<1.1",
|
|
23
23
|
"pydantic>=2.13.4,<3",
|
|
24
24
|
"datasets>=5.0.0,<6",
|
|
25
|
-
"sacrebleu>=2.6.0,<3",
|
|
26
25
|
"pycountry>=26.2.16,<27",
|
|
27
26
|
"nltk>=3.10.0,<4",
|
|
28
27
|
"python-dotenv>=1.2.2,<2",
|
|
@@ -38,7 +37,7 @@ dependencies = [
|
|
|
38
37
|
"jsonlines>=4,<5",
|
|
39
38
|
"lxml>=6.1.1,<7",
|
|
40
39
|
"python-iso639>=2026.4.20",
|
|
41
|
-
"wandb>=0.28.
|
|
40
|
+
"wandb>=0.28.1,<1",
|
|
42
41
|
"boto3>=1.43.19,<2",
|
|
43
42
|
"numpy>=2.2.6",
|
|
44
43
|
# is a dependency of sympy, but not explicitly listed in the requirements.txt
|
|
@@ -55,7 +54,7 @@ determined = [
|
|
|
55
54
|
]
|
|
56
55
|
api = ["aleph-alpha-client>=11.5.1"]
|
|
57
56
|
openai = [
|
|
58
|
-
"openai>=
|
|
57
|
+
"openai>=2.46.0,<3",
|
|
59
58
|
"tiktoken>=0.13.0,<1",
|
|
60
59
|
"transformers>=4.45.2,<5",
|
|
61
60
|
]
|
|
@@ -65,22 +64,15 @@ transformers = [
|
|
|
65
64
|
"accelerate>=1.14.0,<2",
|
|
66
65
|
]
|
|
67
66
|
accelerate = ["accelerate"]
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"torch>=2.5,<3"
|
|
71
|
-
]
|
|
72
|
-
mistral = [
|
|
73
|
-
"mistral-common>=1.11.5,<2",
|
|
74
|
-
"huggingface-hub>=0.36.2,<0.37",
|
|
75
|
-
"eval_framework[vllm]",
|
|
76
|
-
]
|
|
67
|
+
|
|
68
|
+
|
|
77
69
|
# from template-formatting
|
|
78
70
|
optional = [
|
|
79
71
|
"transformers>=4.45.2,<5",
|
|
80
72
|
"jinja2>=3.1.6,<4"
|
|
81
73
|
]
|
|
82
74
|
all = [
|
|
83
|
-
"eval_framework[determined,api,openai,transformers,accelerate,
|
|
75
|
+
"eval_framework[determined,api,openai,transformers,accelerate,optional]"
|
|
84
76
|
]
|
|
85
77
|
|
|
86
78
|
[project.urls]
|
|
@@ -91,16 +83,16 @@ eval_framework = "eval_framework.run:run"
|
|
|
91
83
|
|
|
92
84
|
[dependency-groups]
|
|
93
85
|
dev = [
|
|
94
|
-
"mypy>=2.
|
|
86
|
+
"mypy>=2.3.0,<3",
|
|
95
87
|
"pytest>=9.1.1,<10",
|
|
96
88
|
"pytest-mock>=3.15.1",
|
|
97
89
|
"pytest-xdist>=3.8.0,<4",
|
|
98
90
|
"pytest-sugar>1.1,<2",
|
|
99
91
|
"types-pyyaml>=6.0.12.20260518,<7",
|
|
100
|
-
"types-python-dateutil>=2.9.0.
|
|
101
|
-
"types-requests>=2.33.0.
|
|
102
|
-
"plotly>=6.
|
|
103
|
-
"ruff>=0.15.
|
|
92
|
+
"types-python-dateutil>=2.9.0.20260716,<3",
|
|
93
|
+
"types-requests>=2.33.0.20260712,<3",
|
|
94
|
+
"plotly>=6.9.0,<7",
|
|
95
|
+
"ruff>=0.15.22",
|
|
104
96
|
"pip-licenses>=5.5.5",
|
|
105
97
|
]
|
|
106
98
|
flash-attn = [
|
|
@@ -109,7 +101,7 @@ flash-attn = [
|
|
|
109
101
|
]
|
|
110
102
|
|
|
111
103
|
[build-system]
|
|
112
|
-
requires = ["uv_build>=0.11.
|
|
104
|
+
requires = ["uv_build>=0.11.29,<0.11.30"]
|
|
113
105
|
build-backend = "uv_build"
|
|
114
106
|
|
|
115
107
|
[tool.uv.build-backend]
|
|
@@ -161,7 +153,6 @@ markers = [
|
|
|
161
153
|
"cpu_slow: runs for a long time (on CPU)",
|
|
162
154
|
"slow_download: smoke tests that download large datasets (>15s); excluded from CI, run manually with -m slow_download",
|
|
163
155
|
"external_api: needs external services for execution",
|
|
164
|
-
"vllm: tests that specifically require vLLM functionality",
|
|
165
156
|
"formatter_hash: formatter consistency tests using hash comparisons",
|
|
166
157
|
]
|
|
167
158
|
filterwarnings = [
|
|
@@ -18,11 +18,6 @@ if is_extra_installed(extra="transformers"):
|
|
|
18
18
|
Qwen3_0_6B,
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
-
if is_extra_installed("mistral"):
|
|
22
|
-
from eval_framework.llm.mistral import MagistralVLLM # noqa F401
|
|
23
21
|
|
|
24
22
|
if is_extra_installed("openai"):
|
|
25
23
|
from eval_framework.llm.openai import OpenAIModel # noqa F401
|
|
26
|
-
|
|
27
|
-
if is_extra_installed("vllm"):
|
|
28
|
-
from eval_framework.llm.vllm import VLLMRegistryModel, Qwen3_0_6B_VLLM, Qwen3_0_6B_VLLM_No_Thinking # noqa F401
|
|
@@ -41,6 +41,9 @@ class LanguageConsistencyChecker(BaseMetric[Completion]):
|
|
|
41
41
|
if response.error is not None:
|
|
42
42
|
return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=response.error)]
|
|
43
43
|
|
|
44
|
+
if not response.completion:
|
|
45
|
+
return [] # No completion means no language to detect, so it is excluded from aggregation
|
|
46
|
+
|
|
44
47
|
completion_language = response.get_completion_language()
|
|
45
48
|
target_language = response.get_instruction_language()
|
|
46
49
|
if completion_language == target_language == "":
|
|
@@ -57,6 +60,9 @@ class LanguageRawConsistencyChecker(BaseMetric[Completion]):
|
|
|
57
60
|
if response.error is not None:
|
|
58
61
|
return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=response.error)]
|
|
59
62
|
|
|
63
|
+
if not response.raw_completion:
|
|
64
|
+
return [] # No completion means no language to detect, so it is excluded from aggregation
|
|
65
|
+
|
|
60
66
|
raw_completion_language = response.get_raw_completion_language()
|
|
61
67
|
target_language = response.get_instruction_language()
|
|
62
68
|
|
|
@@ -13,6 +13,7 @@ except ImportError:
|
|
|
13
13
|
from eval_framework.context.local import LocalContext
|
|
14
14
|
from eval_framework.main import main
|
|
15
15
|
from eval_framework.tasks.task_loader import load_extra_tasks
|
|
16
|
+
from eval_framework.tasks.utils import close_pools
|
|
16
17
|
from eval_framework.utils.logging import setup_logging
|
|
17
18
|
|
|
18
19
|
logger = logging.getLogger(__name__)
|
|
@@ -392,19 +393,22 @@ def _run_single_task(kwargs: dict) -> None:
|
|
|
392
393
|
def run_with_kwargs(kwargs: dict) -> None:
|
|
393
394
|
task_suite_path = kwargs.pop("task_suite", None)
|
|
394
395
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
396
|
+
try:
|
|
397
|
+
if task_suite_path is not None:
|
|
398
|
+
from eval_framework.suite import TaskSuite, run_suite
|
|
399
|
+
|
|
400
|
+
output_dir = kwargs.get("output_dir", "outputs")
|
|
401
|
+
log_level = kwargs.get("verbosity", 1)
|
|
402
|
+
setup_logging(output_dir, log_level=log_level)
|
|
403
|
+
|
|
404
|
+
suite = TaskSuite.load(task_suite_path)
|
|
405
|
+
logger.info(f"Loaded task suite '{suite.name}' from {task_suite_path}")
|
|
406
|
+
result = run_suite(suite, kwargs)
|
|
407
|
+
logger.info(f"Suite '{suite.name}' completed. Aggregates: {result.aggregates}")
|
|
408
|
+
else:
|
|
409
|
+
_run_single_task(kwargs)
|
|
410
|
+
finally:
|
|
411
|
+
close_pools()
|
|
408
412
|
|
|
409
413
|
|
|
410
414
|
def run() -> None:
|
|
@@ -10,12 +10,10 @@ from typing import TYPE_CHECKING, Any, Self, TypeVar
|
|
|
10
10
|
|
|
11
11
|
import iso639
|
|
12
12
|
from datasets import DatasetDict, DownloadConfig, load_dataset
|
|
13
|
-
from huggingface_hub import HfApi
|
|
14
|
-
from huggingface_hub.errors import RevisionNotFoundError
|
|
15
13
|
from pydantic import BaseModel, ConfigDict
|
|
16
14
|
|
|
17
15
|
from eval_framework.shared.types import BaseMetricContext, Completion, Error, RawCompletion
|
|
18
|
-
from eval_framework.tasks.dataset_revisions import
|
|
16
|
+
from eval_framework.tasks.dataset_revisions import pinned_revision
|
|
19
17
|
from eval_framework.tasks.utils import classproperty, raise_errors
|
|
20
18
|
from template_formatting.formatter import Message, Role
|
|
21
19
|
|
|
@@ -93,7 +91,6 @@ class BaseTask[SubjectType](ABC):
|
|
|
93
91
|
SAMPLE_SPLIT: str
|
|
94
92
|
FEWSHOT_SPLIT: str
|
|
95
93
|
SUBJECTS: list[SubjectType]
|
|
96
|
-
HF_REVISION: str | None = None # tag name, or branch name, or commit hash to ensure reproducibility
|
|
97
94
|
|
|
98
95
|
# The lock file this task resolves its pinned dataset revision from, keyed by ``DATASET_PATH``.
|
|
99
96
|
# Each task sets this explicitly: point it at a lock file (e.g. ``HF_REVISIONS_LOCKFILE`` or a
|
|
@@ -118,15 +115,18 @@ class BaseTask[SubjectType](ABC):
|
|
|
118
115
|
self.user_prompt_suffix: str | None = None
|
|
119
116
|
self.stop_sequences: list[str] | None = None
|
|
120
117
|
self.max_tokens: int | None = None
|
|
121
|
-
self._apply_hf_revision()
|
|
118
|
+
self.hf_revision: str | None = self._apply_hf_revision()
|
|
122
119
|
|
|
123
|
-
def _apply_hf_revision(self, custom_hf_revision: str | None = None) -> None:
|
|
124
|
-
# Precedence: CLI/config override >
|
|
125
|
-
#
|
|
120
|
+
def _apply_hf_revision(self, custom_hf_revision: str | None = None) -> str | None:
|
|
121
|
+
# Precedence: CLI/config override > REVISION_LOCKFILE pin.
|
|
122
|
+
# Tasks without a Hugging Face dataset set REVISION_LOCKFILE to None and are not pinned.
|
|
126
123
|
if custom_hf_revision:
|
|
127
|
-
|
|
128
|
-
elif self.
|
|
129
|
-
self.
|
|
124
|
+
hf_revision = custom_hf_revision
|
|
125
|
+
elif self.REVISION_LOCKFILE is not None:
|
|
126
|
+
hf_revision = pinned_revision(self.REVISION_LOCKFILE, self.DATASET_PATH)
|
|
127
|
+
else:
|
|
128
|
+
hf_revision = None
|
|
129
|
+
return hf_revision
|
|
130
130
|
|
|
131
131
|
@classmethod
|
|
132
132
|
def with_overwrite(
|
|
@@ -148,7 +148,7 @@ class BaseTask[SubjectType](ABC):
|
|
|
148
148
|
logger.info(f"Setting SUBJECTS to `{filtered_subjects}` for the task {instance.__class__.__name__}")
|
|
149
149
|
instance.SUBJECTS = filtered_subjects # type: ignore[assignment]
|
|
150
150
|
|
|
151
|
-
instance._apply_hf_revision(custom_hf_revision)
|
|
151
|
+
instance.hf_revision = instance._apply_hf_revision(custom_hf_revision)
|
|
152
152
|
|
|
153
153
|
return instance
|
|
154
154
|
|
|
@@ -187,29 +187,14 @@ class BaseTask[SubjectType](ABC):
|
|
|
187
187
|
return custom_subjects # type: ignore[return-value]
|
|
188
188
|
|
|
189
189
|
def _load_hf_dataset(self, **kwargs: Any) -> Any:
|
|
190
|
-
# Check if the HF_REVISION is valid before loading the dataset
|
|
191
|
-
if self.HF_REVISION:
|
|
192
|
-
try:
|
|
193
|
-
_ = HfApi().dataset_info(repo_id=kwargs["path"], revision=self.HF_REVISION, timeout=100.0)
|
|
194
|
-
except Exception as e:
|
|
195
|
-
if isinstance(e, RevisionNotFoundError):
|
|
196
|
-
raise e
|
|
197
|
-
|
|
198
190
|
cache_dir: str = os.environ.get("HF_DATASET_CACHE_DIR", f"{Path.home()}/.cache/huggingface/datasets")
|
|
199
191
|
download_config = DownloadConfig(cache_dir=cache_dir, max_retries=5)
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
)
|
|
207
|
-
except Exception:
|
|
208
|
-
return load_dataset(
|
|
209
|
-
**kwargs,
|
|
210
|
-
revision=self.HF_REVISION,
|
|
211
|
-
cache_dir=f"{Path.home()}/.cache/eval-framework",
|
|
212
|
-
)
|
|
192
|
+
return load_dataset(
|
|
193
|
+
**kwargs,
|
|
194
|
+
revision=self.hf_revision,
|
|
195
|
+
cache_dir=cache_dir,
|
|
196
|
+
download_config=download_config,
|
|
197
|
+
)
|
|
213
198
|
|
|
214
199
|
def _shuffle_splits(self, hf_dataset: DatasetDict) -> dict[str, Any]:
|
|
215
200
|
dataset = {}
|
|
@@ -17,6 +17,8 @@ class COPAEvalHarness(BaseTask[str]):
|
|
|
17
17
|
This version uses samples from the validation split as evaluation examples (same as lm-eval-harness).
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
21
|
+
|
|
20
22
|
NAME = "COPAEvalHarness"
|
|
21
23
|
DATASET_PATH = "aps/super_glue"
|
|
22
24
|
SAMPLE_SPLIT = "validation" # 100 examples (same split as lm-eval)
|
|
@@ -88,6 +90,7 @@ class COPA(COPAEvalHarness):
|
|
|
88
90
|
|
|
89
91
|
|
|
90
92
|
class COPA_IDKEvalHarness(COPAEvalHarness):
|
|
93
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
91
94
|
NAME = "COPA_IDKEvalHarness"
|
|
92
95
|
METRICS = [
|
|
93
96
|
AccuracyLoglikelihood,
|
|
@@ -13,6 +13,8 @@ from eval_framework.tasks.utils import get_n_letters
|
|
|
13
13
|
class CommonsenseQACloze(BaseTask[str]):
|
|
14
14
|
"""CommonsenseQA dataset: https://huggingface.co/datasets/tau/commonsense_qa"""
|
|
15
15
|
|
|
16
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
17
|
+
|
|
16
18
|
NAME = "CommonsenseQACloze"
|
|
17
19
|
DATASET_PATH = "tau/commonsense_qa"
|
|
18
20
|
SAMPLE_SPLIT = "validation"
|
|
@@ -53,6 +55,8 @@ class CommonsenseQAFullTextCloze(CommonsenseQACloze):
|
|
|
53
55
|
Scores loglikelihood over the full correct choice text; includes bits-per-byte.
|
|
54
56
|
"""
|
|
55
57
|
|
|
58
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
59
|
+
|
|
56
60
|
NAME = "CommonsenseQAFullTextCloze"
|
|
57
61
|
METRICS = [AccuracyLoglikelihood, AccuracyNormLoglikelihood, BitsPerByteLoglikelihood]
|
|
58
62
|
|
|
@@ -65,6 +69,8 @@ class CommonsenseQAFullTextCloze(CommonsenseQACloze):
|
|
|
65
69
|
class CommonsenseQAMC(CommonsenseQACloze):
|
|
66
70
|
"""Multiple-choice variant of CommonsenseQA where the model selects a letter (A-E)."""
|
|
67
71
|
|
|
72
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
73
|
+
|
|
68
74
|
NAME = "CommonsenseQAMC"
|
|
69
75
|
|
|
70
76
|
def _get_instruction_text(self, item: dict[str, Any]) -> str:
|
|
@@ -75,6 +75,8 @@ class DropCompletion(BaseTask[str]):
|
|
|
75
75
|
Uses DROP F1 and exact match. Stop at new paragraph or repeated prefixes.
|
|
76
76
|
"""
|
|
77
77
|
|
|
78
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
79
|
+
|
|
78
80
|
NAME = "DropCompletion"
|
|
79
81
|
DATASET_PATH = "EleutherAI/drop"
|
|
80
82
|
SAMPLE_SPLIT = "validation"
|
|
@@ -163,6 +165,8 @@ class DropCompletion_OLMES(DropCompletion):
|
|
|
163
165
|
class DropMC(BaseTask[str]):
|
|
164
166
|
"""Multiple-choice variant using allenai/drop-gen2mc (passage_original, question_original, choices, answerKey)."""
|
|
165
167
|
|
|
168
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
169
|
+
|
|
166
170
|
NAME = "DropMC"
|
|
167
171
|
DATASET_PATH = "allenai/drop-gen2mc"
|
|
168
172
|
SAMPLE_SPLIT = "validation"
|
|
@@ -233,6 +237,8 @@ class DropCloze(BaseTask[str]):
|
|
|
233
237
|
Includes BitsPerByte on the correct choice.
|
|
234
238
|
"""
|
|
235
239
|
|
|
240
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
241
|
+
|
|
236
242
|
NAME = "DropCloze"
|
|
237
243
|
DATASET_PATH = "allenai/drop-gen2mc"
|
|
238
244
|
SAMPLE_SPLIT = "validation"
|
|
@@ -22,6 +22,8 @@ logger = logging.getLogger(__name__)
|
|
|
22
22
|
class GPQA(BaseTask[str]):
|
|
23
23
|
"""GPQA dataset: https://huggingface.co/datasets/Idavidrein/gpqa"""
|
|
24
24
|
|
|
25
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
26
|
+
|
|
25
27
|
NAME = "GPQA"
|
|
26
28
|
DATASET_PATH = "Idavidrein/gpqa"
|
|
27
29
|
SAMPLE_SPLIT = "train"
|
|
@@ -172,6 +174,7 @@ class GPQA_IDK(GPQA):
|
|
|
172
174
|
|
|
173
175
|
|
|
174
176
|
class GPQA_COT(GPQA):
|
|
177
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
175
178
|
NAME = "GPQA_COT"
|
|
176
179
|
RESPONSE_TYPE = ResponseType.COMPLETION
|
|
177
180
|
METRICS = [AccuracyCompletion]
|
{eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/humaneval.py
RENAMED
|
@@ -28,6 +28,8 @@ class HumanEvalMetricContext(BaseMetricContext):
|
|
|
28
28
|
class HumanEval(BaseTask[str]):
|
|
29
29
|
"""HumanEval dataset: https://huggingface.co/datasets/openai/openai_humaneval/"""
|
|
30
30
|
|
|
31
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
32
|
+
|
|
31
33
|
NAME = "Human Eval"
|
|
32
34
|
DATASET_PATH = "openai/openai_humaneval"
|
|
33
35
|
SAMPLE_SPLIT = "test"
|
|
@@ -128,6 +130,7 @@ class HumanEval_OLMES(HumanEval):
|
|
|
128
130
|
|
|
129
131
|
class HumanEvalInstruct(HumanEval):
|
|
130
132
|
# See https://github.com/EleutherAI/lm-evaluation-harness/blob/main/lm_eval/tasks/humaneval/humaneval_instruct.yaml
|
|
133
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
131
134
|
NAME = "Human Eval Instruct"
|
|
132
135
|
CUE_PREFIX = "Here is the completed function:\n```python\n"
|
|
133
136
|
|
{eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/math_reasoning.py
RENAMED
|
@@ -482,6 +482,8 @@ class MATH500(MATHReasoning):
|
|
|
482
482
|
class MATH(MATHReasoning):
|
|
483
483
|
"""MATH dataset: https://huggingface.co/datasets/EleutherAI/hendrycks_math"""
|
|
484
484
|
|
|
485
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
486
|
+
|
|
485
487
|
NAME = "Math"
|
|
486
488
|
DATASET_PATH = "EleutherAI/hendrycks_math"
|
|
487
489
|
SAMPLE_SPLIT = "test"
|
|
@@ -559,6 +561,8 @@ class MATHMinervaEvalHarness(MATHReasoning):
|
|
|
559
561
|
Metrics: Exact Match, Exact Match (Flex) via MathMinervaCompletion.
|
|
560
562
|
"""
|
|
561
563
|
|
|
564
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
565
|
+
|
|
562
566
|
NAME = "MATHMinervaEvalHarness"
|
|
563
567
|
DATASET_PATH = "EleutherAI/hendrycks_math"
|
|
564
568
|
SAMPLE_SPLIT = "test"
|
|
@@ -595,6 +599,8 @@ class MATHMinerva(MATHMinervaEvalHarness):
|
|
|
595
599
|
"(The )Final Answer: The (final )answer is ...( I hope it is correct.)", where parentheses are optional.
|
|
596
600
|
"""
|
|
597
601
|
|
|
602
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
603
|
+
|
|
598
604
|
NAME = "MATHMinerva"
|
|
599
605
|
METRICS = [MathMinervaCompletionRelaxed]
|
|
600
606
|
|
|
@@ -610,6 +616,8 @@ class MATH500Minerva(MATHMinerva):
|
|
|
610
616
|
Uses HuggingFaceH4/MATH-500 which has a single 'default' config (no subject splits).
|
|
611
617
|
"""
|
|
612
618
|
|
|
619
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
620
|
+
|
|
613
621
|
NAME = "MATH500Minerva"
|
|
614
622
|
DATASET_PATH = "HuggingFaceH4/MATH-500"
|
|
615
623
|
SAMPLE_SPLIT = "test"
|
|
@@ -622,6 +630,7 @@ class MATH500Minerva(MATHMinerva):
|
|
|
622
630
|
|
|
623
631
|
|
|
624
632
|
class MATHLvl5(MATH):
|
|
633
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
625
634
|
NAME = "Math Lvl 5"
|
|
626
635
|
|
|
627
636
|
def _load_dataset(self, subject: SubjectType) -> None:
|
|
@@ -17,6 +17,8 @@ from eval_framework.tasks.utils import get_n_letters
|
|
|
17
17
|
class MedQACloze(BaseTask[str]):
|
|
18
18
|
"""MedQA cloze (loglikelihood over choice text)."""
|
|
19
19
|
|
|
20
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
21
|
+
|
|
20
22
|
NAME = "MedQACloze"
|
|
21
23
|
DATASET_PATH = "davidheineman/medqa-en"
|
|
22
24
|
SAMPLE_SPLIT = "test"
|
|
@@ -53,6 +55,8 @@ class MedQACloze(BaseTask[str]):
|
|
|
53
55
|
class MedQAMC(MedQACloze):
|
|
54
56
|
"""MedQA multiple choice (loglikelihood over A/B/C/D/...)."""
|
|
55
57
|
|
|
58
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
59
|
+
|
|
56
60
|
NAME = "MedQAMC"
|
|
57
61
|
|
|
58
62
|
def __init__(self, num_fewshot: int = 0) -> None:
|
{eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/naturalqs_open.py
RENAMED
|
@@ -82,11 +82,13 @@ class _NaturalQsOpenChoice_Base(BaseTask[str]):
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
class NaturalQsOpenCloze(_NaturalQsOpenChoice_Base):
|
|
85
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
85
86
|
NAME = "NaturalQsOpenCloze"
|
|
86
87
|
TASK_STYLER = ClozeStyle()
|
|
87
88
|
|
|
88
89
|
|
|
89
90
|
class NaturalQsOpenMC(_NaturalQsOpenChoice_Base):
|
|
91
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
90
92
|
NAME = "NaturalQsOpenMC"
|
|
91
93
|
TASK_STYLER = MCStyle()
|
|
92
94
|
|
|
@@ -9,18 +9,17 @@ from eval_framework.metrics.loglikelihood.confidence_weighted_accuracy import Co
|
|
|
9
9
|
from eval_framework.metrics.loglikelihood.dcs import DistributionalCorrectnessScore
|
|
10
10
|
from eval_framework.metrics.loglikelihood.ternary import TernaryScore
|
|
11
11
|
from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
|
|
12
|
-
from eval_framework.tasks.dataset_revisions import
|
|
12
|
+
from eval_framework.tasks.dataset_revisions import FROZEN_HF_REVISIONS_LOCKFILE
|
|
13
13
|
from eval_framework.tasks.utils import get_n_letters
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class PIQA(BaseTask[str]):
|
|
17
17
|
"""PIQA dataset: https://huggingface.co/datasets/ybisk/piqa"""
|
|
18
18
|
|
|
19
|
-
REVISION_LOCKFILE =
|
|
19
|
+
REVISION_LOCKFILE = FROZEN_HF_REVISIONS_LOCKFILE
|
|
20
20
|
|
|
21
21
|
NAME = "PIQA"
|
|
22
22
|
DATASET_PATH = "ybisk/piqa"
|
|
23
|
-
HF_REVISION = "6b3aceb3276e5ab7e51895d73151a718690af38c"
|
|
24
23
|
SAMPLE_SPLIT = "validation" # 1838 examples (same split as lm-eval)
|
|
25
24
|
FEWSHOT_SPLIT = "test" # 3084 examples
|
|
26
25
|
RESPONSE_TYPE = ResponseType.LOGLIKELIHOODS
|
|
@@ -54,7 +53,7 @@ class PIQA_OLMES(PIQA):
|
|
|
54
53
|
loglikelihood over " A"/" B".
|
|
55
54
|
"""
|
|
56
55
|
|
|
57
|
-
REVISION_LOCKFILE =
|
|
56
|
+
REVISION_LOCKFILE = FROZEN_HF_REVISIONS_LOCKFILE
|
|
58
57
|
|
|
59
58
|
NAME = "PIQA_OLMES"
|
|
60
59
|
SAMPLE_SPLIT = "train" # Use train split (largest) to best match OLMES, which evaluates all splits
|
|
@@ -79,7 +78,7 @@ class PIQA_OLMES(PIQA):
|
|
|
79
78
|
|
|
80
79
|
|
|
81
80
|
class PIQA_IDK(PIQA):
|
|
82
|
-
REVISION_LOCKFILE =
|
|
81
|
+
REVISION_LOCKFILE = FROZEN_HF_REVISIONS_LOCKFILE
|
|
83
82
|
NAME = "PIQA_IDK"
|
|
84
83
|
METRICS = [
|
|
85
84
|
AccuracyLoglikelihood,
|
|
@@ -95,6 +95,7 @@ class SCIQ_OLMES(SCIQ):
|
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
class SCIQ_IDK(SCIQ):
|
|
98
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
98
99
|
NAME = "SciQ_IDK"
|
|
99
100
|
METRICS = [
|
|
100
101
|
AccuracyLoglikelihood,
|
|
@@ -137,6 +138,7 @@ class SCIQEvalHarness(SCIQ):
|
|
|
137
138
|
|
|
138
139
|
|
|
139
140
|
class SCIQEvalHarness_IDK(SCIQEvalHarness):
|
|
141
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
140
142
|
NAME = "SciQ Eval Harness_IDK"
|
|
141
143
|
METRICS = [
|
|
142
144
|
AccuracyLoglikelihood,
|
{eval_framework-0.6.4 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/social_iqa.py
RENAMED
|
@@ -151,6 +151,8 @@ class SocialIQACloze(BaseTask[str]):
|
|
|
151
151
|
Social IQA cloze: loglikelihood over full answer text.
|
|
152
152
|
"""
|
|
153
153
|
|
|
154
|
+
REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
|
|
155
|
+
|
|
154
156
|
NAME = "SocialIQACloze"
|
|
155
157
|
DATASET_PATH = SOCIAL_I_QA_DATASET_PATH
|
|
156
158
|
SAMPLE_SPLIT = "validation"
|