eval-framework 0.5.2__tar.gz → 0.6.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. {eval_framework-0.5.2 → eval_framework-0.6.3}/PKG-INFO +6 -6
  2. {eval_framework-0.5.2 → eval_framework-0.6.3}/pyproject.toml +9 -10
  3. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/code_assertion.py +1 -1
  4. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/base.py +6 -0
  5. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/arc.py +6 -0
  6. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/arc_de.py +3 -0
  7. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/bigcodebench.py +3 -0
  8. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/copa.py +3 -0
  9. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/csqa.py +3 -0
  10. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/drop.py +5 -0
  11. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/global_mmlu.py +4 -0
  12. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/goldenswag.py +4 -0
  13. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/gpqa.py +3 -0
  14. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/gsm8k.py +3 -0
  15. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/hellaswag.py +4 -0
  16. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/humaneval.py +5 -0
  17. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/ifeval.py +5 -0
  18. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/math_reasoning.py +27 -18
  19. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/mbpp.py +5 -0
  20. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/medqa.py +3 -0
  21. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/mmlu.py +8 -0
  22. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +7 -0
  23. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/multipl_e.py +25 -0
  24. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +4 -0
  25. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/piqa.py +6 -0
  26. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/sciq.py +3 -0
  27. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/social_iqa.py +3 -0
  28. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/squad.py +5 -0
  29. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/triviaqa.py +5 -0
  30. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/winogrande.py +3 -0
  31. eval_framework-0.6.3/src/eval_framework/tasks/dataset_revisions.py +145 -0
  32. eval_framework-0.6.3/src/eval_framework/tasks/hf-dataset-revisions.json +36 -0
  33. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/registry.py +33 -16
  34. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/task-dataset-revisions.json +4 -0
  35. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/task_names.py +12 -7
  36. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/utils.py +9 -1
  37. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/generate_task_docs.py +4 -3
  38. eval_framework-0.5.2/src/eval_framework/metrics/completion/aidanbench.py +0 -28
  39. eval_framework-0.5.2/src/eval_framework/metrics/completion/cwe_accuracy.py +0 -49
  40. eval_framework-0.5.2/src/eval_framework/metrics/completion/niah_accuracy.py +0 -163
  41. eval_framework-0.5.2/src/eval_framework/metrics/completion/struct_eval_metrics.py +0 -248
  42. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/aidanbench.py +0 -220
  43. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/arc_fi.py +0 -46
  44. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/balancedcopa.py +0 -56
  45. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/belebele.py +0 -60
  46. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/casehold.py +0 -49
  47. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/chembench.py +0 -85
  48. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/duc.py +0 -95
  49. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/flores200.py +0 -122
  50. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/flores_plus.py +0 -83
  51. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/hellaswag_de.py +0 -53
  52. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/include.py +0 -119
  53. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/infinitebench.py +0 -299
  54. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/lab_bench.py +0 -89
  55. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/mmlu_de.py +0 -111
  56. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/mmmlu.py +0 -535
  57. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/openbookqa.py +0 -130
  58. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/opengptx_eu20.py +0 -373
  59. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/pawsx.py +0 -65
  60. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/quality.py +0 -56
  61. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/sphyr.py +0 -79
  62. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/struct_eval.py +0 -116
  63. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/tablebench.py +0 -121
  64. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/truthfulqa.py +0 -165
  65. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/winogender.py +0 -64
  66. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/winox.py +0 -89
  67. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/wmt.py +0 -160
  68. eval_framework-0.5.2/src/eval_framework/tasks/benchmarks/zero_scrolls.py +0 -199
  69. eval_framework-0.5.2/src/eval_framework/tasks/dataset_revisions.py +0 -106
  70. {eval_framework-0.5.2 → eval_framework-0.6.3}/LICENSE +0 -0
  71. {eval_framework-0.5.2 → eval_framework-0.6.3}/README.md +0 -0
  72. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/__init__.py +0 -0
  73. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/base_config.py +0 -0
  74. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/context/__init__.py +0 -0
  75. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/context/determined.py +0 -0
  76. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/context/eval.py +0 -0
  77. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/context/local.py +0 -0
  78. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/evaluation_generator.py +0 -0
  79. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/exceptions.py +0 -0
  80. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/external/drop_process_results.py +0 -0
  81. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  82. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  83. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  84. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  85. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  86. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/__init__.py +0 -0
  87. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/aleph_alpha.py +0 -0
  88. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/base.py +0 -0
  89. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/huggingface.py +0 -0
  90. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/mistral.py +0 -0
  91. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/models.py +0 -0
  92. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/openai.py +0 -0
  93. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/vllm.py +0 -0
  94. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/llm/vllm_local_server.py +0 -0
  95. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/logger.py +0 -0
  96. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/main.py +0 -0
  97. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/__init__.py +0 -0
  98. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
  99. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
  100. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/base.py +0 -0
  101. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/__init__.py +0 -0
  102. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  103. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/bleu.py +0 -0
  104. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/chrf.py +0 -0
  105. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  106. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  107. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  108. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  109. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  110. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/f1.py +0 -0
  111. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  112. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  113. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  114. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/json_format.py +0 -0
  115. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  116. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/length_control.py +0 -0
  117. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  118. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  119. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  120. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  121. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  122. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/repetition.py +0 -0
  123. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  124. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  125. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  126. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  127. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/ter.py +0 -0
  128. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  129. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
  130. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  131. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/__init__.py +0 -0
  132. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/base.py +0 -0
  133. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  134. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  135. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  136. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  137. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  138. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  139. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  140. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  141. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  142. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  143. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  144. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  145. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  146. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  147. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  148. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  149. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  150. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  151. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  152. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  153. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  154. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  155. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  156. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  157. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  158. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/llm/utils.py +0 -0
  159. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
  160. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
  161. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  162. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  163. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  164. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  165. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  166. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  167. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/py.typed +0 -0
  168. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/response_generator.py +0 -0
  169. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/result_processors/__init__.py +0 -0
  170. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/result_processors/base.py +0 -0
  171. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  172. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/result_processors/result_processor.py +0 -0
  173. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  174. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/run.py +0 -0
  175. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/run_direct.py +0 -0
  176. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/shared/types.py +0 -0
  177. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/suite.py +0 -0
  178. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  179. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/__init__.py +0 -0
  180. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
  181. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/eval_config.py +0 -0
  182. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/perturbation.py +0 -0
  183. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/task_loader.py +0 -0
  184. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/tasks/task_style.py +0 -0
  185. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/constants.py +0 -0
  186. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/file_ops.py +0 -0
  187. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/helpers.py +0 -0
  188. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/logging.py +0 -0
  189. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/packaging.py +0 -0
  190. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/eval_framework/utils/tqdm_handler.py +0 -0
  191. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/template_formatting/README.md +0 -0
  192. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/template_formatting/__init__.py +0 -0
  193. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/template_formatting/formatter.py +0 -0
  194. {eval_framework-0.5.2 → eval_framework-0.6.3}/src/template_formatting/mistral_formatter.py +0 -0
  195. {eval_framework-0.5.2 → eval_framework-0.6.3}/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.5.2
