eval-framework 0.5.3__tar.gz → 0.6.4__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 (193) hide show
  1. {eval_framework-0.5.3 → eval_framework-0.6.4}/PKG-INFO +6 -6
  2. {eval_framework-0.5.3 → eval_framework-0.6.4}/pyproject.toml +8 -9
  3. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/context/determined.py +6 -0
  4. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/context/eval.py +2 -0
  5. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/context/local.py +1 -0
  6. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/code_assertion.py +1 -1
  7. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/response_generator.py +7 -2
  8. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/run.py +8 -0
  9. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/suite.py +2 -0
  10. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/base.py +29 -2
  11. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/arc.py +6 -0
  12. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/arc_de.py +3 -0
  13. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/bigcodebench.py +3 -0
  14. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/copa.py +3 -0
  15. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/csqa.py +3 -0
  16. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/drop.py +5 -0
  17. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/global_mmlu.py +4 -0
  18. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/goldenswag.py +4 -0
  19. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/gpqa.py +3 -0
  20. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/gsm8k.py +3 -0
  21. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/hellaswag.py +4 -0
  22. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/humaneval.py +5 -0
  23. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/ifeval.py +5 -0
  24. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/math_reasoning.py +27 -18
  25. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/mbpp.py +5 -0
  26. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/medqa.py +3 -0
  27. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/mmlu.py +8 -0
  28. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +7 -0
  29. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/multipl_e.py +25 -0
  30. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +4 -0
  31. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/piqa.py +6 -0
  32. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/sciq.py +3 -0
  33. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/social_iqa.py +3 -0
  34. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/squad.py +5 -0
  35. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/triviaqa.py +5 -0
  36. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/winogrande.py +3 -0
  37. eval_framework-0.6.4/src/eval_framework/tasks/dataset_revisions.py +145 -0
  38. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/eval_config.py +4 -0
  39. eval_framework-0.6.4/src/eval_framework/tasks/hf-dataset-revisions.json +36 -0
  40. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/registry.py +65 -21
  41. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/task_names.py +13 -7
  42. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/utils.py +9 -1
  43. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/generate_task_docs.py +4 -3
  44. eval_framework-0.5.3/src/eval_framework/metrics/completion/aidanbench.py +0 -28
  45. eval_framework-0.5.3/src/eval_framework/metrics/completion/struct_eval_metrics.py +0 -248
  46. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/aidanbench.py +0 -220
  47. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/arc_fi.py +0 -46
  48. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/balancedcopa.py +0 -56
  49. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/belebele.py +0 -60
  50. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/casehold.py +0 -49
  51. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/chembench.py +0 -85
  52. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/duc.py +0 -95
  53. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/flores200.py +0 -122
  54. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/flores_plus.py +0 -83
  55. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/hellaswag_de.py +0 -53
  56. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/include.py +0 -119
  57. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/infinitebench.py +0 -299
  58. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/lab_bench.py +0 -89
  59. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/mmlu_de.py +0 -111
  60. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/mmmlu.py +0 -535
  61. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/openbookqa.py +0 -130
  62. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/opengptx_eu20.py +0 -373
  63. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/pawsx.py +0 -65
  64. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/quality.py +0 -56
  65. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/sphyr.py +0 -79
  66. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/struct_eval.py +0 -116
  67. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/tablebench.py +0 -121
  68. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/truthfulqa.py +0 -165
  69. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/winogender.py +0 -64
  70. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/winox.py +0 -89
  71. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/wmt.py +0 -160
  72. eval_framework-0.5.3/src/eval_framework/tasks/benchmarks/zero_scrolls.py +0 -199
  73. eval_framework-0.5.3/src/eval_framework/tasks/dataset_revisions.py +0 -106
  74. {eval_framework-0.5.3 → eval_framework-0.6.4}/LICENSE +0 -0
  75. {eval_framework-0.5.3 → eval_framework-0.6.4}/README.md +0 -0
  76. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/__init__.py +0 -0
  77. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/base_config.py +0 -0
  78. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/context/__init__.py +0 -0
  79. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/evaluation_generator.py +0 -0
  80. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/exceptions.py +0 -0
  81. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/external/drop_process_results.py +0 -0
  82. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  83. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  84. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  85. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  86. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  87. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/__init__.py +0 -0
  88. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/aleph_alpha.py +0 -0
  89. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/base.py +0 -0
  90. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/huggingface.py +0 -0
  91. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/mistral.py +0 -0
  92. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/models.py +0 -0
  93. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/openai.py +0 -0
  94. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/vllm.py +0 -0
  95. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/llm/vllm_local_server.py +0 -0
  96. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/logger.py +0 -0
  97. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/main.py +0 -0
  98. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/__init__.py +0 -0
  99. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
  100. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
  101. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/base.py +0 -0
  102. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/__init__.py +0 -0
  103. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  104. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/bleu.py +0 -0
  105. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/chrf.py +0 -0
  106. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  107. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  108. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  109. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  110. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  111. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/f1.py +0 -0
  112. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  113. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  114. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  115. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/json_format.py +0 -0
  116. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  117. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/length_control.py +0 -0
  118. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  119. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  120. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  121. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  122. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  123. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/repetition.py +0 -0
  124. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  125. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  126. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  127. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  128. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/ter.py +0 -0
  129. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  130. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
  131. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  132. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/__init__.py +0 -0
  133. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/base.py +0 -0
  134. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  135. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  136. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  137. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  138. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  139. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  140. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  141. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  142. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  143. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  144. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  145. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  146. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  147. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  148. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  149. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  150. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  151. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  152. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  153. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  154. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  155. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  156. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  157. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  158. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  159. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/llm/utils.py +0 -0
  160. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
  161. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
  162. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  163. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  164. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  165. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  166. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  167. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  168. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/py.typed +0 -0
  169. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/result_processors/__init__.py +0 -0
  170. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/result_processors/base.py +0 -0
  171. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  172. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/result_processors/result_processor.py +0 -0
  173. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  174. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/run_direct.py +0 -0
  175. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/shared/types.py +0 -0
  176. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  177. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/__init__.py +0 -0
  178. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
  179. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/perturbation.py +0 -0
  180. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/task-dataset-revisions.json +0 -0
  181. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/task_loader.py +0 -0
  182. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/tasks/task_style.py +0 -0
  183. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/constants.py +0 -0
  184. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/file_ops.py +0 -0
  185. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/helpers.py +0 -0
  186. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/logging.py +0 -0
  187. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/packaging.py +0 -0
  188. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/eval_framework/utils/tqdm_handler.py +0 -0
  189. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/template_formatting/README.md +0 -0
  190. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/template_formatting/__init__.py +0 -0
  191. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/template_formatting/formatter.py +0 -0
  192. {eval_framework-0.5.3 → eval_framework-0.6.4}/src/template_formatting/mistral_formatter.py +0 -0
  193. {eval_framework-0.5.3 → eval_framework-0.6.4}/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.3
