eval-framework 0.11.3__tar.gz → 0.11.8__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.11.3 → eval_framework-0.11.8}/PKG-INFO +6 -6
- {eval_framework-0.11.3 → eval_framework-0.11.8}/pyproject.toml +7 -7
- {eval_framework-0.11.3 → eval_framework-0.11.8}/pyproject.toml.orig +7 -7
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/benchmarks/arc_de.py +21 -14
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/benchmarks/csqa_ellamind.py +38 -16
- eval_framework-0.11.8/src/eval_framework/benchmarks/gpqa_ellamind.py +90 -0
- eval_framework-0.11.8/src/eval_framework/benchmarks/hellaswag_ellamind.py +84 -0
- eval_framework-0.11.8/src/eval_framework/benchmarks/hle_ellamind.py +83 -0
- eval_framework-0.11.8/src/eval_framework/benchmarks/piqa_ellamind.py +95 -0
- eval_framework-0.11.8/src/eval_framework/benchmarks/simpleqa_ellamind.py +91 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/benchmarks/siqa_ellamind.py +38 -16
- eval_framework-0.11.8/src/eval_framework/benchmarks/winogrande_ellamind.py +116 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/composed.py +75 -89
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/contract.py +3 -1
- eval_framework-0.11.8/src/eval_framework/eval_kind.py +86 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/evaluation_generator.py +11 -5
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/dataset_loading.py +41 -1
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/markdown_doc.py +1 -1
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/task_names.py +15 -44
- eval_framework-0.11.3/src/eval_framework/benchmarks/piqa_ellamind.py +0 -66
- eval_framework-0.11.3/src/eval_framework/tasks/benchmarks/gpqa_ellamind.py +0 -114
- eval_framework-0.11.3/src/eval_framework/tasks/benchmarks/hellaswag_ellamind.py +0 -73
- eval_framework-0.11.3/src/eval_framework/tasks/benchmarks/hle_ellamind.py +0 -101
- eval_framework-0.11.3/src/eval_framework/tasks/benchmarks/simpleqa_ellamind.py +0 -94
- eval_framework-0.11.3/src/eval_framework/tasks/benchmarks/winogrande_ellamind.py +0 -140
- {eval_framework-0.11.3 → eval_framework-0.11.8}/LICENSE +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/README.md +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/base_config.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/benchmarks/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/choices.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/context/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/context/determined.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/context/eval.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/context/local.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/exceptions.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/external/drop_process_results.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/external/ifeval_impl/README.md +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/llm/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/llm/aleph_alpha.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/llm/base.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/llm/huggingface.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/llm/models.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/llm/openai.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/logger.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/main.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/base.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/csv_format.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/f1.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/format_checker.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/ifeval.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/json_format.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/language_checker.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/length_control.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/repetition.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/completion/text_counter.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/efficiency/token_counters.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/base.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/language.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/models.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/llm/utils.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/py.typed +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/response_generator.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/result_processors/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/result_processors/base.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/result_processors/hf_uploader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/result_processors/result_processor.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/run.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/run_direct.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/shared/errors.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/shared/types.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/subjects.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/suite.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/base.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/arc_ellamind.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/gpqa.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/gsm8k_ellamind.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/hendrycks_math_ellamind.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/humaneval_ellamind.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/mbpp_ellamind.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/dataset_revisions.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/eval_config.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/lazy.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/registry.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/task_loader.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/task_style.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/tasks/utils.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/utils/constants.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/utils/file_ops.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/utils/helpers.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/utils/logging.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/utils/packaging.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/utils/tqdm_handler.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/template_formatting/README.md +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/template_formatting/__init__.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/template_formatting/formatter.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/src/template_formatting/mistral_formatter.py +0 -0
- {eval_framework-0.11.3 → eval_framework-0.11.8}/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.11.
|
|
3
|
+
Version: 0.11.8
|
|
4
4
|
Summary: Evaluation Framework
|
|
5
5
|
Author: Aleph Alpha Research
|
|
6
6
|
License: Apache License
|
|
@@ -215,7 +215,7 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
215
215
|
Classifier: Typing :: Typed
|
|
216
216
|
Requires-Dist: pyyaml>=6.0.3,<7
|
|
217
217
|
Requires-Dist: xmltodict>=1.0.4,<1.1
|
|
218
|
-
Requires-Dist: pydantic>=2.13.
|
|
218
|
+
Requires-Dist: pydantic>=2.13.5,<3
|
|
219
219
|
Requires-Dist: datasets>=5.0.1,<6
|
|
220
220
|
Requires-Dist: pycountry>=26.2.16,<27
|
|
221
221
|
Requires-Dist: nltk>=3.10.3,<4
|
|
@@ -229,10 +229,10 @@ Requires-Dist: psycopg2-binary>=2.9.12,<3
|
|
|
229
229
|
Requires-Dist: sympy>=1.14.0,<2
|
|
230
230
|
Requires-Dist: llm-sandbox[docker]==0.3.44
|
|
231
231
|
Requires-Dist: jsonlines>=4,<5
|
|
232
|
-
Requires-Dist: lxml>=6.1.
|
|
232
|
+
Requires-Dist: lxml>=6.1.3,<7
|
|
233
233
|
Requires-Dist: python-iso639>=2026.7.23
|
|
234
234
|
Requires-Dist: wandb>=0.29.0,<1
|
|
235
|
-
Requires-Dist: boto3>=1.43.
|
|
235
|
+
Requires-Dist: boto3>=1.43.87,<2
|
|
236
236
|
Requires-Dist: numpy>=2.5.2
|
|
237
237
|
Requires-Dist: antlr4-python3-runtime==4.11.0
|
|
238
238
|
Requires-Dist: scipy>=1.18.1,<2
|
|
@@ -241,13 +241,13 @@ Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,opti
|
|
|
241
241
|
Requires-Dist: aleph-alpha-client>=11.5.1 ; extra == 'api'
|
|
242
242
|
Requires-Dist: determined>=0.38.1,<0.39 ; extra == 'determined'
|
|
243
243
|
Requires-Dist: tensorboard==2.21.0 ; extra == 'determined'
|
|
244
|
-
Requires-Dist: openai>=3.
|
|
244
|
+
Requires-Dist: openai>=3.7.0,<4 ; extra == 'openai'
|
|
245
245
|
Requires-Dist: tiktoken>=0.14.0,<1 ; extra == 'openai'
|
|
246
246
|
Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
|
|
247
247
|
Requires-Dist: transformers>=4.45.2,<5 ; extra == 'optional'
|
|
248
248
|
Requires-Dist: jinja2>=3.1.6,<4 ; extra == 'optional'
|
|
249
249
|
Requires-Dist: transformers>=4.45.2,<5 ; extra == 'transformers'
|
|
250
|
-
Requires-Dist: torch>=2.
|
|
250
|
+
Requires-Dist: torch>=2.14.0,<3 ; extra == 'transformers'
|
|
251
251
|
Requires-Dist: accelerate>=1.14.0,<2 ; extra == 'transformers'
|
|
252
252
|
Requires-Python: >=3.12, <3.15
|
|
253
253
|
Project-URL: repository, https://github.com/Aleph-Alpha-Research/eval-framework
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "eval-framework"
|
|
3
|
-
version = "0.11.
|
|
3
|
+
version = "0.11.8"
|
|
4
4
|
description = "Evaluation Framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12,<3.15"
|
|
@@ -18,7 +18,7 @@ classifiers = [
|
|
|
18
18
|
dependencies = [
|
|
19
19
|
"pyyaml>=6.0.3,<7",
|
|
20
20
|
"xmltodict>=1.0.4,<1.1",
|
|
21
|
-
"pydantic>=2.13.
|
|
21
|
+
"pydantic>=2.13.5,<3",
|
|
22
22
|
"datasets>=5.0.1,<6",
|
|
23
23
|
"pycountry>=26.2.16,<27",
|
|
24
24
|
"nltk>=3.10.3,<4",
|
|
@@ -32,10 +32,10 @@ dependencies = [
|
|
|
32
32
|
"sympy>=1.14.0,<2",
|
|
33
33
|
"llm-sandbox[docker]==0.3.44",
|
|
34
34
|
"jsonlines>=4,<5",
|
|
35
|
-
"lxml>=6.1.
|
|
35
|
+
"lxml>=6.1.3,<7",
|
|
36
36
|
"python-iso639>=2026.7.23",
|
|
37
37
|
"wandb>=0.29.0,<1",
|
|
38
|
-
"boto3>=1.43.
|
|
38
|
+
"boto3>=1.43.87,<2",
|
|
39
39
|
"numpy>=2.5.2",
|
|
40
40
|
"antlr4-python3-runtime==4.11.0",
|
|
41
41
|
"scipy>=1.18.1,<2",
|
|
@@ -54,13 +54,13 @@ determined = [
|
|
|
54
54
|
]
|
|
55
55
|
api = ["aleph-alpha-client>=11.5.1"]
|
|
56
56
|
openai = [
|
|
57
|
-
"openai>=3.
|
|
57
|
+
"openai>=3.7.0,<4",
|
|
58
58
|
"tiktoken>=0.14.0,<1",
|
|
59
59
|
"transformers>=4.45.2,<5",
|
|
60
60
|
]
|
|
61
61
|
transformers = [
|
|
62
62
|
"transformers>=4.45.2,<5",
|
|
63
|
-
"torch>=2.
|
|
63
|
+
"torch>=2.14.0,<3",
|
|
64
64
|
"accelerate>=1.14.0,<2",
|
|
65
65
|
]
|
|
66
66
|
accelerate = ["accelerate"]
|
|
@@ -96,7 +96,7 @@ flash-attn = [
|
|
|
96
96
|
]
|
|
97
97
|
|
|
98
98
|
[build-system]
|
|
99
|
-
requires = ["uv_build>=0.12.
|
|
99
|
+
requires = ["uv_build>=0.12.9,<0.12.10"]
|
|
100
100
|
build-backend = "uv_build"
|
|
101
101
|
|
|
102
102
|
[tool.uv]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "eval-framework"
|
|
3
|
-
version = "0.11.
|
|
3
|
+
version = "0.11.8"
|
|
4
4
|
description = "Evaluation Framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -22,7 +22,7 @@ classifiers = [
|
|
|
22
22
|
dependencies = [
|
|
23
23
|
"pyyaml>=6.0.3,<7",
|
|
24
24
|
"xmltodict>=1.0.4,<1.1",
|
|
25
|
-
"pydantic>=2.13.
|
|
25
|
+
"pydantic>=2.13.5,<3",
|
|
26
26
|
"datasets>=5.0.1,<6",
|
|
27
27
|
"pycountry>=26.2.16,<27",
|
|
28
28
|
"nltk>=3.10.3,<4",
|
|
@@ -36,10 +36,10 @@ dependencies = [
|
|
|
36
36
|
"sympy>=1.14.0,<2",
|
|
37
37
|
"llm-sandbox[docker]==0.3.44",
|
|
38
38
|
"jsonlines>=4,<5",
|
|
39
|
-
"lxml>=6.1.
|
|
39
|
+
"lxml>=6.1.3,<7",
|
|
40
40
|
"python-iso639>=2026.7.23",
|
|
41
41
|
"wandb>=0.29.0,<1",
|
|
42
|
-
"boto3>=1.43.
|
|
42
|
+
"boto3>=1.43.87,<2",
|
|
43
43
|
"numpy>=2.5.2",
|
|
44
44
|
# is a dependency of sympy, but not explicitly listed in the requirements.txt
|
|
45
45
|
# https://github.com/sympy/sympy/blob/0204fa34e8f6f6f8ccb4de01209be9a2345c9d6e/doc/src/contributing/dependencies.md?plain=1#L125
|
|
@@ -55,13 +55,13 @@ determined = [
|
|
|
55
55
|
]
|
|
56
56
|
api = ["aleph-alpha-client>=11.5.1"]
|
|
57
57
|
openai = [
|
|
58
|
-
"openai>=3.
|
|
58
|
+
"openai>=3.7.0,<4",
|
|
59
59
|
"tiktoken>=0.14.0,<1",
|
|
60
60
|
"transformers>=4.45.2,<5",
|
|
61
61
|
]
|
|
62
62
|
transformers = [
|
|
63
63
|
"transformers>=4.45.2,<5",
|
|
64
|
-
"torch>=2.
|
|
64
|
+
"torch>=2.14.0,<3",
|
|
65
65
|
"accelerate>=1.14.0,<2",
|
|
66
66
|
]
|
|
67
67
|
accelerate = ["accelerate"]
|
|
@@ -102,7 +102,7 @@ flash-attn = [
|
|
|
102
102
|
]
|
|
103
103
|
|
|
104
104
|
[build-system]
|
|
105
|
-
requires = ["uv_build>=0.12.
|
|
105
|
+
requires = ["uv_build>=0.12.9,<0.12.10"]
|
|
106
106
|
build-backend = "uv_build"
|
|
107
107
|
|
|
108
108
|
[tool.uv.build-backend]
|
|
@@ -5,8 +5,9 @@ from typing import Any, final, override
|
|
|
5
5
|
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
6
6
|
from eval_framework.composed import ComposedBenchmark
|
|
7
7
|
from eval_framework.contract import Benchmark
|
|
8
|
-
from eval_framework.
|
|
8
|
+
from eval_framework.eval_kind import Choice
|
|
9
9
|
from eval_framework.tasks.base import Language
|
|
10
|
+
from eval_framework.tasks.dataset_loading import DatasetPolicy
|
|
10
11
|
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
11
12
|
from eval_framework.tasks.task_style import ClozeStyle, answer_key_to_index
|
|
12
13
|
|
|
@@ -28,16 +29,22 @@ class ArcDeReader(ChoiceReader):
|
|
|
28
29
|
)
|
|
29
30
|
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
styler=ClozeStyle(question_prefix="Frage: ", cue_text="Antwort:")
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
def arc_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
33
|
+
"""ARC-DE as cloze/ranked classification.
|
|
34
|
+
|
|
35
|
+
https://huggingface.co/datasets/LeoLM/ArcChallenge_de
|
|
36
|
+
"""
|
|
37
|
+
kind = Choice(reader=ArcDeReader(), styler=ClozeStyle(question_prefix="Frage: ", cue_text="Antwort:"))
|
|
38
|
+
dataset_policy = dataset if dataset is not None else pinned_by_framework("LeoLM/ArcChallenge_de")
|
|
39
|
+
return ComposedBenchmark.compose(
|
|
40
|
+
id="ARC_DE",
|
|
41
|
+
display_name="ARC German",
|
|
42
|
+
kind=kind,
|
|
43
|
+
sample_split="test",
|
|
44
|
+
fewshot_split="validation",
|
|
45
|
+
dataset_policy=dataset_policy,
|
|
46
|
+
language=Language.DEU,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
ARC_DE_BENCHMARK: Benchmark = arc_de()
|
{eval_framework-0.11.3 → eval_framework-0.11.8}/src/eval_framework/benchmarks/csqa_ellamind.py
RENAMED
|
@@ -10,8 +10,10 @@ from typing import Any, Literal, final, override
|
|
|
10
10
|
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
11
11
|
from eval_framework.composed import ComposedBenchmark
|
|
12
12
|
from eval_framework.contract import Benchmark
|
|
13
|
+
from eval_framework.eval_kind import Choice
|
|
13
14
|
from eval_framework.subjects import ListOfSubjects
|
|
14
15
|
from eval_framework.tasks.base import Language
|
|
16
|
+
from eval_framework.tasks.dataset_loading import DatasetPolicy
|
|
15
17
|
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
16
18
|
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
17
19
|
|
|
@@ -34,30 +36,50 @@ class CsqaReader(ChoiceReader):
|
|
|
34
36
|
return ChoiceFields(raw_question=item["question"], choices=choices, correct_index=correct_index)
|
|
35
37
|
|
|
36
38
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def _csqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
|
|
39
|
+
def _csqa_ellamind_benchmark(
|
|
40
|
+
id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"], dataset: DatasetPolicy | None = None
|
|
41
|
+
) -> Benchmark:
|
|
42
|
+
kind = Choice(reader=CsqaReader(distractor_level), styler=styler)
|
|
43
|
+
dataset_policy = dataset if dataset is not None else pinned_by_framework("ellamind/csqa-multilingual")
|
|
45
44
|
return ComposedBenchmark.compose(
|
|
46
45
|
id=id,
|
|
47
|
-
|
|
48
|
-
reader=CsqaReader(distractor_level),
|
|
46
|
+
kind=kind,
|
|
49
47
|
sample_split="validation",
|
|
50
48
|
fewshot_split="validation",
|
|
51
49
|
subjects=ListOfSubjects(["deu"]),
|
|
52
|
-
dataset_policy=
|
|
50
|
+
dataset_policy=dataset_policy,
|
|
53
51
|
language=Language.DEU,
|
|
54
52
|
)
|
|
55
53
|
|
|
56
54
|
|
|
55
|
+
def csqa_ellamind_mc_easy_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
56
|
+
return _csqa_ellamind_benchmark("CSQA_ELLAMIND_MC_EASY_DE", MCStyle.for_language(Language.DEU), "easy", dataset)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def csqa_ellamind_mc_hard_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
60
|
+
return _csqa_ellamind_benchmark("CSQA_ELLAMIND_MC_HARD_DE", MCStyle.for_language(Language.DEU), "hard", dataset)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def csqa_ellamind_cloze_easy_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
64
|
+
return _csqa_ellamind_benchmark(
|
|
65
|
+
"CSQA_ELLAMIND_CLOZE_EASY_DE", ClozeStyle.for_language(Language.DEU), "easy", dataset
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def csqa_ellamind_cloze_hard_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
70
|
+
return _csqa_ellamind_benchmark(
|
|
71
|
+
"CSQA_ELLAMIND_CLOZE_HARD_DE", ClozeStyle.for_language(Language.DEU), "hard", dataset
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def csqa_ellamind_bpb_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
76
|
+
return _csqa_ellamind_benchmark("CSQA_ELLAMIND_BPB_DE", BPBStyle.for_language(Language.DEU), "easy", dataset)
|
|
77
|
+
|
|
78
|
+
|
|
57
79
|
CSQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
80
|
+
csqa_ellamind_mc_easy_de(),
|
|
81
|
+
csqa_ellamind_mc_hard_de(),
|
|
82
|
+
csqa_ellamind_cloze_easy_de(),
|
|
83
|
+
csqa_ellamind_cloze_hard_de(),
|
|
84
|
+
csqa_ellamind_bpb_de(),
|
|
63
85
|
]
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"""German GPQA (Graduate-level Professional QA, EllaMind) tasks.
|
|
2
|
+
|
|
3
|
+
https://huggingface.co/datasets/ellamind/gpqa-multilingual
|
|
4
|
+
|
|
5
|
+
GPQA uses a single distractor set (``incorrect_answers``). The diamond variants restrict evaluation to
|
|
6
|
+
the diamond subset — the 198 hardest questions (``is_diamond``) from the original GPQA-Diamond benchmark.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from typing import Any, final, override
|
|
10
|
+
|
|
11
|
+
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
12
|
+
from eval_framework.composed import ComposedBenchmark
|
|
13
|
+
from eval_framework.contract import Benchmark
|
|
14
|
+
from eval_framework.eval_kind import Choice
|
|
15
|
+
from eval_framework.subjects import ListOfSubjects
|
|
16
|
+
from eval_framework.tasks.base import Language
|
|
17
|
+
from eval_framework.tasks.dataset_loading import DatasetPolicy, Subset
|
|
18
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
19
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@final
|
|
23
|
+
class GpqaReader(ChoiceReader):
|
|
24
|
+
"""Reads a GPQA item: a single ``incorrect_answers`` distractor set, shuffled in with the correct answer."""
|
|
25
|
+
|
|
26
|
+
@override
|
|
27
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
28
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
29
|
+
correct=item["correct_answer"],
|
|
30
|
+
distractors=item["incorrect_answers"],
|
|
31
|
+
seed_text=item["question"] + item["correct_answer"],
|
|
32
|
+
)
|
|
33
|
+
return ChoiceFields(raw_question=item["question"], choices=choices, correct_index=correct_index)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _gpqa_ellamind_benchmark(id: str, styler: TaskStyler, dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
37
|
+
kind = Choice(reader=GpqaReader(), styler=styler)
|
|
38
|
+
dataset_policy = dataset if dataset is not None else pinned_by_framework("ellamind/gpqa-multilingual")
|
|
39
|
+
return ComposedBenchmark.compose(
|
|
40
|
+
id=id,
|
|
41
|
+
kind=kind,
|
|
42
|
+
sample_split="train",
|
|
43
|
+
fewshot_split="train",
|
|
44
|
+
subjects=ListOfSubjects(["deu"]),
|
|
45
|
+
dataset_policy=dataset_policy,
|
|
46
|
+
language=Language.DEU,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _gpqa_ellamind_diamond_benchmark(id: str, styler: TaskStyler, dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
51
|
+
source = dataset if dataset is not None else pinned_by_framework("ellamind/gpqa-multilingual")
|
|
52
|
+
return _gpqa_ellamind_benchmark(id, styler, Subset(source, keep=lambda row: row["is_diamond"]))
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def gpqa_ellamind_mc_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
56
|
+
return _gpqa_ellamind_benchmark("GPQA_ELLAMIND_MC_DE", MCStyle.for_language(Language.DEU), dataset)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def gpqa_ellamind_cloze_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
60
|
+
return _gpqa_ellamind_benchmark("GPQA_ELLAMIND_CLOZE_DE", ClozeStyle.for_language(Language.DEU), dataset)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def gpqa_ellamind_bpb_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
64
|
+
return _gpqa_ellamind_benchmark("GPQA_ELLAMIND_BPB_DE", BPBStyle.for_language(Language.DEU), dataset)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def gpqa_ellamind_diamond_mc_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
68
|
+
return _gpqa_ellamind_diamond_benchmark("GPQA_ELLAMIND_DIAMOND_MC_DE", MCStyle.for_language(Language.DEU), dataset)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def gpqa_ellamind_diamond_cloze_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
72
|
+
return _gpqa_ellamind_diamond_benchmark(
|
|
73
|
+
"GPQA_ELLAMIND_DIAMOND_CLOZE_DE", ClozeStyle.for_language(Language.DEU), dataset
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def gpqa_ellamind_diamond_bpb_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
78
|
+
return _gpqa_ellamind_diamond_benchmark(
|
|
79
|
+
"GPQA_ELLAMIND_DIAMOND_BPB_DE", BPBStyle.for_language(Language.DEU), dataset
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
GPQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
84
|
+
gpqa_ellamind_mc_de(),
|
|
85
|
+
gpqa_ellamind_cloze_de(),
|
|
86
|
+
gpqa_ellamind_diamond_mc_de(),
|
|
87
|
+
gpqa_ellamind_diamond_cloze_de(),
|
|
88
|
+
gpqa_ellamind_bpb_de(),
|
|
89
|
+
gpqa_ellamind_diamond_bpb_de(),
|
|
90
|
+
]
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"""German HellaSwag (EllaMind) tasks.
|
|
2
|
+
|
|
3
|
+
https://huggingface.co/datasets/ellamind/hellaswag-multilingual
|
|
4
|
+
|
|
5
|
+
HellaSwag is a sentence-completion task: the prompt is a partial sentence (``"{activity}: {context}"``)
|
|
6
|
+
and the model scores full-sentence endings. There is no natural MC variant. HellaSwag supplies separate
|
|
7
|
+
easy and hard distractors.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from typing import Any, Literal, final, override
|
|
11
|
+
|
|
12
|
+
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
13
|
+
from eval_framework.composed import ComposedBenchmark
|
|
14
|
+
from eval_framework.contract import Benchmark
|
|
15
|
+
from eval_framework.eval_kind import Choice
|
|
16
|
+
from eval_framework.subjects import ListOfSubjects
|
|
17
|
+
from eval_framework.tasks.base import Language
|
|
18
|
+
from eval_framework.tasks.dataset_loading import DatasetPolicy
|
|
19
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
20
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, TaskStyler, shuffle_correct_with_distractors
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@final
|
|
24
|
+
class HellaswagReader(ChoiceReader):
|
|
25
|
+
"""Reads a HellaSwag item: the partial sentence ``"{activity}: {context}"``, with the easy/hard
|
|
26
|
+
full-sentence endings for the level shuffled in with the correct ending."""
|
|
27
|
+
|
|
28
|
+
def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
|
|
29
|
+
self._distractor_level = distractor_level
|
|
30
|
+
|
|
31
|
+
@override
|
|
32
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
33
|
+
distractors = item["easy_distractors"] if self._distractor_level == "easy" else item["hard_distractors"]
|
|
34
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
35
|
+
correct=item["correct_ending"],
|
|
36
|
+
distractors=distractors,
|
|
37
|
+
seed_text=item["context"] + item["correct_ending"],
|
|
38
|
+
)
|
|
39
|
+
return ChoiceFields(
|
|
40
|
+
raw_question=f"{item['activity'].strip()}: {item['context'].strip()}",
|
|
41
|
+
choices=choices,
|
|
42
|
+
correct_index=correct_index,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _hellaswag_ellamind_benchmark(
|
|
47
|
+
id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"], dataset: DatasetPolicy | None = None
|
|
48
|
+
) -> Benchmark:
|
|
49
|
+
kind = Choice(reader=HellaswagReader(distractor_level), styler=styler)
|
|
50
|
+
dataset_policy = dataset if dataset is not None else pinned_by_framework("ellamind/hellaswag-multilingual")
|
|
51
|
+
return ComposedBenchmark.compose(
|
|
52
|
+
id=id,
|
|
53
|
+
kind=kind,
|
|
54
|
+
sample_split="validation",
|
|
55
|
+
fewshot_split="validation",
|
|
56
|
+
subjects=ListOfSubjects(["deu"]),
|
|
57
|
+
dataset_policy=dataset_policy,
|
|
58
|
+
language=Language.DEU,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# Sentence-completion: no question prefix, no cue, the continuation follows the context directly.
|
|
63
|
+
def _cloze_completion_style() -> ClozeStyle:
|
|
64
|
+
return ClozeStyle(question_prefix="", trailing_newline=False, cue_text="")
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def hellaswag_ellamind_easy_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
68
|
+
return _hellaswag_ellamind_benchmark("HELLASWAG_ELLAMIND_EASY_DE", _cloze_completion_style(), "easy", dataset)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def hellaswag_ellamind_hard_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
72
|
+
return _hellaswag_ellamind_benchmark("HELLASWAG_ELLAMIND_HARD_DE", _cloze_completion_style(), "hard", dataset)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def hellaswag_ellamind_bpb_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
76
|
+
styler = BPBStyle(question_prefix="", trailing_newline=False, cue_text="")
|
|
77
|
+
return _hellaswag_ellamind_benchmark("HELLASWAG_ELLAMIND_BPB_DE", styler, "easy", dataset)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
HELLASWAG_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
81
|
+
hellaswag_ellamind_easy_de(),
|
|
82
|
+
hellaswag_ellamind_hard_de(),
|
|
83
|
+
hellaswag_ellamind_bpb_de(),
|
|
84
|
+
]
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"""German HLE (Humanity's Last Exam, EllaMind) tasks.
|
|
2
|
+
|
|
3
|
+
https://huggingface.co/datasets/ellamind/hle-multilingual
|
|
4
|
+
|
|
5
|
+
HLE uses a single distractor set (``incorrect_answers``). The NATIVE variants restrict evaluation to the
|
|
6
|
+
items that are natively multiple-choice in the original benchmark (``answer_type == "multipleChoice"``).
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from typing import Any, final, override
|
|
10
|
+
|
|
11
|
+
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
12
|
+
from eval_framework.composed import ComposedBenchmark
|
|
13
|
+
from eval_framework.contract import Benchmark
|
|
14
|
+
from eval_framework.eval_kind import Choice
|
|
15
|
+
from eval_framework.subjects import ListOfSubjects
|
|
16
|
+
from eval_framework.tasks.base import Language
|
|
17
|
+
from eval_framework.tasks.dataset_loading import DatasetPolicy, Subset
|
|
18
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
19
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@final
|
|
23
|
+
class HleReader(ChoiceReader):
|
|
24
|
+
"""Reads an HLE item: a single ``incorrect_answers`` distractor set, shuffled in with the correct answer."""
|
|
25
|
+
|
|
26
|
+
@override
|
|
27
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
28
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
29
|
+
correct=item["correct_answer"],
|
|
30
|
+
distractors=item["incorrect_answers"],
|
|
31
|
+
seed_text=item["question"] + item["correct_answer"],
|
|
32
|
+
)
|
|
33
|
+
return ChoiceFields(raw_question=item["question"], choices=choices, correct_index=correct_index)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _hle_ellamind_benchmark(id: str, styler: TaskStyler, dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
37
|
+
kind = Choice(reader=HleReader(), styler=styler)
|
|
38
|
+
dataset_policy = dataset if dataset is not None else pinned_by_framework("ellamind/hle-multilingual")
|
|
39
|
+
return ComposedBenchmark.compose(
|
|
40
|
+
id=id,
|
|
41
|
+
kind=kind,
|
|
42
|
+
sample_split="test",
|
|
43
|
+
fewshot_split="test",
|
|
44
|
+
subjects=ListOfSubjects(["deu"]),
|
|
45
|
+
dataset_policy=dataset_policy,
|
|
46
|
+
language=Language.DEU,
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _hle_ellamind_native_benchmark(id: str, styler: TaskStyler, dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
51
|
+
source = dataset if dataset is not None else pinned_by_framework("ellamind/hle-multilingual")
|
|
52
|
+
return _hle_ellamind_benchmark(id, styler, Subset(source, keep=lambda row: row["answer_type"] == "multipleChoice"))
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def hle_ellamind_mc_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
56
|
+
return _hle_ellamind_benchmark("HLE_ELLAMIND_MC_DE", MCStyle.for_language(Language.DEU), dataset)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def hle_ellamind_cloze_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
60
|
+
return _hle_ellamind_benchmark("HLE_ELLAMIND_CLOZE_DE", ClozeStyle.for_language(Language.DEU), dataset)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def hle_ellamind_mc_native_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
64
|
+
return _hle_ellamind_native_benchmark("HLE_ELLAMIND_MC_NATIVE_DE", MCStyle.for_language(Language.DEU), dataset)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def hle_ellamind_cloze_native_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
68
|
+
return _hle_ellamind_native_benchmark(
|
|
69
|
+
"HLE_ELLAMIND_CLOZE_NATIVE_DE", ClozeStyle.for_language(Language.DEU), dataset
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def hle_ellamind_bpb_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
74
|
+
return _hle_ellamind_benchmark("HLE_ELLAMIND_BPB_DE", BPBStyle.for_language(Language.DEU), dataset)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
HLE_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
78
|
+
hle_ellamind_mc_de(),
|
|
79
|
+
hle_ellamind_cloze_de(),
|
|
80
|
+
hle_ellamind_mc_native_de(),
|
|
81
|
+
hle_ellamind_cloze_native_de(),
|
|
82
|
+
hle_ellamind_bpb_de(),
|
|
83
|
+
]
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"""German PIQA (EllaMind) tasks.
|
|
2
|
+
|
|
3
|
+
https://huggingface.co/datasets/ellamind/piqa-multilingual
|
|
4
|
+
|
|
5
|
+
PIQA supplies separate easy and hard distractors.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import Any, Literal, final, override
|
|
9
|
+
|
|
10
|
+
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
11
|
+
from eval_framework.composed import ComposedBenchmark
|
|
12
|
+
from eval_framework.contract import Benchmark
|
|
13
|
+
from eval_framework.eval_kind import Choice
|
|
14
|
+
from eval_framework.subjects import ListOfSubjects
|
|
15
|
+
from eval_framework.tasks.base import Language
|
|
16
|
+
from eval_framework.tasks.dataset_loading import DatasetPolicy
|
|
17
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
18
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@final
|
|
22
|
+
class PiqaReader(ChoiceReader):
|
|
23
|
+
"""Reads a PIQA item: a single easy/hard distractor per level, shuffled in with the correct solution."""
|
|
24
|
+
|
|
25
|
+
def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
|
|
26
|
+
self._distractor_level = distractor_level
|
|
27
|
+
|
|
28
|
+
@override
|
|
29
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
30
|
+
distractor = item["easy_distractor"] if self._distractor_level == "easy" else item["hard_distractor"]
|
|
31
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
32
|
+
correct=item["correct_solution"],
|
|
33
|
+
distractors=[distractor],
|
|
34
|
+
seed_text=item["goal"] + item["correct_solution"],
|
|
35
|
+
)
|
|
36
|
+
return ChoiceFields(raw_question=item["goal"], choices=choices, correct_index=correct_index)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
_QUESTION_PREFIX = "Ziel: "
|
|
40
|
+
_CUE_TEXT = "Antwort:"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _piqa_ellamind_benchmark(
|
|
44
|
+
id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"], dataset: DatasetPolicy | None = None
|
|
45
|
+
) -> Benchmark:
|
|
46
|
+
kind = Choice(reader=PiqaReader(distractor_level), styler=styler)
|
|
47
|
+
dataset_policy = dataset if dataset is not None else pinned_by_framework("ellamind/piqa-multilingual")
|
|
48
|
+
return ComposedBenchmark.compose(
|
|
49
|
+
id=id,
|
|
50
|
+
kind=kind,
|
|
51
|
+
sample_split="validation",
|
|
52
|
+
fewshot_split="validation",
|
|
53
|
+
subjects=ListOfSubjects(["deu"]),
|
|
54
|
+
dataset_policy=dataset_policy,
|
|
55
|
+
language=Language.DEU,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def piqa_ellamind_cloze_easy_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
60
|
+
return _piqa_ellamind_benchmark(
|
|
61
|
+
"PIQA_ELLAMIND_CLOZE_EASY_DE", ClozeStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT), "easy", dataset
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def piqa_ellamind_cloze_hard_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
66
|
+
return _piqa_ellamind_benchmark(
|
|
67
|
+
"PIQA_ELLAMIND_CLOZE_HARD_DE", ClozeStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT), "hard", dataset
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def piqa_ellamind_mc_easy_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
72
|
+
return _piqa_ellamind_benchmark(
|
|
73
|
+
"PIQA_ELLAMIND_MC_EASY_DE", MCStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT), "easy", dataset
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def piqa_ellamind_mc_hard_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
78
|
+
return _piqa_ellamind_benchmark(
|
|
79
|
+
"PIQA_ELLAMIND_MC_HARD_DE", MCStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT), "hard", dataset
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def piqa_ellamind_bpb_de(dataset: DatasetPolicy | None = None) -> Benchmark:
|
|
84
|
+
return _piqa_ellamind_benchmark(
|
|
85
|
+
"PIQA_ELLAMIND_BPB_DE", BPBStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT), "easy", dataset
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
PIQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
90
|
+
piqa_ellamind_cloze_easy_de(),
|
|
91
|
+
piqa_ellamind_cloze_hard_de(),
|
|
92
|
+
piqa_ellamind_mc_easy_de(),
|
|
93
|
+
piqa_ellamind_mc_hard_de(),
|
|
94
|
+
piqa_ellamind_bpb_de(),
|
|
95
|
+
]
|