eval-framework 0.10.7__tar.gz → 0.11.3__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.10.7 → eval_framework-0.11.3}/PKG-INFO +7 -7
- {eval_framework-0.10.7 → eval_framework-0.11.3}/pyproject.toml +10 -10
- {eval_framework-0.10.7 → eval_framework-0.11.3}/pyproject.toml.orig +10 -10
- eval_framework-0.11.3/src/eval_framework/benchmarks/arc_de.py +43 -0
- eval_framework-0.11.3/src/eval_framework/benchmarks/csqa_ellamind.py +63 -0
- eval_framework-0.11.3/src/eval_framework/benchmarks/piqa_ellamind.py +66 -0
- eval_framework-0.11.3/src/eval_framework/benchmarks/siqa_ellamind.py +66 -0
- eval_framework-0.11.3/src/eval_framework/choices.py +31 -0
- eval_framework-0.11.3/src/eval_framework/composed.py +418 -0
- eval_framework-0.10.7/src/eval_framework/tasks/task.py → eval_framework-0.11.3/src/eval_framework/contract.py +10 -14
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/evaluation_generator.py +12 -9
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/aleph_alpha.py +1 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/huggingface.py +1 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/openai.py +10 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/aggregators/aggregators.py +3 -3
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/base.py +5 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +63 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/response_generator.py +1 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/base.py +8 -2
- eval_framework-0.11.3/src/eval_framework/shared/errors.py +11 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/shared/types.py +20 -0
- eval_framework-0.11.3/src/eval_framework/subjects.py +64 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/base.py +83 -28
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/arc.py +8 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/copa.py +3 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/csqa.py +13 -2
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/drop.py +3 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/global_mmlu.py +7 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/goldenswag.py +2 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gpqa.py +3 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hellaswag.py +8 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/medqa.py +7 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mmlu.py +14 -2
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +3 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/piqa.py +8 -1
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/sciq.py +10 -2
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/social_iqa.py +2 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/winogrande.py +8 -1
- eval_framework-0.11.3/src/eval_framework/tasks/dataset_loading.py +59 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/dataset_revisions.py +31 -3
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/lazy.py +10 -10
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/markdown_doc.py +4 -8
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/registry.py +15 -10
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/task_names.py +11 -16
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/task_style.py +3 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/utils.py +0 -12
- eval_framework-0.11.3/src/template_formatting/py.typed +0 -0
- eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/arc_de.py +0 -49
- eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/csqa_ellamind.py +0 -95
- eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/piqa_ellamind.py +0 -95
- eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/siqa_ellamind.py +0 -92
- {eval_framework-0.10.7 → eval_framework-0.11.3}/LICENSE +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/README.md +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/base_config.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/context → eval_framework-0.11.3/src/eval_framework/benchmarks}/__init__.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/llm → eval_framework-0.11.3/src/eval_framework/context}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/context/determined.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/context/eval.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/context/local.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/exceptions.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/drop_process_results.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/README.md +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/metrics → eval_framework-0.11.3/src/eval_framework/llm}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/base.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/models.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/logger.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/main.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/metrics/aggregators → eval_framework-0.11.3/src/eval_framework/metrics}/__init__.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/metrics/efficiency → eval_framework-0.11.3/src/eval_framework/metrics/aggregators}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/csv_format.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/f1.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/format_checker.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/ifeval.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/json_format.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/language_checker.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/length_control.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/repetition.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/text_counter.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/metrics/llm → eval_framework-0.11.3/src/eval_framework/metrics/efficiency}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/efficiency/token_counters.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/metrics/loglikelihood → eval_framework-0.11.3/src/eval_framework/metrics/llm}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/base.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/language.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/models.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/utils.py +0 -0
- {eval_framework-0.10.7/src/eval_framework/result_processors → eval_framework-0.11.3/src/eval_framework/metrics/loglikelihood}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/py.typed +0 -0
- {eval_framework-0.10.7/src/eval_framework/tasks/benchmarks → eval_framework-0.11.3/src/eval_framework/result_processors}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/hf_uploader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/result_processor.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/run.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/run_direct.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/suite.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/__init__.py +0 -0
- {eval_framework-0.10.7/src/template_formatting → eval_framework-0.11.3/src/eval_framework/tasks/benchmarks}/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/arc_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gpqa_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gsm8k_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hellaswag_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hendrycks_math_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hle_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/humaneval_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mbpp_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/simpleqa_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/winogrande_ellamind.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/eval_config.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/task_loader.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/constants.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/file_ops.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/helpers.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/logging.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/packaging.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/tqdm_handler.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/template_formatting/README.md +0 -0
- /eval_framework-0.10.7/src/template_formatting/py.typed → /eval_framework-0.11.3/src/template_formatting/__init__.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/template_formatting/formatter.py +0 -0
- {eval_framework-0.10.7 → eval_framework-0.11.3}/src/template_formatting/mistral_formatter.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: eval-framework
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.11.3
|
|
4
4
|
Summary: Evaluation Framework
|
|
5
5
|
Author: Aleph Alpha Research
|
|
6
6
|
License: Apache License
|
|
@@ -229,20 +229,20 @@ 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.2,<7
|
|
233
233
|
Requires-Dist: python-iso639>=2026.7.23
|
|
234
|
-
Requires-Dist: wandb>=0.
|
|
235
|
-
Requires-Dist: boto3>=1.43.
|
|
234
|
+
Requires-Dist: wandb>=0.29.0,<1
|
|
235
|
+
Requires-Dist: boto3>=1.43.82,<2
|
|
236
236
|
Requires-Dist: numpy>=2.5.2
|
|
237
237
|
Requires-Dist: antlr4-python3-runtime==4.11.0
|
|
238
|
-
Requires-Dist: scipy>=1.18.
|
|
238
|
+
Requires-Dist: scipy>=1.18.1,<2
|
|
239
239
|
Requires-Dist: accelerate ; extra == 'accelerate'
|
|
240
240
|
Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,optional] ; extra == 'all'
|
|
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.
|
|
245
|
-
Requires-Dist: tiktoken>=0.
|
|
244
|
+
Requires-Dist: openai>=3.5.0,<4 ; extra == 'openai'
|
|
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'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "eval-framework"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.11.3"
|
|
4
4
|
description = "Evaluation Framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12,<3.15"
|
|
@@ -32,13 +32,13 @@ 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.2,<7",
|
|
36
36
|
"python-iso639>=2026.7.23",
|
|
37
|
-
"wandb>=0.
|
|
38
|
-
"boto3>=1.43.
|
|
37
|
+
"wandb>=0.29.0,<1",
|
|
38
|
+
"boto3>=1.43.82,<2",
|
|
39
39
|
"numpy>=2.5.2",
|
|
40
40
|
"antlr4-python3-runtime==4.11.0",
|
|
41
|
-
"scipy>=1.18.
|
|
41
|
+
"scipy>=1.18.1,<2",
|
|
42
42
|
]
|
|
43
43
|
|
|
44
44
|
[project.license]
|
|
@@ -54,8 +54,8 @@ determined = [
|
|
|
54
54
|
]
|
|
55
55
|
api = ["aleph-alpha-client>=11.5.1"]
|
|
56
56
|
openai = [
|
|
57
|
-
"openai>=3.
|
|
58
|
-
"tiktoken>=0.
|
|
57
|
+
"openai>=3.5.0,<4",
|
|
58
|
+
"tiktoken>=0.14.0,<1",
|
|
59
59
|
"transformers>=4.45.2,<5",
|
|
60
60
|
]
|
|
61
61
|
transformers = [
|
|
@@ -86,8 +86,8 @@ dev = [
|
|
|
86
86
|
"types-pyyaml>=6.0.12.20260815,<7",
|
|
87
87
|
"types-python-dateutil>=2.9.0.20260807,<3",
|
|
88
88
|
"types-requests>=2.33.0.20260712,<3",
|
|
89
|
-
"plotly>=
|
|
90
|
-
"ruff>=0.16.
|
|
89
|
+
"plotly>=7.0.0,<8",
|
|
90
|
+
"ruff>=0.16.5",
|
|
91
91
|
"pip-licenses>=5.5.5",
|
|
92
92
|
]
|
|
93
93
|
flash-attn = [
|
|
@@ -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.7,<0.12.8"]
|
|
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.
|
|
3
|
+
version = "0.11.3"
|
|
4
4
|
description = "Evaluation Framework"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { file = "LICENSE" }
|
|
@@ -36,15 +36,15 @@ 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.2,<7",
|
|
40
40
|
"python-iso639>=2026.7.23",
|
|
41
|
-
"wandb>=0.
|
|
42
|
-
"boto3>=1.43.
|
|
41
|
+
"wandb>=0.29.0,<1",
|
|
42
|
+
"boto3>=1.43.82,<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
|
|
46
46
|
"antlr4-python3-runtime==4.11.0",
|
|
47
|
-
"scipy>=1.18.
|
|
47
|
+
"scipy>=1.18.1,<2", # required for the aggregation of pass@k metrics
|
|
48
48
|
]
|
|
49
49
|
|
|
50
50
|
[project.optional-dependencies]
|
|
@@ -55,8 +55,8 @@ determined = [
|
|
|
55
55
|
]
|
|
56
56
|
api = ["aleph-alpha-client>=11.5.1"]
|
|
57
57
|
openai = [
|
|
58
|
-
"openai>=3.
|
|
59
|
-
"tiktoken>=0.
|
|
58
|
+
"openai>=3.5.0,<4",
|
|
59
|
+
"tiktoken>=0.14.0,<1",
|
|
60
60
|
"transformers>=4.45.2,<5",
|
|
61
61
|
]
|
|
62
62
|
transformers = [
|
|
@@ -92,8 +92,8 @@ dev = [
|
|
|
92
92
|
"types-pyyaml>=6.0.12.20260815,<7",
|
|
93
93
|
"types-python-dateutil>=2.9.0.20260807,<3",
|
|
94
94
|
"types-requests>=2.33.0.20260712,<3",
|
|
95
|
-
"plotly>=
|
|
96
|
-
"ruff>=0.16.
|
|
95
|
+
"plotly>=7.0.0,<8",
|
|
96
|
+
"ruff>=0.16.5",
|
|
97
97
|
"pip-licenses>=5.5.5",
|
|
98
98
|
]
|
|
99
99
|
flash-attn = [
|
|
@@ -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.7,<0.12.8"]
|
|
106
106
|
build-backend = "uv_build"
|
|
107
107
|
|
|
108
108
|
[tool.uv.build-backend]
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""ARC German (ARC-DE)."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, final, override
|
|
4
|
+
|
|
5
|
+
from eval_framework.choices import ChoiceFields, ChoiceReader
|
|
6
|
+
from eval_framework.composed import ComposedBenchmark
|
|
7
|
+
from eval_framework.contract import Benchmark
|
|
8
|
+
from eval_framework.subjects import NoSubject
|
|
9
|
+
from eval_framework.tasks.base import Language
|
|
10
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
11
|
+
from eval_framework.tasks.task_style import ClozeStyle, answer_key_to_index
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@final
|
|
15
|
+
class ArcDeReader(ChoiceReader):
|
|
16
|
+
"""Reads an ARC-DE row into choice fields: the German question, its answer texts, and the correct index.
|
|
17
|
+
|
|
18
|
+
``answerKey`` arrives as either a 1-based number or a letter; ``answer_key_to_index`` normalises both,
|
|
19
|
+
which also frees the reader from caring how many answers a given row offers.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@override
|
|
23
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
24
|
+
return ChoiceFields(
|
|
25
|
+
raw_question=item["question_de"],
|
|
26
|
+
choices=item["choices_de"]["text"],
|
|
27
|
+
correct_index=answer_key_to_index(item["answerKey"]),
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# ARC-DE as cloze/ranked classification.
|
|
32
|
+
# https://huggingface.co/datasets/LeoLM/ArcChallenge_de
|
|
33
|
+
ARC_DE_BENCHMARK: Benchmark = ComposedBenchmark.compose(
|
|
34
|
+
id="ARC_DE",
|
|
35
|
+
display_name="ARC German",
|
|
36
|
+
styler=ClozeStyle(question_prefix="Frage: ", cue_text="Antwort:"),
|
|
37
|
+
reader=ArcDeReader(),
|
|
38
|
+
sample_split="test",
|
|
39
|
+
fewshot_split="validation",
|
|
40
|
+
subjects=NoSubject(),
|
|
41
|
+
dataset_policy=pinned_by_framework("LeoLM/ArcChallenge_de"),
|
|
42
|
+
language=Language.DEU,
|
|
43
|
+
)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"""German CommonsenseQA (EllaMind) tasks.
|
|
2
|
+
|
|
3
|
+
https://huggingface.co/datasets/ellamind/csqa-multilingual
|
|
4
|
+
|
|
5
|
+
CSQA 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.subjects import ListOfSubjects
|
|
14
|
+
from eval_framework.tasks.base import Language
|
|
15
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
16
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@final
|
|
20
|
+
class CsqaReader(ChoiceReader):
|
|
21
|
+
"""Reads a CSQA item: easy/hard distractor lists per level, shuffled in with the correct answer."""
|
|
22
|
+
|
|
23
|
+
def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
|
|
24
|
+
self._distractor_level = distractor_level
|
|
25
|
+
|
|
26
|
+
@override
|
|
27
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
28
|
+
distractors = item["easy_distractors"] if self._distractor_level == "easy" else item["hard_distractors"]
|
|
29
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
30
|
+
correct=item["correct_answer"],
|
|
31
|
+
distractors=distractors,
|
|
32
|
+
seed_text=item["question"] + item["correct_answer"],
|
|
33
|
+
)
|
|
34
|
+
return ChoiceFields(raw_question=item["question"], choices=choices, correct_index=correct_index)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# One styler per format, all sharing the German prefix/cue. The easy/hard distractor axis belongs to
|
|
38
|
+
# the reader, so it is orthogonal to the styler choice.
|
|
39
|
+
CSQA_ELLAMIND_CLOZE_STYLER = ClozeStyle.for_language(Language.DEU)
|
|
40
|
+
CSQA_ELLAMIND_MC_STYLER = MCStyle.for_language(Language.DEU)
|
|
41
|
+
CSQA_ELLAMIND_BPB_STYLER = BPBStyle.for_language(Language.DEU)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _csqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
|
|
45
|
+
return ComposedBenchmark.compose(
|
|
46
|
+
id=id,
|
|
47
|
+
styler=styler,
|
|
48
|
+
reader=CsqaReader(distractor_level),
|
|
49
|
+
sample_split="validation",
|
|
50
|
+
fewshot_split="validation",
|
|
51
|
+
subjects=ListOfSubjects(["deu"]),
|
|
52
|
+
dataset_policy=pinned_by_framework("ellamind/csqa-multilingual"),
|
|
53
|
+
language=Language.DEU,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
CSQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
58
|
+
_csqa_ellamind_benchmark("CSQA_ELLAMIND_MC_EASY_DE", CSQA_ELLAMIND_MC_STYLER, "easy"),
|
|
59
|
+
_csqa_ellamind_benchmark("CSQA_ELLAMIND_MC_HARD_DE", CSQA_ELLAMIND_MC_STYLER, "hard"),
|
|
60
|
+
_csqa_ellamind_benchmark("CSQA_ELLAMIND_CLOZE_EASY_DE", CSQA_ELLAMIND_CLOZE_STYLER, "easy"),
|
|
61
|
+
_csqa_ellamind_benchmark("CSQA_ELLAMIND_CLOZE_HARD_DE", CSQA_ELLAMIND_CLOZE_STYLER, "hard"),
|
|
62
|
+
_csqa_ellamind_benchmark("CSQA_ELLAMIND_BPB_DE", CSQA_ELLAMIND_BPB_STYLER, "easy"),
|
|
63
|
+
]
|
|
@@ -0,0 +1,66 @@
|
|
|
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.subjects import ListOfSubjects
|
|
14
|
+
from eval_framework.tasks.base import Language
|
|
15
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
16
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@final
|
|
20
|
+
class PiqaReader(ChoiceReader):
|
|
21
|
+
"""Reads a PIQA item: a single easy/hard distractor per level, shuffled in with the correct solution."""
|
|
22
|
+
|
|
23
|
+
def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
|
|
24
|
+
self._distractor_level = distractor_level
|
|
25
|
+
|
|
26
|
+
@override
|
|
27
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
28
|
+
distractor = item["easy_distractor"] if self._distractor_level == "easy" else item["hard_distractor"]
|
|
29
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
30
|
+
correct=item["correct_solution"],
|
|
31
|
+
distractors=[distractor],
|
|
32
|
+
seed_text=item["goal"] + item["correct_solution"],
|
|
33
|
+
)
|
|
34
|
+
return ChoiceFields(raw_question=item["goal"], choices=choices, correct_index=correct_index)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
_QUESTION_PREFIX = "Ziel: "
|
|
38
|
+
_CUE_TEXT = "Antwort:"
|
|
39
|
+
|
|
40
|
+
# One styler per format (all sharing the German prefix/cue). The easy/hard distractor axis belongs to
|
|
41
|
+
# the reader, so it is orthogonal to the styler choice.
|
|
42
|
+
PIQA_ELLAMIND_CLOZE_STYLER = ClozeStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT)
|
|
43
|
+
PIQA_ELLAMIND_MC_STYLER = MCStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT)
|
|
44
|
+
PIQA_ELLAMIND_BPB_STYLER = BPBStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _piqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
|
|
48
|
+
return ComposedBenchmark.compose(
|
|
49
|
+
id=id,
|
|
50
|
+
styler=styler,
|
|
51
|
+
reader=PiqaReader(distractor_level),
|
|
52
|
+
sample_split="validation",
|
|
53
|
+
fewshot_split="validation",
|
|
54
|
+
subjects=ListOfSubjects(["deu"]),
|
|
55
|
+
dataset_policy=pinned_by_framework("ellamind/piqa-multilingual"),
|
|
56
|
+
language=Language.DEU,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
PIQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
61
|
+
_piqa_ellamind_benchmark("PIQA_ELLAMIND_CLOZE_EASY_DE", PIQA_ELLAMIND_CLOZE_STYLER, "easy"),
|
|
62
|
+
_piqa_ellamind_benchmark("PIQA_ELLAMIND_CLOZE_HARD_DE", PIQA_ELLAMIND_CLOZE_STYLER, "hard"),
|
|
63
|
+
_piqa_ellamind_benchmark("PIQA_ELLAMIND_MC_EASY_DE", PIQA_ELLAMIND_MC_STYLER, "easy"),
|
|
64
|
+
_piqa_ellamind_benchmark("PIQA_ELLAMIND_MC_HARD_DE", PIQA_ELLAMIND_MC_STYLER, "hard"),
|
|
65
|
+
_piqa_ellamind_benchmark("PIQA_ELLAMIND_BPB_DE", PIQA_ELLAMIND_BPB_STYLER, "easy"),
|
|
66
|
+
]
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""German Social IQa (EllaMind) tasks.
|
|
2
|
+
|
|
3
|
+
https://huggingface.co/datasets/ellamind/siqa-multilingual
|
|
4
|
+
|
|
5
|
+
SIQA 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.subjects import ListOfSubjects
|
|
14
|
+
from eval_framework.tasks.base import Language
|
|
15
|
+
from eval_framework.tasks.dataset_revisions import pinned_by_framework
|
|
16
|
+
from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@final
|
|
20
|
+
class SiqaReader(ChoiceReader):
|
|
21
|
+
"""Reads a Social IQa item: the shown question is the context followed by the question, and the
|
|
22
|
+
easy/hard distractor list for the level is shuffled in with the correct answer."""
|
|
23
|
+
|
|
24
|
+
def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
|
|
25
|
+
self._distractor_level = distractor_level
|
|
26
|
+
|
|
27
|
+
@override
|
|
28
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields:
|
|
29
|
+
distractors = item["easy_distractors"] if self._distractor_level == "easy" else item["hard_distractors"]
|
|
30
|
+
choices, correct_index = shuffle_correct_with_distractors(
|
|
31
|
+
correct=item["correct_answer"],
|
|
32
|
+
distractors=distractors,
|
|
33
|
+
seed_text=item["question"] + item["correct_answer"],
|
|
34
|
+
)
|
|
35
|
+
return ChoiceFields(
|
|
36
|
+
raw_question=f"{item['context']} {item['question']}", choices=choices, correct_index=correct_index
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# One styler per format, all sharing the German prefix/cue. The easy/hard distractor axis belongs to
|
|
41
|
+
# the reader, so it is orthogonal to the styler choice.
|
|
42
|
+
SIQA_ELLAMIND_CLOZE_STYLER = ClozeStyle.for_language(Language.DEU)
|
|
43
|
+
SIQA_ELLAMIND_MC_STYLER = MCStyle.for_language(Language.DEU)
|
|
44
|
+
SIQA_ELLAMIND_BPB_STYLER = BPBStyle.for_language(Language.DEU)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _siqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
|
|
48
|
+
return ComposedBenchmark.compose(
|
|
49
|
+
id=id,
|
|
50
|
+
styler=styler,
|
|
51
|
+
reader=SiqaReader(distractor_level),
|
|
52
|
+
sample_split="validation",
|
|
53
|
+
fewshot_split="validation",
|
|
54
|
+
subjects=ListOfSubjects(["deu"]),
|
|
55
|
+
dataset_policy=pinned_by_framework("ellamind/siqa-multilingual"),
|
|
56
|
+
language=Language.DEU,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
SIQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
|
|
61
|
+
_siqa_ellamind_benchmark("SIQA_ELLAMIND_MC_EASY_DE", SIQA_ELLAMIND_MC_STYLER, "easy"),
|
|
62
|
+
_siqa_ellamind_benchmark("SIQA_ELLAMIND_MC_HARD_DE", SIQA_ELLAMIND_MC_STYLER, "hard"),
|
|
63
|
+
_siqa_ellamind_benchmark("SIQA_ELLAMIND_CLOZE_EASY_DE", SIQA_ELLAMIND_CLOZE_STYLER, "easy"),
|
|
64
|
+
_siqa_ellamind_benchmark("SIQA_ELLAMIND_CLOZE_HARD_DE", SIQA_ELLAMIND_CLOZE_STYLER, "hard"),
|
|
65
|
+
_siqa_ellamind_benchmark("SIQA_ELLAMIND_BPB_DE", SIQA_ELLAMIND_BPB_STYLER, "easy"),
|
|
66
|
+
]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""Choice readers: extracting the fields a choice-based styler needs out of a raw dataset item,
|
|
2
|
+
so neither the eval nor the styler has to know a benchmark's item schema."""
|
|
3
|
+
|
|
4
|
+
from abc import ABC, abstractmethod
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass(frozen=True)
|
|
10
|
+
class ChoiceFields:
|
|
11
|
+
"""The fields a choice-based styler needs out of a single dataset item.
|
|
12
|
+
|
|
13
|
+
``choices`` and ``correct_index`` are produced together (a benchmark may shuffle the correct
|
|
14
|
+
answer in among distractors), so a reader yields them in one ``read`` rather than via separate
|
|
15
|
+
calls that would each have to re-derive the same shuffle.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
raw_question: str
|
|
19
|
+
choices: list[str]
|
|
20
|
+
correct_index: int
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ChoiceReader(ABC):
|
|
24
|
+
"""Reads the fields a styler needs out of a raw dataset item.
|
|
25
|
+
|
|
26
|
+
Isolates dataset-schema knowledge here, so neither the eval nor the styler has to know the shape
|
|
27
|
+
of a benchmark's items.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
@abstractmethod
|
|
31
|
+
def read(self, item: dict[str, Any]) -> ChoiceFields: ...
|