3
+ Version: 0.6.4
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.3"
3
+ version = "0.6.4"
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",
@@ -109,7 +109,7 @@ flash-attn = [
109
109
  ]
110
110
 
111
111
  [build-system]
112
- requires = ["uv_build>=0.11.24,<0.11.25"]
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"
@@ -30,6 +30,7 @@ class TaskArgs(BaseModel):
30
30
  judge_model_args: dict[str, Any] = {}
31
31
  task_subjects: list[str] | None = None
32
32
  hf_revision: str | None = None
33
+ user_prompt_suffix: str | None = None
33
34
  perturbation_config: PerturbationConfig | None = None
34
35
  repeats: int | None = None
35
36
 
@@ -108,6 +109,7 @@ class DeterminedContext(EvalContext):
108
109
  "task_subjects",
109
110
  "batch_size",
110
111
  "hf_revision",
112
+ "user_prompt_suffix",
111
113
  "judge_model_name",
112
114
  "judge_model_args",
113
115
  "perturbation_config",
@@ -121,6 +123,9 @@ class DeterminedContext(EvalContext):
121
123
  # Hyperparameters take precedence over core context
122
124
  llm_name = self.hparams.llm_name or self.llm_name
123
125
  judge_model_name = self.hparams.task_args.judge_model_name or self.judge_model_name
