eval-framework 0.6.4__tar.gz → 0.8.0__tar.gz

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