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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. {eval_framework-0.8.0 → eval_framework-0.8.2}/PKG-INFO +4 -2
  2. {eval_framework-0.8.0 → eval_framework-0.8.2}/README.md +2 -0
  3. {eval_framework-0.8.0 → eval_framework-0.8.2}/pyproject.toml +2 -2
  4. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/evaluation_generator.py +1 -3
  5. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/response_generator.py +5 -13
  6. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/math_reasoning.py +11 -4
  7. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/mbpp.py +88 -0
  8. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/task_names.py +3 -0
  9. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/utils/logging.py +2 -16
  10. eval_framework-0.8.2/src/eval_framework/utils/tqdm_handler.py +7 -0
  11. eval_framework-0.8.0/src/eval_framework/utils/tqdm_handler.py +0 -14
  12. {eval_framework-0.8.0 → eval_framework-0.8.2}/LICENSE +0 -0
  13. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/__init__.py +0 -0
  14. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/base_config.py +0 -0
  15. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/context/__init__.py +0 -0
  16. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/context/determined.py +0 -0
  17. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/context/eval.py +0 -0
  18. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/context/local.py +0 -0
  19. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/exceptions.py +0 -0
  20. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/external/drop_process_results.py +0 -0
  21. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  22. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  23. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  24. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  25. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  26. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/llm/__init__.py +0 -0
  27. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/llm/aleph_alpha.py +0 -0
  28. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/llm/base.py +0 -0
  29. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/llm/huggingface.py +0 -0
  30. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/llm/models.py +0 -0
  31. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/llm/openai.py +0 -0
  32. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/logger.py +0 -0
  33. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/main.py +0 -0
  34. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/__init__.py +0 -0
  35. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
  36. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
  37. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/base.py +0 -0
  38. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/__init__.py +0 -0
  39. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  40. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
  41. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  42. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  43. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  44. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  45. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  46. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/f1.py +0 -0
  47. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  48. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  49. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  50. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/json_format.py +0 -0
  51. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  52. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/length_control.py +0 -0
  53. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  54. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  55. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  56. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  57. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  58. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/repetition.py +0 -0
  59. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  60. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  61. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  62. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  63. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  64. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
  65. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  66. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/__init__.py +0 -0
  67. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/base.py +0 -0
  68. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  69. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  70. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  71. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  72. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  73. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  74. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  75. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  76. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  77. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  78. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  79. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  80. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  81. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  82. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  83. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  84. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  85. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  86. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  87. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  88. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  89. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  90. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  91. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  92. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  93. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/llm/utils.py +0 -0
  94. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
  95. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
  96. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  97. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  98. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  99. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  100. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  101. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  102. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/py.typed +0 -0
  103. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/result_processors/__init__.py +0 -0
  104. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/result_processors/base.py +0 -0
  105. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  106. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/result_processors/result_processor.py +0 -0
  107. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  108. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/run.py +0 -0
  109. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/run_direct.py +0 -0
  110. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/shared/types.py +0 -0
  111. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/suite.py +0 -0
  112. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  113. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/__init__.py +0 -0
  114. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/base.py +0 -0
  115. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
  116. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
  117. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
  118. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
  119. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
  120. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
  121. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
  122. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
  123. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
  124. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/gpqa.py +0 -0
  125. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
  126. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
  127. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
  128. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
  129. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
  130. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
  131. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
  132. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
  133. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
  134. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
  135. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
  136. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
  137. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
  138. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/triviaqa.py +0 -0
  139. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
  140. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/dataset_revisions.py +0 -0
  141. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/eval_config.py +0 -0
  142. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
  143. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
  144. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/perturbation.py +0 -0
  145. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/registry.py +0 -0
  146. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/task_loader.py +0 -0
  147. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/task_style.py +0 -0
  148. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/tasks/utils.py +0 -0
  149. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/utils/constants.py +0 -0
  150. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/utils/file_ops.py +0 -0
  151. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/utils/generate_task_docs.py +0 -0
  152. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/utils/helpers.py +0 -0
  153. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/eval_framework/utils/packaging.py +0 -0
  154. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/template_formatting/README.md +0 -0
  155. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/template_formatting/__init__.py +0 -0
  156. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/template_formatting/formatter.py +0 -0
  157. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/template_formatting/mistral_formatter.py +0 -0
  158. {eval_framework-0.8.0 → eval_framework-0.8.2}/src/template_formatting/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: eval-framework