126
+ user_prompt_suffix = self.hparams.task_args.user_prompt_suffix
127
+ if user_prompt_suffix is None:
128
+ user_prompt_suffix = self.user_prompt_suffix
124
129
 
125
130
  llm_class = _load_model(llm_name, models_path=self.models_path)
126
131
  llm_judge_class: type[BaseLLM] | None = (
@@ -139,6 +144,7 @@ class DeterminedContext(EvalContext):
139
144
  task_name=self.hparams.task_args.task_name,
140
145
  task_subjects=self.hparams.task_args.task_subjects,
141
146
  hf_revision=self.hparams.task_args.hf_revision or self.hf_revision,
147
+ user_prompt_suffix=user_prompt_suffix,
142
148
  perturbation_config=self.hparams.task_args.perturbation_config or self.perturbation_config,
143
149
  output_dir=self.hparams.output_dir,
144
150
  llm_judge_class=llm_judge_class,
@@ -57,6 +57,7 @@ class EvalContext(AbstractContextManager):
57
57
  task_name: str | None = None,
58
58
  task_subjects: list[str] | None = None,
59
59
  hf_revision: str | None = None,
60
+ user_prompt_suffix: str | None = None,
60
61
  output_dir: Path | None = None,
61
62
  wandb_project: str | None = None,
62
63
  wandb_entity: str | None = None,
@@ -86,6 +87,7 @@ class EvalContext(AbstractContextManager):
86
87
  self.task_name = task_name
87
88
  self.task_subjects = task_subjects
88
89
  self.hf_revision = hf_revision
90
+ self.user_prompt_suffix = user_prompt_suffix
89
91
  self.output_dir = output_dir
90
92
  self.wandb_project = wandb_project
91
93
  self.wandb_entity = wandb_entity
@@ -52,6 +52,7 @@ class LocalContext(EvalContext):
52
52
  task_name=self.task_name,
53
53
  task_subjects=self.task_subjects,
54
54
  hf_revision=self.hf_revision,
55
+ user_prompt_suffix=self.user_prompt_suffix,
55
56
  output_dir=self.output_dir,
56
57
  hf_upload_dir=self.hf_upload_dir,
57
58
  hf_upload_repo=self.hf_upload_repo,
@@ -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.
@@ -66,10 +66,14 @@ class ResponseGenerator:
66
66
  config.num_fewshot,
67
67
  config.task_subjects,
68
68
  config.hf_revision,
69
+ user_prompt_suffix=config.user_prompt_suffix,
69
70
  )
70
71
  else:
71
72
  self.task = registry()[config.task_name].create(
72
- config.num_fewshot, config.task_subjects, config.hf_revision
73
+ config.num_fewshot,
74
+ config.task_subjects,
75
+ config.hf_revision,
76
+ user_prompt_suffix=config.user_prompt_suffix,
73
77
  )
74
78
 
75
79
  self.response_type = self.task.get_response_type()
@@ -345,9 +349,10 @@ class ResponseGenerator:
345
349
  "llm_args",
346
350
  "perturbation_config",
347
351
  "repeats",
352
+ "user_prompt_suffix",
348
353
  ]
349
354
  for key in keys:
350
- if loaded_metadata[key] != current_metadata[key]:
355
+ if loaded_metadata.get(key) != current_metadata[key]:
351
356
  raise ValueError(f"Existing metadata does not match current metadata for {key}.")
352
357
 
353
358
  def __del__(self) -> None:
@@ -150,6 +150,13 @@ def parse_args() -> argparse.Namespace:
150
150
  default=None,
151
151
  help="A tag name, a branch name, or commit hash for the task HF dataset.",
152
152
  )