3
+ Version: 0.6.3
4
4
  Summary: Evaluation Framework
5
5
  Author: Aleph Alpha Research
6
6
  License: Apache License
@@ -217,7 +217,7 @@ Requires-Dist: pydantic>=2.13.4,<3
217
217
  Requires-Dist: datasets>=5.0.0,<6
218
218
  Requires-Dist: sacrebleu>=2.6.0,<3
219
219
  Requires-Dist: pycountry>=26.2.16,<27
220
- Requires-Dist: nltk>=3.9.4,<4
220
+ Requires-Dist: nltk>=3.10.0,<4
221
221
  Requires-Dist: python-dotenv>=1.2.2,<2
222
222
  Requires-Dist: lingua-language-detector>=2.2.0,<3
223
223
  Requires-Dist: google-crc32c>=1.8.0,<2
@@ -231,7 +231,7 @@ Requires-Dist: llm-sandbox[docker]==0.3.39
231
231
  Requires-Dist: jsonlines>=4,<5
232
232
  Requires-Dist: lxml>=6.1.1,<7
233
233
  Requires-Dist: python-iso639>=2026.4.20
234
- Requires-Dist: wandb>=0.27.2,<1
234
+ Requires-Dist: wandb>=0.28.0,<1
235
235
  Requires-Dist: boto3>=1.43.19,<2
236
236
  Requires-Dist: numpy>=2.2.6
237
237
  Requires-Dist: antlr4-python3-runtime==4.11.0
@@ -240,11 +240,11 @@ Requires-Dist: accelerate ; extra == 'accelerate'
240
240
  Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,vllm,optional,mistral] ; extra == 'all'
241
241
  Requires-Dist: aleph-alpha-client>=11.5.1 ; extra == 'api'
242
242
  Requires-Dist: determined>=0.38.1,<0.39 ; extra == 'determined'
243
- Requires-Dist: tensorboard==2.20.0 ; extra == 'determined'
244
- Requires-Dist: mistral-common>=1.11.3,<2 ; extra == 'mistral'
243
+ Requires-Dist: tensorboard==2.21.0 ; extra == 'determined'
244
+ Requires-Dist: mistral-common>=1.11.5,<2 ; extra == 'mistral'
245
245
  Requires-Dist: huggingface-hub>=0.36.2,<0.37 ; extra == 'mistral'
246
246
  Requires-Dist: eval-framework[vllm] ; extra == 'mistral'