3
- Version: 0.8.0
3
+ Version: 0.8.2
4
4
  Summary: Evaluation Framework
5
5
  Author: Aleph Alpha Research
6
6
  License: Apache License
@@ -246,7 +246,7 @@ Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
246
246
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'optional'
247
247
  Requires-Dist: jinja2>=3.1.6,<4 ; extra == 'optional'
248
248
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'transformers'
249
- Requires-Dist: torch>=2.5,<3 ; extra == 'transformers'
249
+ Requires-Dist: torch>=2.13.0,<3 ; extra == 'transformers'
250
250
  Requires-Dist: accelerate>=1.14.0,<2 ; extra == 'transformers'
251
251
  Requires-Python: >=3.12, <3.13
252
252
  Project-URL: repository, https://github.com/Aleph-Alpha-Research/eval-framework
@@ -528,6 +528,8 @@ If you use `eval-framework` in your research, please cite:
528
528
 
529
529
  This project is licensed under the [Apache License 2.0](LICENSE).
530
530
 
531
+ The constituent tasks' datasets can be subject to specific, more restrictive license terms by third parties. By using `eval-framework` you agree to adhere to and be bound by such license terms in the individual case.
532
+
531
533
  <br><br>
532
534
  ---
533
535
 
@@ -267,6 +267,8 @@ If you use `eval-framework` in your research, please cite:
267
267
 
268
268
  This project is licensed under the [Apache License 2.0](LICENSE).
269
269
 
270
+ The constituent tasks' datasets can be subject to specific, more restrictive license terms by third parties. By using `eval-framework` you agree to adhere to and be bound by such license terms in the individual case.
271
+
270
272
  <br><br>
271
273
  ---
272
274
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eval-framework"
3
- version = "0.8.0"
3
+ version = "0.8.2"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -60,7 +60,7 @@ openai = [
60
60
  ]
61
61
  transformers = [
62
62
  "transformers>=4.45.2,<5",
63
- "torch>=2.5,<3",
63
+ "torch>=2.13.0,<3",
64
64
  "accelerate>=1.14.0,<2",
65
65
  ]
66
66
  accelerate = ["accelerate"]
@@ -20,7 +20,7 @@ from eval_framework.tasks.base import ResponseType
20
20
  from eval_framework.tasks.eval_config import EvalConfig
21
21
  from eval_framework.tasks.registry import registry
22
22
  from eval_framework.utils.constants import RED, RESET
23
- from eval_framework.utils.tqdm_handler import get_disable_bar_flag, safe_tqdm_write
23
+ from eval_framework.utils.tqdm_handler import get_disable_bar_flag
24
24
 
25
25
  logger = logging.getLogger(__name__)
26
26
 
@@ -79,7 +79,6 @@ class EvaluationGenerator:
79
79
  metric.fail_on_error = self.config.fail_on_error
80
80
 
81
81
  logger.info(f"Starting calculation of {metric.NAME}")
82
- safe_tqdm_write(f"INFO: Calculating {metric.NAME}")
83
82
  for response in tqdm(responses, desc=f"Calculating {metric.NAME}", disable=get_disable_bar_flag()):
84
83
  if f"{response.subject}_{response.id}_{metric.__class__.__name__}" in subject_result_id_existing:
85
84
  continue
@@ -117,7 +116,6 @@ class EvaluationGenerator:
117
116
  self.result_processor.save_metrics_result(result)
118
117
 
119
118
  logger.info(f"Completed calculation of {metric.NAME}")
120
- safe_tqdm_write(f"INFO: Completed {metric.NAME}")
121
119
 
122
120
  if not self.save_intermediate_results:
123
121
  self.result_processor.save_metrics_results(results)
@@ -30,7 +30,7 @@ from eval_framework.tasks.base import Language, ResponseType, Sample
30
30
  from eval_framework.tasks.eval_config import EvalConfig
31
31
  from eval_framework.tasks.utils import raise_errors
32
32
  from eval_framework.utils.constants import RED, RESET
33
- from eval_framework.utils.tqdm_handler import get_disable_bar_flag, safe_tqdm_write
33
+ from eval_framework.utils.tqdm_handler import get_disable_bar_flag
34
34
 
