eval-framework 0.8.11__tar.gz → 0.9.1__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.8.11 → eval_framework-0.9.1}/PKG-INFO +5 -3
  2. {eval_framework-0.8.11 → eval_framework-0.9.1}/README.md +2 -0
  3. {eval_framework-0.8.11 → eval_framework-0.9.1}/pyproject.toml +3 -3
  4. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/response_generator.py +1 -1
  5. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/base.py +57 -8
  6. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/gpqa.py +5 -0
  7. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/markdown_doc.py +1 -1
  8. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/registry.py +46 -45
  9. eval_framework-0.9.1/src/eval_framework/tasks/task_names.py +213 -0
  10. eval_framework-0.8.11/src/eval_framework/tasks/task_names.py +0 -81
  11. {eval_framework-0.8.11 → eval_framework-0.9.1}/LICENSE +0 -0
  12. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/__init__.py +0 -0
  13. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/base_config.py +0 -0
  14. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/context/__init__.py +0 -0
  15. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/context/determined.py +0 -0
  16. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/context/eval.py +0 -0
  17. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/context/local.py +0 -0
  18. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/evaluation_generator.py +0 -0
  19. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/exceptions.py +0 -0
  20. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/external/drop_process_results.py +0 -0
  21. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  22. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  23. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  24. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  25. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  26. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/llm/__init__.py +0 -0
  27. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/llm/aleph_alpha.py +0 -0
  28. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/llm/base.py +0 -0
  29. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/llm/huggingface.py +0 -0
  30. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/llm/models.py +0 -0
  31. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/llm/openai.py +0 -0
  32. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/logger.py +0 -0
  33. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/main.py +0 -0
  34. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/__init__.py +0 -0
  35. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
  36. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
  37. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/base.py +0 -0
  38. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/__init__.py +0 -0
  39. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  40. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
  41. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  42. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  43. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  44. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  45. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  46. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/f1.py +0 -0
  47. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  48. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  49. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  50. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/json_format.py +0 -0
  51. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  52. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/length_control.py +0 -0
  53. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  54. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  55. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  56. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  57. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  58. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/repetition.py +0 -0
  59. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  60. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  61. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  62. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  63. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  64. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
  65. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  66. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/__init__.py +0 -0
  67. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/base.py +0 -0
  68. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  69. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  70. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  71. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  72. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  73. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  74. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  75. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  76. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  77. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  78. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  79. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  80. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  81. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  82. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  83. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  84. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  85. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  86. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  87. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  88. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  89. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  90. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  91. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  92. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  93. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/llm/utils.py +0 -0
  94. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
  95. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
  96. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  97. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  98. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  99. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  100. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  101. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  102. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/py.typed +0 -0
  103. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/result_processors/__init__.py +0 -0
  104. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/result_processors/base.py +0 -0
  105. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  106. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/result_processors/result_processor.py +0 -0
  107. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  108. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/run.py +0 -0
  109. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/run_direct.py +0 -0
  110. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/shared/types.py +0 -0
  111. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/suite.py +0 -0
  112. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  113. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/__init__.py +0 -0
  114. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
  115. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
  116. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
  117. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
  118. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
  119. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
  120. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
  121. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
  122. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
  123. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
  124. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
  125. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
  126. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
  127. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
  128. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
  129. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
  130. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
  131. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
  132. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
  133. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
  134. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
  135. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
  136. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
  137. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
  138. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
  139. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/dataset_revisions.py +0 -0
  140. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/eval_config.py +0 -0
  141. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
  142. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
  143. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/perturbation.py +0 -0
  144. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/task_loader.py +0 -0
  145. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/task_style.py +0 -0
  146. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/tasks/utils.py +0 -0
  147. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/utils/constants.py +0 -0
  148. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/utils/file_ops.py +0 -0
  149. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/utils/helpers.py +0 -0
  150. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/utils/logging.py +0 -0
  151. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/utils/packaging.py +0 -0
  152. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/eval_framework/utils/tqdm_handler.py +0 -0
  153. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/template_formatting/README.md +0 -0
  154. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/template_formatting/__init__.py +0 -0
  155. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/template_formatting/formatter.py +0 -0
  156. {eval_framework-0.8.11 → eval_framework-0.9.1}/src/template_formatting/mistral_formatter.py +0 -0
  157. {eval_framework-0.8.11 → eval_framework-0.9.1}/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.8.11
3
+ Version: 0.9.1
4
4
  Summary: Evaluation Framework
5
5
  Author: Aleph Alpha Research
6
6
  License: Apache License