153
+ parser.add_argument(
154
+ "--user-prompt-suffix",
155
+ type=str,
156
+ required=False,
157
+ default=None,
158
+ help="Text appended verbatim to the evaluated user prompt before formatting.",
159
+ )
153
160
  parser.add_argument(
154
161
  "--judge-models",
155
162
  type=Path,
@@ -343,6 +350,7 @@ def _run_single_task(kwargs: dict) -> None:
343
350
  task_name=kwargs["task_name"],
344
351
  task_subjects=kwargs["task_subjects"],
345
352
  hf_revision=kwargs["hf_revision"],
353
+ user_prompt_suffix=kwargs.get("user_prompt_suffix"),
346
354
  output_dir=kwargs["output_dir"],
347
355
  wandb_project=kwargs["wandb_project"],
348
356
  wandb_entity=kwargs["wandb_entity"],
@@ -34,6 +34,7 @@ _EVAL_CONFIG_FIELDS = {
34
34
  "batch_size",
35
35
  "task_subjects",
36
36
  "hf_revision",
37
+ "user_prompt_suffix",
37
38
  }
38
39
 
39
40
  _HYPERPARAM_FIELDS = _LLM_ARG_FIELDS | _EVAL_CONFIG_FIELDS
@@ -100,6 +101,7 @@ class TaskSuite(BaseModel):
100
101
  batch_size: int | None = None
101
102
  task_subjects: list[str] | None = None
102
103
  hf_revision: str | None = None
104
+ user_prompt_suffix: str | None = None
103
105
 
104
106
  @model_validator(mode="after")
105
107
  def validate_suite(self) -> Self:
@@ -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
@@ -109,6 +115,7 @@ class BaseTask[SubjectType](ABC):
109
115
 
110
116
  def __init__(self, num_fewshot: int = 0) -> None:
111
117
  self.num_fewshot = num_fewshot
118
+ self.user_prompt_suffix: str | None = None
112
119
  self.stop_sequences: list[str] | None = None
113
120
  self.max_tokens: int | None = None
114
121
  self._apply_hf_revision()
@@ -123,9 +130,17 @@ class BaseTask[SubjectType](ABC):
123
130
 
124
131
  @classmethod
125
132
  def with_overwrite(
126
- cls, num_fewshot: int, *, custom_subjects: list[str] | None, custom_hf_revision: str | None
133
+ cls,
134
+ num_fewshot: int,
135
+ *,
136
+ custom_subjects: list[str] | None,
137
+ custom_hf_revision: str | None,
138
+ user_prompt_suffix: str | None = None,
127
139
  ) -> Self:
128
140
  instance = cls(num_fewshot=num_fewshot)
141
+ if user_prompt_suffix is not None and instance.get_response_type() != ResponseType.COMPLETION:
142
+ raise ValueError("user_prompt_suffix is only supported for completion tasks.")
143
+ instance.user_prompt_suffix = user_prompt_suffix
129
144
 
130
145
  # If custom subjects were provided during initialization, they take precedence over the class-level SUBJECTS.
131
146
  filtered_subjects = instance._filter_task_subjects(custom_subjects=custom_subjects)
@@ -235,7 +250,7 @@ class BaseTask[SubjectType](ABC):
235
250
 
236
251
  def _get_messages(self, item: dict[str, Any]) -> list[Message]:
237
252
  example_messages = self._get_example_messages(item)
238
- instruction_message = self._get_instruction_messages(item)
253
+ instruction_message = self._apply_user_prompt_suffix(self._get_instruction_messages(item))
239
254
  cue_text = self._get_cue_text(item)
240
255
  cue_message = [Message(role=Role.ASSISTANT, content=cue_text)] if cue_text else []
241
256
  messages = example_messages + instruction_message + cue_message
@@ -248,6 +263,18 @@ class BaseTask[SubjectType](ABC):
248
263
  return [Message(role=Role.SYSTEM, content=system_prompt_text)] + messages
249
264
  return messages
250
265
 
266
+ def _apply_user_prompt_suffix(self, instruction_messages: list[Message]) -> list[Message]:
267
+ """Append the configured suffix verbatim to the evaluated user turn."""
268
+ if self.user_prompt_suffix is None:
269
+ return instruction_messages
270
+
271
+ for message in reversed(instruction_messages):
272
+ if message.role == Role.USER:
273
+ message.content = f"{message.content}{self.user_prompt_suffix}"
274
+ return instruction_messages
275
+
276
+ raise ValueError("Cannot append user_prompt_suffix: evaluated instruction contains no user message.")
277
+
251
278
  def _get_instruction_messages(self, item: dict[str, Any]) -> list[Message]:
252
279
  return [Message(role=Role.USER, content=self._get_instruction_text(item))]
253
280
 
@@ -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]