35
35
  logger = logging.getLogger(__name__)
36
36
 
@@ -232,9 +232,7 @@ class ResponseGenerator:
232
232
  if not samples_batch:
233
233
  return
234
234
  if len(samples_batch) > 1:
235
- log_msg = "Processing batch..."
236
- logger.info(log_msg) # For log files
237
- safe_tqdm_write(log_msg) # For console display with tqdm
235
+ logger.info("Processing batch...")
238
236
 
239
237
  responses_batch = generative_output_function(samples_batch)
240
238
  responses.extend(responses_batch)
@@ -268,17 +266,13 @@ class ResponseGenerator:
268
266
  sample_index = i + 1
269
267
 
270
268
  if sample.id in subject_response_id_mapping.get(sample.subject, []):
271
- log_msg = (
269
+ logger.info(
272
270
  f"Task: {self.response_type.value}{subject} - Sample: {sample_index} - skipping, already done."
273
271
  )
274
- logger.info(log_msg) # For log files
275
- safe_tqdm_write(log_msg) # For console display with tqdm
276
272
  pbar.update(1)
277
273
  continue
278
274
 
279
- log_msg = f"Task: {self.response_type.value}{subject} - Sample: {sample_index}/{total_num_samples}"
280
- logger.info(log_msg) # For log files
281
- safe_tqdm_write(log_msg) # For console display with tqdm
275
+ logger.info(f"Task: {self.response_type.value}{subject} - Sample: {sample_index}/{total_num_samples}")
282
276
  pbar.set_postfix_str(f"Sample {sample_index}/{total_num_samples}")
283
277
  pbar.update(1)
284
278
 
@@ -289,9 +283,7 @@ class ResponseGenerator:
289
283
  samples_batch = []
290
284
 
291
285
  if should_preempt_callable():
292
- log_msg = "Preempt"
293
- logger.info(log_msg) # For log files
294
- safe_tqdm_write(log_msg) # For console display with tqdm
286
+ logger.info("Preempt")
295
287
  if not self.save_intermediate_results:
296
288
  self.result_processor.save_responses(responses)
297
289
  return responses, True
@@ -10,10 +10,7 @@ from eval_framework.metrics.completion.math_minerva_completion import (
10
10
  MathMinervaCompletionRelaxed,
11
11
  )
12
12
  from eval_framework.metrics.completion.math_reasoning_completion import MathReasoningCompletion
13
- from eval_framework.metrics.completion.minerva_math_utils import (
14
- extract_answers,
15
- normalized_gold_from_solution,
16
- )
13
+ from eval_framework.metrics.completion.minerva_math_utils import extract_answers, normalized_gold_from_solution
17
14
  from eval_framework.tasks.base import NO_SUBJECT, RANDOM_SEED, BaseTask, Language, ResponseType, Sample, SubjectType
18
15
  from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
19
16
  from eval_framework.tasks.task_style import BPBStyle
@@ -775,6 +772,16 @@ class MATHMinerva_OLMES(MATHMinerva):
775
772
  return _OLMES_FEWSHOTS[: self.num_fewshot]
776
773
 
777
774
 
775
+ class MATHMinerva_OLMES_NONL(MATHMinerva_OLMES):
776
+ NAME = "MATHMinerva_OLMES_NONL"
777
+
778
+ def __init__(self, num_fewshot: int = 4) -> None:
779
+ if num_fewshot != 4:
780
+ logger.warning("MATHMinerva_OLMES_NONL supports a fixed num_fewshot of 4.")
781
+ super().__init__(num_fewshot=4)
782
+ self.stop_sequences = ["Problem:"]
783
+
784
+
778
785
  class MATHMinervaBPB(MATHMinerva_OLMES):
779
786
  REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
780
787
  NAME = "MATHMinervaBPB"
@@ -10,6 +10,7 @@ from eval_framework.metrics.loglikelihood.bits_per_byte import BitsPerByteLoglik
10
10
  from eval_framework.shared.types import BaseMetricContext
11
11
  from eval_framework.tasks.base import BaseTask, Language, ResponseType, Sample
12
12
  from eval_framework.tasks.dataset_revisions import HF_REVISIONS_LOCKFILE
13
+ from eval_framework.tasks.task_style import BPBStyle
13
14
 
14
15
  logger = logging.getLogger(__name__)
15
16
 
@@ -314,3 +315,90 @@ class MBPP_OLMES(MBPP):
314
315
  mbpp_ground_truth = str(sample.ground_truth)
315
316
  code = self._code_expander(extracted_code, mbpp_ground_truth)
316
317
  return code
318
+
319
+
320
+ class MBPP_EvalPlus(MBPP):
321
+ """Version that faithfully follows the EvalPlus prompt format, which OLMES only approximated."""
322
+
323
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
324
+
325
+ NAME = "MBPP_EvalPlus"
326
+ FEWSHOT_SPLIT = "test"
327
+
328
+ def __init__(self, num_fewshot: int = 3) -> None:
329
+ super().__init__(num_fewshot)
330
+ if num_fewshot != 3:
331
+ logger.warning(f"MBPP_EvalPlus supports only 3-shot, got {num_fewshot}")
332
+ self.stop_sequences = ["```", "\nassert", "\nPlease provide"]
333
+
334
+ def _get_instruction_text(self, item: dict[str, Any]) -> str:
335
+ text = item["text"] if "text" in item else item["prompt"]
336
+ test = item["test_list"][0]
337
+ return (
338
+ "Please provide a self-contained Python script that solves the following problem"
339
+ f" in a markdown code block:\n```\n{text.strip()}\n{test}\n```\n"
340
+ )
341
+
342
+ def _get_cue_text(self, item: dict[str, Any]) -> str:
343
+ return (
344
+ "Below is a Python script with a self-contained function that solves the problem"
345
+ " and passes corresponding tests:\n```python"
346
+ )
347
+
348
+ def _get_fewshot_target_text(self, item: dict[str, Any]) -> str:
349
+ # The cue ends at ```python (no trailing newline, since it is stripped as the final eval
350
+ # message); the fewshot target adds the newline before the code explicitly.
351
+ return self._get_cue_text(item) + "\n" + item["code"] + "\n```"
352
+
353
+ def _sample_fewshot_examples(self, item: dict[str, Any]) -> list[dict]:
354
+ return list(_OLMES_FEWSHOT_EXAMPLES)
355
+
356
+ def post_process_generated_completion(self, completion_text: str, sample: Sample) -> str: # type: ignore[override]
357
+ extracted_code = completion_text + "\n"
358
+ mbpp_ground_truth = str(sample.ground_truth)
359
+ code = self._code_expander(extracted_code, mbpp_ground_truth)
360
+ return code
361
+
362
+
363
+ class MBPP_BPB_EvalPlus(BaseTask[str]):
364
+ """BPB (loglikelihood) counterpart of MBPP_EvalPlus."""
365
+
366
+ REVISION_LOCKFILE = HF_REVISIONS_LOCKFILE
367
+
368
+ NAME = "MBPP_BPB_EvalPlus"
369
+ DATASET_PATH = "google-research-datasets/mbpp"
370
+ SAMPLE_SPLIT = "test"
371
+ FEWSHOT_SPLIT = "test"
372
+ SUBJECTS = ["full"]
373
+ LANGUAGE = Language.ENG
374
+ TASK_STYLER = BPBStyle(
375
+ question_prefix="",
376
+ trailing_newline=False,
377
+ cue_text=(
378
+ "Below is a Python script with a self-contained function that solves the problem"
379
+ f" and passes corresponding tests:\n{BEGIN}"
380
+ ),
381
+ leading_space_continuations=False,
382
+ )
383
+
384
+ def __init__(self, num_fewshot: int = 3) -> None:
385
+ super().__init__(num_fewshot)
386
+ if num_fewshot != 3:
387
+ logger.warning(f"MBPP_BPB_EvalPlus supports only 3-shot, got {num_fewshot}")
388
+
389
+ def _get_raw_question(self, item: dict[str, Any]) -> str:
390
+ text = item["text"] if "text" in item else item["prompt"]
391
+ test = item["test_list"][0]
392
+ return (
393
+ "Please provide a self-contained Python script that solves the following problem"
394
+ f" in a markdown code block:\n```\n{text.strip()}\n{test}\n```\n"
395
+ )
396
+
397
+ def _get_choices(self, item: dict[str, Any]) -> list[str]:
398
+ return ["\n" + item["code"] + f"\n{END}"]
399
+
400
+ def _get_correct_index(self, item: dict[str, Any]) -> int:
401
+ return 0
402
+
403
+ def _sample_fewshot_examples(self, item: dict[str, Any]) -> list[dict]:
404
+ return list(_OLMES_FEWSHOT_EXAMPLES)
@@ -36,6 +36,7 @@ def register_all_tasks() -> None:
36
36
  register_lazy_task("eval_framework.tasks.benchmarks.ifeval.IFEvalDe")
37
37
  register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATH500")
38
38
  register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATHMinerva_OLMES")
39
+ register_lazy_task("eval_framework.tasks.benchmarks.math_reasoning.MATHMinerva_OLMES_NONL")
39
40
  register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalCpp")
40
41
  register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalJava")
41
42
  register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEHumanEvalJs")
@@ -50,6 +51,8 @@ def register_all_tasks() -> None:
50
51
  register_lazy_task("eval_framework.tasks.benchmarks.multipl_e.MultiPLEMBPPSh")
51
52
  register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPPBPB")
52
53
  register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPP_OLMES")
54
+ register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPP_EvalPlus")
55
+ register_lazy_task("eval_framework.tasks.benchmarks.mbpp.MBPP_BPB_EvalPlus")
53
56
  register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU")
54
57
  register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU_IDK")
55
58
  register_lazy_task("eval_framework.tasks.benchmarks.mmlu.MMLU_OLMES")
@@ -1,5 +1,4 @@
1
1
  import logging
2
- import sys
3
2
  from pathlib import Path
4
3
 
5
4
  VERBOSITY_MAP = {
@@ -16,7 +15,7 @@ def setup_logging(
16
15
  Set up centralized logging configuration for the entire framework.
17
16
 
18
17
  Args:
19
- output_dir: Directory to save log files. If None, logs only to console.
18
+ output_dir: Directory to save log files. If None, no file handler is attached.
20
19
  log_level: Logging level (default: INFO)
21
20
  log_filename: Name of the log file
22
21
 
@@ -26,9 +25,6 @@ def setup_logging(
26
25
  # Map verbosity integer to logging level
27
26
  mapped_log_level = VERBOSITY_MAP.get(log_level, logging.INFO)
28
27
 
29
- # Basic configuration
30
- logging.basicConfig(level=mapped_log_level)
31
-
32
28
  # Create formatter
33
29
  formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
34
30
 
@@ -37,13 +33,7 @@ def setup_logging(
37
33
  root_logger.handlers.clear()
38
34
  root_logger.setLevel(mapped_log_level)
39
35
 
40
- # Console handler (always present)
41
- console_handler = logging.StreamHandler(sys.stdout)
42
- console_handler.setLevel(mapped_log_level)
43
- console_handler.setFormatter(formatter)
44
- root_logger.addHandler(console_handler)
45
-
46
- # File handler (if output directory provided)
36
+ # File handler (if output directory provided). No console handler: keeps stdout free for tqdm.
47
37
  if output_dir:
48
38
  output_dir.mkdir(parents=True, exist_ok=True)
49
39
  log_file = output_dir / log_filename
@@ -54,9 +44,5 @@ def setup_logging(
54
44
  root_logger.addHandler(file_handler)
55
45
 
56
46
  root_logger.info(f"Logging configured. File: {log_file}")
57
- else:
58
- root_logger.info("Logging configured (console only)")
59
-
60
- root_logger.info(f"Output directory for logs: {output_dir if output_dir else 'None'}")
61
47
 
62
48
  return root_logger
@@ -0,0 +1,7 @@
1
+ import logging
2
+
3
+ logger = logging.getLogger(__name__)
4
+
5
+
6
+ def get_disable_bar_flag() -> bool:
7
+ return logger.getEffectiveLevel() >= logging.WARNING
@@ -1,14 +0,0 @@
1
- import logging
2
-
3
- from tqdm import tqdm
4
-
5
- logger = logging.getLogger(__name__)
6
-
7
-
8
- def safe_tqdm_write(msg: str, level: int = logging.INFO) -> None:
9
- if logger.isEnabledFor(level):
10
- tqdm.write(msg)
11
-
12
-
13
- def get_disable_bar_flag() -> bool:
14
- return logger.getEffectiveLevel() >= logging.WARNING
File without changes