@@ -226,7 +226,7 @@ Requires-Dist: jsonschema>=4.26.0,<5
226
226
  Requires-Dist: mysql-connector-python>=26.7.0,<27
227
227
  Requires-Dist: psycopg2-binary>=2.9.12,<3
228
228
  Requires-Dist: sympy>=1.14.0,<2
229
- Requires-Dist: llm-sandbox[docker]==0.3.39
229
+ Requires-Dist: llm-sandbox[docker]==0.3.44
230
230
  Requires-Dist: jsonlines>=4,<5
231
231
  Requires-Dist: lxml>=6.1.1,<7
232
232
  Requires-Dist: python-iso639>=2026.7.23
@@ -240,7 +240,7 @@ Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,opti
240
240
  Requires-Dist: aleph-alpha-client>=11.5.1 ; extra == 'api'
241
241
  Requires-Dist: determined>=0.38.1,<0.39 ; extra == 'determined'
242
242
  Requires-Dist: tensorboard==2.21.0 ; extra == 'determined'
243
- Requires-Dist: openai>=2.52.0,<3 ; extra == 'openai'
243
+ Requires-Dist: openai>=2.53.0,<3 ; extra == 'openai'
244
244
  Requires-Dist: tiktoken>=0.13.0,<1 ; extra == 'openai'