247
- Requires-Dist: openai>=1.62,<3 ; extra == 'openai'
247
+ Requires-Dist: openai>=1.109.1,<3 ; extra == 'openai'
248
248
  Requires-Dist: tiktoken>=0.13.0,<1 ; extra == 'openai'
249
249
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
250
250
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'optional'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eval-framework"
3
- version = "0.5.2"
3
+ version = "0.6.3"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -24,7 +24,7 @@ dependencies = [
24
24
  "datasets>=5.0.0,<6",
25
25
  "sacrebleu>=2.6.0,<3",
26
26
  "pycountry>=26.2.16,<27",
27
- "nltk>=3.9.4,<4",
27
+ "nltk>=3.10.0,<4",
28
28
  "python-dotenv>=1.2.2,<2",
29
29
  "lingua-language-detector>=2.2.0,<3",
30
30
  "google-crc32c>=1.8.0,<2",
@@ -38,7 +38,7 @@ dependencies = [
38
38
  "jsonlines>=4,<5",
39
39
  "lxml>=6.1.1,<7",
40
40
  "python-iso639>=2026.4.20",
41
- "wandb>=0.27.2,<1",
41
+ "wandb>=0.28.0,<1",
42
42
  "boto3>=1.43.19,<2",
43
43
  "numpy>=2.2.6",
44
44
  # is a dependency of sympy, but not explicitly listed in the requirements.txt
@@ -51,11 +51,11 @@ dependencies = [
51
51
  # Model-specific extras
52
52
  determined = [
53
53
  "determined>=0.38.1,<0.39",
54
- "tensorboard==2.20.0"
54
+ "tensorboard==2.21.0"
55
55
  ]
56
56
  api = ["aleph-alpha-client>=11.5.1"]
57
57
  openai = [
58
- "openai>=1.62,<3",
58
+ "openai>=1.109.1,<3",
59
59
  "tiktoken>=0.13.0,<1",
60
60
  "transformers>=4.45.2,<5",
61
61
  ]
@@ -70,7 +70,7 @@ vllm = [
70
70
  "torch>=2.5,<3"
71
71
  ]
72
72
  mistral = [
73
- "mistral-common>=1.11.3,<2",
73
+ "mistral-common>=1.11.5,<2",
74
74
  "huggingface-hub>=0.36.2,<0.37",
75
75
  "eval_framework[vllm]",
76
76
  ]
@@ -91,7 +91,7 @@ eval_framework = "eval_framework.run:run"
91
91
 
92
92
  [dependency-groups]
93
93
  dev = [
94
- "mypy>=2.1.0,<3",
94
+ "mypy>=2.2.0,<3",
95
95
  "pytest>=9.1.1,<10",
96
96
  "pytest-mock>=3.15.1",
97
97
  "pytest-xdist>=3.8.0,<4",
@@ -100,7 +100,7 @@ dev = [
100
100
  "types-python-dateutil>=2.9.0.20260518,<3",
101
101
  "types-requests>=2.33.0.20260518,<3",
102
102
  "plotly>=6.8.0,<7",
103
- "ruff>=0.15.18",
103
+ "ruff>=0.15.20",
104
104
  "pip-licenses>=5.5.5",
105
105
  ]
106
106
  flash-attn = [
@@ -109,7 +109,7 @@ flash-attn = [
109
109
  ]
110
110
 
111
111
  [build-system]
112
- requires = ["uv_build>=0.11.23,<0.11.24"]
112
+ requires = ["uv_build>=0.11.28,<0.11.29"]
113
113
  build-backend = "uv_build"
114
114
 
115
115
  [tool.uv.build-backend]
@@ -145,7 +145,6 @@ known-third-party = ["wandb"]
145
145
 
146
146
  [tool.ruff.lint.extend-per-file-ignores]
147
147
  "__init__.py" = ["F401"]
148
- "tests/tests_eval_framework/tasks/benchmarks/test_mmlu_de.py" = ["E501"]
149
148
 
150
149
  [tool.mypy]
151
150
  plugins = "pydantic.mypy"
@@ -15,7 +15,7 @@ class CodeCompletionAssertion(BaseMetric[Completion]):
15
15
  # this will always be a list, if return is "" this will be an empty list
16
16
  code = response.completion
17
17
  try:
18
- output = run_python_code(code, image="python:3.12-slim")
18
+ output = run_python_code(code, image="python:3.12-slim", runtime_configs={"mem_limit": "512m"})
19
19
  except SandboxTimeoutError:
20
20
  # The submitted code timed out (e.g. an infinite loop) -- a failing sample, not an infra
21
21
  # problem.
@@ -95,6 +95,12 @@ class BaseTask[SubjectType](ABC):
95
95
  SUBJECTS: list[SubjectType]
96
96
  HF_REVISION: str | None = None # tag name, or branch name, or commit hash to ensure reproducibility
97
97
 
98
+ # The lock file this task resolves its pinned dataset revision from, keyed by ``DATASET_PATH``.
99
+ # Each task sets this explicitly: point it at a lock file (e.g. ``HF_REVISIONS_LOCKFILE`` or a
100
+ # frozen one), or ``None`` to opt out of pinning. Deliberately not defaulted so it is never
101
+ # inherited implicitly (a subclass in another package would otherwise resolve the wrong file).
102
+ REVISION_LOCKFILE: Path | None
103
+
98
104
  # Words in _get_instruction_text() not to be perturbed. List of words is case insensitive. No special characters
99
105
  # or whitespace should be included.
100
106
  PERTURBATION_UNMODIFIABLE_WORDS: list[str] | None
@@ -9,12 +9,15 @@ 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 BaseTask, Language, ResponseType
12
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
12
13
  from eval_framework.tasks.utils import get_n_letters
13
14
 
14
15
 
15
16
  class ARC(BaseTask[str]):
16
17
  """ARC dataset: https://huggingface.co/datasets/allenai/ai2_arc"""
17
18
 
19
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
20
+
18
21
  NAME = "ARC"
19
22
  DATASET_PATH = "allenai/ai2_arc"
20
23
  SAMPLE_SPLIT = "test"
@@ -55,6 +58,8 @@ class ARC_OLMES(ARC):
55
58
  loglikelihood over " A"/" B"/ etc.
56
59
  """
57
60
 
61
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
62
+
58
63
  NAME = "ARC_OLMES"
59
64
 
60
65
  def _get_instruction_text(self, item: dict[str, Any]) -> str:
@@ -76,6 +81,7 @@ class ARC_OLMES(ARC):
76
81
 
77
82
 
78
83
  class ARC_IDK(ARC):
84
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
79
85
  NAME = "ARC_IDK"
80
86
  METRICS = [
81
87
  AccuracyLoglikelihood,
@@ -6,12 +6,15 @@ from eval_framework.metrics.loglikelihood.accuracy_loglikelihood import (
6
6
  )
7
7
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
8
8
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
9
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
9
10
  from eval_framework.tasks.utils import get_n_letters
10
11
 
11
12
 
12
13
  class ARC_DE(BaseTask[str]):
13
14
  """ARC-DE dataset: https://huggingface.co/datasets/LeoLM/ArcChallenge_de"""
14
15
 
16
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
17
+
15
18
  NAME = "ARC German"
16
19
  DATASET_PATH = "LeoLM/ArcChallenge_de"
17
20
  SAMPLE_SPLIT = "test"
@@ -16,6 +16,7 @@ from eval_framework.tasks.base import (
16
16
  Sample,
17
17
  SubjectType,
18
18
  )
19
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
19
20
  from eval_framework.tasks.utils import (
20
21
  BIG_CODE_BENCH_PACKAGE_MAPPING,
21
22
  CallableSerializer,
@@ -123,6 +124,8 @@ class BigCodeBench_OLMES(BigCodeBench):
123
124
  then compute pass@1 over the 5 samples per problem (post-process if needed).
124
125
  """
125
126
 
127
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
128
+
126
129
  NAME = "BigCodeBench_OLMES"
127
130
  SAMPLE_SPLIT = "v0.1.2"
128
131
  FEWSHOT_SPLIT = "v0.1.2"
@@ -8,6 +8,7 @@ from eval_framework.metrics.loglikelihood.confidence_weighted_accuracy import Co
8
8
  from eval_framework.metrics.loglikelihood.dcs import DistributionalCorrectnessScore
9
9
  from eval_framework.metrics.loglikelihood.ternary import TernaryScore
10
10
  from eval_framework.tasks.base import BaseTask, Language, ResponseType
11
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
11
12
  from eval_framework.tasks.utils import get_n_letters
12
13
 
13
14
 
@@ -51,6 +52,8 @@ class COPA_OLMES(COPAEvalHarness):
51
52
  space-prefixed labels (" A.", " B."); loglikelihood over " A"/" B".
52
53
  """
53
54
 
55
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
56
+
54
57
  NAME = "COPA_OLMES"
55
58
 
56
59
  def _get_instruction_text(self, item: dict[str, Any]) -> str:
@@ -6,6 +6,7 @@ from eval_framework.metrics.loglikelihood.accuracy_loglikelihood import (
6
6
  )
7
7
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
8
8
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
9
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
9
10
  from eval_framework.tasks.utils import get_n_letters
10
11
 
11
12
 
@@ -86,6 +87,8 @@ class CommonsenseQAMC_OLMES(CommonsenseQAMC):
86
87
  CommonsenseQA MC with OLMES-style prompt: space before each label in the prompt (" A.", " B.", ...).
87
88
  """
88
89
 
90
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
91
+
89
92
  NAME = "CommonsenseQAMC_OLMES"
90
93
  SAMPLE_SPLIT = "train" # Use train split (largest) to best match OLMES, which evaluates all splits
91
94
  FEWSHOT_SPLIT = "train"
@@ -10,6 +10,7 @@ from eval_framework.metrics.loglikelihood.accuracy_loglikelihood import (
10
10
  )
11
11
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
12
12
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
13
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
13
14
  from eval_framework.tasks.utils import get_n_letters
14
15
 
15
16
 
@@ -139,6 +140,8 @@ class DropCompletion(BaseTask[str]):
139
140
  class DropCompletion_OLMES(DropCompletion):
140
141
  """DropCompletion matching OLMES, using train split for fewshot and max tokens 100."""
141
142
 
143
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
144
+
142
145
  NAME = "DropCompletion_OLMES"
143
146
  FEWSHOT_SPLIT = "train"
144
147
 
@@ -210,6 +213,8 @@ class DropMC_OLMES(DropMC):
210
213
  DropMC with OLMES-style prompt: space before each label in the prompt (" A.", " B.", ...).
211
214
  """
212
215
 
216
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
217
+
213
218
  NAME = "DropMC_OLMES"
214
219
 
215
220
  def _get_instruction_text(self, item: dict[str, Any]) -> str:
@@ -9,6 +9,7 @@ from eval_framework.metrics.loglikelihood.accuracy_loglikelihood import (
9
9
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
10
10
  from eval_framework.tasks.base import RANDOM_SEED, BaseTask, Language, ResponseType
11
11
  from eval_framework.tasks.benchmarks.mmlu import MMLU_SUBJECTS
12
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
12
13
  from eval_framework.tasks.utils import get_n_letters
13
14
 
14
15
  GLOBAL_MMLU_LANGUAGES = ["fr", "de", "es", "it", "pt", "ar"]
@@ -469,6 +470,8 @@ class GlobalMMLU(BaseTask[tuple[str, str]]):
469
470
  https://github.com/aisingapore/SEA-HELM/blob/main/seahelm_tasks/knowledge/global_mmlu/abstract_algebra/config.yaml
470
471
  """
471
472
 
473
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
474
+
472
475
  NAME = "GlobalMMLU"
473
476
  DATASET_PATH = "CohereLabs/Global-MMLU"
474
477
  SAMPLE_SPLIT = "test"
@@ -534,6 +537,7 @@ class GlobalMMLU(BaseTask[tuple[str, str]]):
534
537
 
535
538
 
536
539
  class GlobalMMLU_German(GlobalMMLU):
540
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
537
541
  NAME = "GlobalMMLU_German"
538
542
  SUBJECTS = [("de", subject) for subject in MMLU_SUBJECTS]
539
543
  LANGUAGE = Language.DEU
@@ -8,12 +8,15 @@ from eval_framework.metrics.loglikelihood.confidence_weighted_accuracy import Co
8
8
  from eval_framework.metrics.loglikelihood.dcs import DistributionalCorrectnessScore
9
9
  from eval_framework.metrics.loglikelihood.ternary import TernaryScore
10
10
  from eval_framework.tasks.benchmarks.hellaswag import HELLASWAG
11
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
11
12
 
12
13
 
13
14
  class GOLDENSWAG(HELLASWAG):
14
15
  """GoldenSwag dataset: https://huggingface.co/datasets/PleIAs/GoldenSwag
15
16
  available data set sections: validation"""
16
17
 
18
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
19
+
17
20
  NAME = "GoldenSwag"
18
21
  DATASET_PATH = "PleIAs/GoldenSwag"
19
22
  SAMPLE_SPLIT = "validation"
@@ -21,6 +24,7 @@ class GOLDENSWAG(HELLASWAG):
21
24
 
22
25
 
23
26
  class GOLDENSWAG_IDK(GOLDENSWAG):
27
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
24
28
  NAME = "GoldenSwag_IDK"
25
29
  METRICS = [
26
30
  AccuracyLoglikelihood,
@@ -13,6 +13,7 @@ from eval_framework.metrics.loglikelihood.confidence_weighted_accuracy import Co
13
13
  from eval_framework.metrics.loglikelihood.dcs import DistributionalCorrectnessScore
14
14
  from eval_framework.metrics.loglikelihood.ternary import TernaryScore
15
15
  from eval_framework.tasks.base import NO_SUBJECT, RANDOM_SEED, BaseTask, Language, ResponseType, Sample, SubjectType
16
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
16
17
  from eval_framework.tasks.utils import get_n_letters
17
18
 
18
19
  logger = logging.getLogger(__name__)
@@ -126,6 +127,8 @@ class GPQA_OLMES(GPQA):
126
127
  (" A.", " B.", " C.", " D."); loglikelihood over " A"/" B"/" C"/" D".
127
128
  """
128
129
 
130
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
131
+
129
132
  NAME = "GPQA_OLMES"
130
133
 
131
134
  def _get_possible_completions_marked(self, item: dict[str, Any]) -> tuple[list[str], int]:
@@ -4,6 +4,7 @@ from typing import Any
4
4
 
5
5
  from eval_framework.metrics.completion.accuracy_completion import AccuracyCompletion, AccuracyCompletionOLMES
6
6
  from eval_framework.tasks.base import BaseTask, Language, ResponseType, Sample
7
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
7
8
  from eval_framework.tasks.task_style import BPBStyle
8
9
 
9
10
  logger = logging.getLogger(__name__)
@@ -155,6 +156,7 @@ class GSM8K(GSM8KEvalHarness):
155
156
 
156
157
 
157
158
  class GSM8K_OLMES(GSM8K):
159
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
158
160
  NAME = "GSM8K_OLMES"
159
161
  METRICS = [AccuracyCompletionOLMES]
160
162
 
@@ -219,6 +221,7 @@ class GSM8K_OLMES(GSM8K):
219
221
 
220
222
 
221
223
  class GSM8KBPB(GSM8K_OLMES):
224
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
222
225
  NAME = "GSM8KBPB"
223
226
  TASK_STYLER = BPBStyle(cue_text="Answer:", leading_space_continuations=False)
224
227
 
@@ -10,12 +10,15 @@ from eval_framework.metrics.loglikelihood.confidence_weighted_accuracy import Co
10
10
  from eval_framework.metrics.loglikelihood.dcs import DistributionalCorrectnessScore
11
11
  from eval_framework.metrics.loglikelihood.ternary import TernaryScore
12
12
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
13
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
13
14
 
14
15
 
15
16
  class HELLASWAG(BaseTask[str]):
16
17
  """Hellaswag dataset: https://huggingface.co/datasets/Rowan/hellaswag
17
18
  available data set sections: train, validation, test"""
18
19
 
20
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
21
+
19
22
  NAME = "HellaSwag"
20
23
  DATASET_PATH = "Rowan/hellaswag"
21
24
  SAMPLE_SPLIT = "validation"
@@ -49,6 +52,7 @@ class HELLASWAG(BaseTask[str]):
49
52
 
50
53
 
51
54
  class HELLASWAG_OLMES(HELLASWAG):
55
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
52
56
  NAME = "HellaSwag_OLMES"
53
57
  SAMPLE_SPLIT = "train"
54
58
 
@@ -4,6 +4,7 @@ from eval_framework.metrics.completion.code_assertion import CodeCompletionAsser
4
4
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
5
5
  from eval_framework.shared.types import BaseMetricContext
6
6
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType, Sample
7
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
7
8
 
8
9
  CODE_TO_EXECUTE = """
9
10
  {start_of_code}
@@ -84,6 +85,8 @@ class HumanEvalBPB(HumanEval):
84
85
  Reports bits-per-byte on the reference completion.
85
86
  """
86
87
 
88
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
89
+
87
90
  NAME = "Human Eval BPB"
88
91
  RESPONSE_TYPE = ResponseType.LOGLIKELIHOODS
89
92
  METRICS = [BitsPerByteLoglikelihood]
@@ -107,6 +110,8 @@ class HumanEval_OLMES(HumanEval):
107
110
  llm_args: {sampling_params: {temperature: 0.6, top_p: 0.6}}
108
111
  """
109
112
 
113
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
114
+
110
115
  NAME = "Human Eval OLMES"
111
116
 
112
117
  def __init__(self, num_fewshot: int = 3) -> None:
@@ -3,11 +3,14 @@ from typing import Any
3
3
  from eval_framework.metrics.completion.ifeval import IFEvalMetric, IFEvalMetricContext
4
4
  from eval_framework.metrics.completion.language_checker import LanguageRawConsistencyChecker
5
5
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
6
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
6
7
 
7
8
 
8
9
  class IFEval(BaseTask[str]):
9
10
  """IFEval: Instruction Following Eval (https://arxiv.org/pdf/2311.07911)."""
10
11
 
12
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
13
+
11
14
  NAME = "IFEval"
12
15
  DATASET_PATH = "google/IFEval"
13
16
  SAMPLE_SPLIT = "train"
@@ -73,6 +76,8 @@ class IFEvalFiSv(IFEval):
73
76
  class IFEvalDe(IFEval):
74
77
  """German version of the Instruction Following Evaluation (IFEval) benchmark."""
75
78
 
79
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
80
+
76
81
  NAME = "IFEval German"
77
82
  DATASET_PATH = "jzhang86/de_ifeval"
78
83
  SUBJECTS = [NO_SUBJECT]
@@ -15,6 +15,7 @@ from eval_framework.metrics.completion.minerva_math_utils import (
15
15
  normalized_gold_from_solution,
16
16
  )
17
17
  from eval_framework.tasks.base import NO_SUBJECT, RANDOM_SEED, BaseTask, Language, ResponseType, Sample, SubjectType
18
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
18
19
  from eval_framework.tasks.task_style import BPBStyle
19
20
 
20
21
  # Hendrycks MATH subject splits (shared by MATH, MATHMinervaEvalHarness, MATHMinervaBPB)
@@ -331,6 +332,8 @@ class AIME2024(MATHReasoning):
331
332
  pass@1 evaluation
332
333
  """
333
334
 
335
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
336
+
334
337
  NAME = "AIME2024"
335
338
  DATASET_PATH = "HuggingFaceH4/aime_2024"
336
339
  SAMPLE_SPLIT = "train"
@@ -387,6 +390,8 @@ class AIME2025(AIME2024):
387
390
  pass@1 evaluation
388
391
  """
389
392
 
393
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
394
+
390
395
  NAME = "AIME2025"
391
396
  DATASET_PATH = "math-ai/aime25"
392
397
  SAMPLE_SPLIT = "test"
@@ -406,6 +411,8 @@ class AIME2026(AIME2024):
406
411
  pass@1 evaluation
407
412
  """
408
413
 
414
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
415
+
409
416
  NAME = "AIME2026"
410
417
  DATASET_PATH = "math-ai/aime26"
411
418
  SAMPLE_SPLIT = "test"
@@ -426,6 +433,8 @@ class MATH500(MATHReasoning):
426
433
  pass@1 evaluation
427
434
  """
428
435
 
436
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
437
+
429
438
  NAME = "MATH500"
430
439
  DATASET_PATH = "HuggingFaceH4/MATH-500"
431
440
  SAMPLE_SPLIT = "test"
@@ -642,6 +651,8 @@ class GSM8KReasoning(MATHReasoning):
642
651
  Zero-shot reasoning version that expects answers in boxed format.
643
652
  """
644
653
 
654
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
655
+
645
656
  NAME = "GSM8KReasoning"
646
657
  DATASET_PATH = "openai/gsm8k"
647
658
  SAMPLE_SPLIT = "test"
@@ -742,6 +753,7 @@ _OLMES_FEWSHOTS = [
742
753
 
743
754
 
744
755
  class MATHMinerva_OLMES(MATHMinerva):
756
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
745
757
  NAME = "MATHMinerva_OLMES"
746
758
  METRICS = [MathMinervaCompletion, MathMinervaCompletionRelaxed]
747
759
 
@@ -755,32 +767,29 @@ class MATHMinerva_OLMES(MATHMinerva):
755
767
 
756
768
 
757
769
  class MATHMinervaBPB(MATHMinerva_OLMES):
770
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
758
771
  NAME = "MATHMinervaBPB"
759
- TASK_STYLER = BPBStyle(cue_text="Solution:")
760
-
761
- # BPBStyle already adds "Solution:" as that separate assistant message. But the methods we inherit
762
- # still put "Solution:" at the end of the question text and leave it out of the fewshot answer.
763
- # So we override them here: remove "Solution:" from the question, and add it back in front of the
764
- # fewshot answer. Without this, the question ends in "Solution:Solution:" and fewshot answers have
765
- # no "Solution:" label at all.
772
+ TASK_STYLER = BPBStyle(cue_text="Solution:", question_prefix="Problem:\n")
766
773
 
767
- def _get_instruction_text(self, item: dict[str, Any]) -> str:
768
- return "Problem:\n" + item["problem"] + "\n\n"
774
+ # MATHMinervaEvalHarness (an ancestor) overrides _get_instruction_text/_get_fewshot_target_text/
775
+ # _get_ground_truth directly instead of going through a TASK_STYLER, so we re-override them here to
776
+ # opt back into TASK_STYLER-driven formatting. _get_raw_question/_get_choices are the required data
777
+ # hooks the styler reads from; they have no styler-based default and must supply the raw text.
769
778
 
770
- def _get_fewshot_target_text(self, item: dict[str, Any]) -> str:
771
- return f"Solution: {item['solution']}"
779
+ def _get_raw_question(self, item: dict[str, Any]) -> str:
780
+ return item["problem"]
772
781
 
773
782
  def _get_choices(self, item: dict[str, Any]) -> list[str]:
774
- answer = normalized_gold_from_solution(item["solution"])
775
- template = f"\nFinal Answer: The final answer is {answer}. I hope it is correct."
776
-
777
- return [item["solution"] + template]
783
+ return [item["solution"]]
778
784
 
779
785
  def _get_correct_index(self, item: dict[str, Any]) -> int:
780
786
  return 0
781
787
 
782
- def _get_raw_question(self, item: dict[str, Any]) -> str:
783
- return item["problem"]
788
+ def _get_instruction_text(self, item: dict[str, Any]) -> str:
789
+ return self.TASK_STYLER.get_instruction_text(self._get_raw_question(item), self._get_choices(item))
790
+
791
+ def _get_fewshot_target_text(self, item: dict[str, Any]) -> str:
792
+ return self.TASK_STYLER.get_fewshot_target_text(self._get_choices(item), self._get_correct_index(item))
784
793
 
785
794
  def _get_ground_truth(self, item: dict[str, Any]) -> str | None | list[str]:
786
- return self._get_choices(item)[0]
795
+ return self.TASK_STYLER.get_ground_truth(self._get_choices(item), self._get_correct_index(item))
@@ -9,6 +9,7 @@ from eval_framework.metrics.completion.code_assertion import (
9
9
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
10
10
  from eval_framework.shared.types import BaseMetricContext
11
11
  from eval_framework.tasks.base import BaseTask, Language, ResponseType, Sample
12
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
12
13
 
13
14
  logger = logging.getLogger(__name__)
14
15
 
@@ -124,6 +125,8 @@ class MBPPBPB(MBPP):
124
125
  Reports bits-per-byte on the reference solution.
125
126
  """
126
127
 
128
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
129
+
127
130
  NAME = "MBPP BPB"
128
131
  RESPONSE_TYPE = ResponseType.LOGLIKELIHOODS
129
132
  METRICS = [BitsPerByteLoglikelihood]
@@ -271,6 +274,8 @@ class MBPP_OLMES(MBPP):
271
274
  repeats: 32
272
275
  """
273
276
 
277
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
278
+
274
279
  NAME = "MBPP_OLMES"
275
280
  FEWSHOT_SPLIT = "test"
276
281
 
@@ -10,6 +10,7 @@ from eval_framework.metrics.loglikelihood.accuracy_loglikelihood import (
10
10
  )
11
11
  from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglikelihood
12
12
  from eval_framework.tasks.base import NO_SUBJECT, BaseTask, Language, ResponseType
13
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
13
14
  from eval_framework.tasks.utils import get_n_letters
14
15
 
15
16
 
@@ -79,6 +80,8 @@ class MedQAMC_OLMES(MedQAMC):
79
80
  MedQA multiple choice with OLMES-style prompt: space before each label (" A.", " B.", ...).
80
81
  """
81
82
 
83
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
84
+
82
85
  NAME = "MedQAMC_OLMES"
83
86
  FEWSHOT_SPLIT = "train"
84
87
 
@@ -11,6 +11,7 @@ from eval_framework.metrics.loglikelihood.confidence_weighted_accuracy import Co
11
11
  from eval_framework.metrics.loglikelihood.dcs import DistributionalCorrectnessScore
12
12
  from eval_framework.metrics.loglikelihood.ternary import TernaryScore
13
13
  from eval_framework.tasks.base import BaseTask, Language, ResponseType, Sample
14
+ from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
14
15
  from eval_framework.tasks.utils import get_n_letters
15
16
 
16
17
  MMLU_SUBJECTS = [
@@ -77,6 +78,8 @@ MMLU_SUBJECTS = [
77
78
  class MMLU(BaseTask[str]):
78
79
  """MMLU dataset: https://huggingface.co/datasets/cais/mmlu"""
79
80
 
81
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
82
+
80
83
  NAME = "MMLU"
81
84
  DATASET_PATH = "cais/mmlu"
82
85
  SAMPLE_SPLIT = "test"
@@ -123,6 +126,8 @@ class MMLU_OLMES(MMLU):
123
126
  MMLU with OLMES-style prompt: space before each label in the prompt (" A.", " B.", ...).
124
127
  """
125
128
 
129
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
130
+
126
131
  NAME = "MMLU_OLMES"
127
132
 
128
133
  def _get_instruction_text(self, item: dict[str, Any]) -> str:
@@ -156,6 +161,7 @@ Answer with the full text of the correct answer."""
156
161
 
157
162
 
158
163
  class MMLU_IDK(MMLU):
164
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
159
165
  NAME = "MMLU_IDK"
160
166
  METRICS = [
161
167
  AccuracyLoglikelihood,
@@ -183,6 +189,8 @@ class MMLU_COT(MMLU):
183
189
  Inspired by https://arxiv.org/pdf/2411.15124 (Table 44)
184
190
  """
185
191
 
192
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
193
+
186
194
  NAME = "MMLU_COT"
187
195
  RESPONSE_TYPE = ResponseType.COMPLETION
188
196
  METRICS = [AccuracyCompletion]