eval-framework 0.9.0__tar.gz → 0.9.2__tar.gz

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