245
245
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
246
246
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'optional'
@@ -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.8.11"
3
+ version = "0.9.1"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -33,7 +33,7 @@ dependencies = [
33
33
  "mysql-connector-python>=26.7.0,<27", # required for sql-related tasks
34
34
  "psycopg2-binary>=2.9.12,<3", # required for sql-related tasks
35
35
  "sympy>=1.14.0,<2",
36
- "llm-sandbox[docker]==0.3.39",
36
+ "llm-sandbox[docker]==0.3.44",
37
37
  "jsonlines>=4,<5",
38
38
  "lxml>=6.1.1,<7",
39
39
  "python-iso639>=2026.7.23",
@@ -54,7 +54,7 @@ determined = [
54
54
  ]
55
55
  api = ["aleph-alpha-client>=11.5.1"]
56
56
  openai = [
57
- "openai>=2.52.0,<3",
57
+ "openai>=2.53.0,<3",
58
58
  "tiktoken>=0.13.0,<1",
59
59
  "transformers>=4.45.2,<5",
60
60
  ]
@@ -179,7 +179,7 @@ class ResponseGenerator:
179
179
  :param should_preempt_callable: function to check if preempt is called
180
180
  :return: list of responses, preempted
181
181
  """
182
- logger.info(f"{RED}[ Running task {self.task.NAME} against model ------------ ]{RESET}")
182
+ logger.info(f"{RED}[ Running task {self.task.display_name()} against model ------------ ]{RESET}")
183
183
  self.start_time, monotonic_start = time.time(), time.monotonic()
184
184
  run_fn = self._generative_output_type_selector()
185
185
  self._verify_loaded_metadata_compatibility()
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  import random
4
4
  import traceback
5
- from abc import ABC
5
+ from abc import ABC, abstractmethod
6
6
  from collections.abc import Iterable, Sequence
7
7
  from enum import Enum
8
8
  from pathlib import Path
@@ -86,7 +86,37 @@ SubjectType = TypeVar("SubjectType")
86
86
  logger = logging.getLogger(__name__)
87
87
 
88
88
 
89
- class BaseTask[SubjectType](ABC):
89
+ class Task(ABC):
90
+ """The contract a caller relies on to run an evaluation"""
91
+
92
+ @abstractmethod
93
+ def iterate_samples(self, num_samples: int | None = None) -> Iterable[Sample]: ...
94
+
95
+ @abstractmethod
96
+ def generate_completions(
97
+ self,
98
+ llm: "BaseLLM",
99
+ samples: list[Sample],
100
+ stop_sequences: list[str] | None = None,
101
+ max_tokens: int | None = None,
102
+ fail_on_error: bool = True,
103
+ ) -> list[Completion]:
104
+ """Run ``llm`` over ``samples`` and return their completions."""
105
+
106
+ @abstractmethod
107
+ def get_metadata(self) -> dict[str, str | list[str]]:
108
+ """Descriptive metadata about the eval for result reporting."""
109
+
110
+ @abstractmethod
111
+ def get_response_type(self) -> ResponseType: ...
112
+
113
+ @abstractmethod
114
+ def display_name(self) -> str:
115
+ """Human-readable display name. Is allowed to have special characters and whitespaces."""
116
+ ...
117
+
118
+
119
+ class BaseTask[SubjectType](Task):
90
120
  NAME: str
91
121
  DATASET_PATH: str
92
122
  SAMPLE_SPLIT: str
@@ -160,11 +190,27 @@ class BaseTask[SubjectType](ABC):
160
190
 
161
191
  assert hasattr(self, "SUBJECTS") and len(self.SUBJECTS) > 0
162
192
  if isinstance(self.SUBJECTS[0], tuple):
163
- # subjects are specified as strings but we need tuples
164
- filters = [tuple(item.strip() for item in subject.split(",")) for subject in custom_subjects]
193
+ # subjects are specified as comma-separated strings but tuple positions may each hold a
194
+ # different type (e.g. tuple[str, int, str]). Infer the expected type per position from an
195
+ # actual subject and cast each part back to it, so it compares equal to the real values
196
+ # below instead of just their str() form. "*" is a wildcard sentinel and stays a string.
197
+ num_items = len(self.SUBJECTS[0])
198
+ position_types = [type(self.SUBJECTS[0][i]) for i in range(num_items)]
199
+
200
+ def cast(raw: str, i: int) -> Any:
201
+ raw = raw.strip()
202
+ return raw if raw == "*" else position_types[i](raw)
203
+
204
+ filters = []
205
+ for custom_subject in custom_subjects:
206
+ parts = custom_subject.split(",")
207
+ assert len(parts) == num_items, (
208
+ f"Subject '{custom_subject}' has {len(parts)} parts, expected {num_items} for "
209
+ f"task {self.display_name()}"
210
+ )
211
+ filters.append(tuple(cast(part, i) for i, part in enumerate(parts)))
165
212
 
166
213
  # check if all parts of custom subjects exists (* is a wildcard)
167
- num_items = len(self.SUBJECTS[0])
168
214
  legal_values = [
169
215
  set([s[i] for s in self.SUBJECTS if isinstance(s, tuple)] + ["*"]) for i in range(num_items)
170
216
  ]
@@ -174,18 +220,18 @@ class BaseTask[SubjectType](ABC):
174
220
  assert v in legal_values[i], f"Subject part {v} not found in task {self.__class__.__name__}"
175
221
 
176
222
  # filter task subjects. * is a supported wildcard for a specific item in a tuple, e.g. "DE_DE, *"
177
- chosen_subjects = []
223
+ chosen_subjects: list[tuple] = []
178
224
  for subject in self.SUBJECTS:
179
225
  subject_tuple = subject if isinstance(subject, tuple) else tuple(str(subject).split(","))
180
226
  for filter in filters:
181
227
  if all(filter[i] == "*" or filter[i] == subject_tuple[i] for i in range(num_items)):
182
228
  chosen_subjects.append(subject_tuple)
183
229
  break
184
- return chosen_subjects # type: ignore[return-value]
230
+ return chosen_subjects
185
231
  else:
186
232
  for cs in custom_subjects:
187
233
  assert cs in self.SUBJECTS, f"Subject {cs} not found in task {self.__class__.__name__}"
188
- return custom_subjects # type: ignore[return-value]
234
+ return custom_subjects
189
235
 
190
236
  def _load_hf_dataset(self, **kwargs: Any) -> Any:
191
237
  cache_dir: str = os.environ.get("HF_DATASET_CACHE_DIR", f"{Path.home()}/.cache/huggingface/datasets")
@@ -497,3 +543,6 @@ class BaseTask[SubjectType](ABC):
497
543
  def METRICS(cls) -> list[type["BaseMetric"]]:
498
544
  """For backwards compatibility."""
499
545
  return cls.get_metrics()
546
+
547
+ def display_name(self) -> str:
548
+ return self.NAME
@@ -232,3 +232,8 @@ class GPQA_COT(GPQA):
232
232
  # index 1 selects the letter
233
233
  answer_key = choices[correct_answer_position][1]
234
234
  return answer_key
235
+
236
+
237
+ class GPQA_DIAMOND_COT(GPQA_COT):
238
+ NAME = "GPQA_DIAMOND_COT"
239
+ SUBJECTS = ["gpqa_diamond"]
@@ -47,7 +47,7 @@ def markdown_doc(
47
47
  buf.write(f"- Module: `{module}`\n\n")
48
48
 
49
49
  if http_path:
50
- buf.write(f"- Link to dataset: [{http_path}]({http_path})\n\n")
50
+ buf.write(f"- Link to dataset: [{http_path}]({http_path})\n")
51
51
  else:
52
52
  assert example_messages is not None, "a task without a dataset link must supply an example sample"
53
53
  for split, size in (split_sizes or {}).items():
@@ -18,7 +18,6 @@ __all__ = [
18
18
  "EvalFactory",
19
19
  "Registry",
20
20
  "with_registry",
21
- "get_task",
22
21
  "is_registered",
23
22
  "validate_task_name",
24
23
  "registered_task_names",
@@ -36,8 +35,8 @@ class EvalFactory(ABC):
36
35
  """
37
36
 
38
37
  @abstractmethod
39
- def task_class(self) -> type[BaseTask]:
40
- """Return the task class, importing it on first access if necessary."""
38
+ def id(self) -> str:
39
+ "Canonical key used to register this benchmark"
41
40
 
42
41
  @property
43
42
  @abstractmethod
@@ -75,13 +74,10 @@ class EvalFactory(ABC):
75
74
  user_prompt_suffix: str | None = None,
76
75
  ) -> BaseTask: ...
77
76
 
77
+ @abstractmethod
78
78
  def markdown_doc(self, formatters: Sequence[BaseFormatter]) -> str:
79
79
  """Render the eval's documentation as markdown."""
80
- try:
81
- task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None)
82
- except (TypeError, ValueError, AssertionError):
83
- task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None)
84
- return task.markdown_doc(formatters)
80
+ ...
85
81
 
86
82
 
87
83
  class _Lazy(EvalFactory):
@@ -104,6 +100,9 @@ class _Lazy(EvalFactory):
104
100
  def source_module(self) -> str:
105
101
  return self._module
106
102
 
103
+ def id(self) -> str:
104
+ return self._class_name
105
+
107
106
  def task_class(self) -> type[BaseTask]:
108
107
  if self._loaded is None:
109
108
  module = importlib.import_module(self._module)
@@ -152,6 +151,13 @@ class _Lazy(EvalFactory):
152
151
  """The eval's human-readable display name (the task's ``NAME``)."""
153
152
  return self.task_class().NAME
154
153
 
154
+ def markdown_doc(self, formatters: Sequence[BaseFormatter]) -> str:
155
+ try:
156
+ task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None)
157
+ except (TypeError, ValueError, AssertionError):
158
+ task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None)
159
+ return task.markdown_doc(formatters)
160
+
155
161
 
156
162
  class _Eager(EvalFactory):
157
163
  """Wraps an already-imported task class."""
@@ -163,8 +169,8 @@ class _Eager(EvalFactory):
163
169
  def source_module(self) -> str:
164
170
  return self._task.__module__
165
171
 
166
- def task_class(self) -> type[BaseTask]:
167
- return self._task
172
+ def id(self) -> str:
173
+ return self._task.__name__
168
174
 
169
175
  def create(
170
176
  self,
@@ -173,7 +179,7 @@ class _Eager(EvalFactory):
173
179
  custom_hf_revision: str | None,
174
180
  user_prompt_suffix: str | None = None,
175
181
  ) -> BaseTask:
176
- return self.task_class().with_overwrite(
182
+ return self._task.with_overwrite(
177
183
  num_fewshot=num_fewshot,
178
184
  custom_subjects=custom_subjects,
179
185
  custom_hf_revision=custom_hf_revision,
@@ -188,7 +194,7 @@ class _Eager(EvalFactory):
188
194
  custom_hf_revision: str | None,
189
195
  user_prompt_suffix: str | None = None,
190
196
  ) -> BaseTask:
191
- perturbation_task_class = create_perturbation_class(self.task_class(), perturbation_config)
197
+ perturbation_task_class = create_perturbation_class(self._task, perturbation_config)
192
198
  return perturbation_task_class.with_overwrite(
193
199
  num_fewshot=num_fewshot,
194
200
  custom_subjects=custom_subjects,
@@ -198,32 +204,34 @@ class _Eager(EvalFactory):
198
204
 
199
205
  def response_type(self) -> ResponseType:
200
206
  """The eval's response type"""
201
- return self.task_class().get_response_type()
207
+ return self._task.get_response_type()
202
208
 
203
209
  def metrics(self) -> list[type["BaseMetric"]]:
204
210
  """The eval's metrics"""
205
- return self.task_class().get_metrics()
211
+ return self._task.get_metrics()
206
212
 
207
213
  def display_name(self) -> str:
208
214
  """The eval's human-readable display name (the task's ``NAME``)."""
209
- return self.task_class().NAME
215
+ return self._task.NAME
210
216
 
217
+ def markdown_doc(self, formatters: Sequence[BaseFormatter]) -> str:
218
+ try:
219
+ task = self.create(num_fewshot=1, custom_subjects=None, custom_hf_revision=None)
220
+ except (TypeError, ValueError, AssertionError):
221
+ task = self.create(num_fewshot=0, custom_subjects=None, custom_hf_revision=None)
222
+ return task.markdown_doc(formatters)
211
223
 
212
- class Registry:
213
- """A registry for tasks with support for lazy loading.
214
224
 
215
- Task names are hashed based on the upper-case name, to avoid issues with
216
- ambiguous naming.
217
- """
225
+ class Registry:
226
+ """A registry for Tasks"""
218
227
 
219
228
  def __init__(self) -> None:
220
- # TODO: Lookup only with upper names
221
- self._registry: dict[str, tuple[str, EvalFactory]] = dict()
229
+ self._registry: dict[str, EvalFactory] = dict()
222
230
 
223
231
  def __iter__(self) -> Iterator[str]:
224
232
  """Iterate over all task names in the registry."""
225
- for name, _ in self._registry.values():
226
- yield name
233
+ for factory in self._registry.values():
234
+ yield factory.id()
227
235
 
228
236
  def task_names(self) -> list[str]:
229
237
  """The names of all registered tasks."""
@@ -231,7 +239,8 @@ class Registry:
231
239
 
232
240
  def items(self) -> Iterator[tuple[str, EvalFactory]]:
233
241
  """Iterate over `(task name, EvalFactory)` pairs in the registry."""
234
- yield from self._registry.values()
242
+ for factory in self._registry.values():
243
+ yield factory.id(), factory
235
244
 
236
245
  @staticmethod
237
246
  def _task_key(name: str, /) -> str:
@@ -249,26 +258,25 @@ class Registry:
249
258
  def __getitem__(self, name: str, /) -> EvalFactory:
250
259
  task_key = self._task_key(name)
251
260
  try:
252
- _, factory = self._registry[task_key]
261
+ return self._registry[task_key]
253
262
  except KeyError:
254
263
  raise KeyError(f"Task not found: {name=} with task_key {task_key=}")
255
264
 
256
- return factory
257
-
258
- def __setitem__(self, name: str, factory: EvalFactory) -> None:
259
- task_key = self._task_key(name)
265
+ def add(self, factory: EvalFactory) -> None:
266
+ """Register a factory under the key derived from its ``id()``."""
267
+ task_key = self._task_key(factory.id())
260
268
  if task_key in self._registry:
261
269
  raise ValueError(f"Cannot register duplicate task with key: {task_key}")
262
270
 
263
- self._registry[task_key] = (name, factory)
271
+ self._registry[task_key] = factory
264
272
 
265
273
  def register(self, task: type[BaseTask]) -> str:
266
274
  """The class name is used as the task name."""
267
275
  if not issubclass(task, BaseTask):
268
276
  raise ValueError(f"Can only register subclasses of BaseTask, got {task}")
269
- name = task.__name__
270
- self[name] = _Eager(task)
271
- return name
277
+ factory = _Eager(task)
278
+ self.add(factory)
279
+ return factory.id()
272
280
 
273
281
  def register_lazy(self, class_path: str, /) -> None:
274
282
  """Register a task by its dotted class path, without importing its module."""
@@ -278,7 +286,7 @@ class Registry:
278
286
  "`eval_framework.tasks.benchmarks.mmlu.MMLU`): "
279
287
  )
280
288
  base_module, class_name = class_path.rsplit(".", maxsplit=1)
281
- self[class_name] = _Lazy(class_name=class_name, module=base_module)
289
+ self.add(_Lazy(class_name=class_name, module=base_module))
282
290
 
283
291
 
284
292
  _REGISTRY = Registry()
@@ -317,19 +325,12 @@ def validate_task_name(name: str) -> str:
317
325
  return name
318
326
 
319
327
 
320
- def get_task(name: str, /) -> type[BaseTask]:
321
- """Return a registered task for a given name.
322
-
323
- Note: This method will import any lazily registered task.
324
- """
325
- return _REGISTRY[name].task_class()
326
-
327
-
328
328
  def register_task(task: type[BaseTask]) -> str:
329
329
  """The class name is used as the task name."""
330
330
  return registry().register(task)
331
331
 
332
332
 
333
- def register_lazy_task(class_path: str, /) -> None:
333
+ def register_lazy_task(class_path: str, /, registry: Registry | None = None) -> None:
334
334
  """Register a task by its dotted class path, without importing its module."""
335
- registry().register_lazy(class_path)
335
+ r = registry if registry is not None else _REGISTRY
336
+ 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)