eval-framework 0.10.7__tar.gz → 0.11.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 (182) hide show
  1. {eval_framework-0.10.7 → eval_framework-0.11.3}/PKG-INFO +7 -7
  2. {eval_framework-0.10.7 → eval_framework-0.11.3}/pyproject.toml +10 -10
  3. {eval_framework-0.10.7 → eval_framework-0.11.3}/pyproject.toml.orig +10 -10
  4. eval_framework-0.11.3/src/eval_framework/benchmarks/arc_de.py +43 -0
  5. eval_framework-0.11.3/src/eval_framework/benchmarks/csqa_ellamind.py +63 -0
  6. eval_framework-0.11.3/src/eval_framework/benchmarks/piqa_ellamind.py +66 -0
  7. eval_framework-0.11.3/src/eval_framework/benchmarks/siqa_ellamind.py +66 -0
  8. eval_framework-0.11.3/src/eval_framework/choices.py +31 -0
  9. eval_framework-0.11.3/src/eval_framework/composed.py +418 -0
  10. eval_framework-0.10.7/src/eval_framework/tasks/task.py → eval_framework-0.11.3/src/eval_framework/contract.py +10 -14
  11. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/evaluation_generator.py +12 -9
  12. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/aleph_alpha.py +1 -1
  13. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/huggingface.py +1 -1
  14. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/openai.py +10 -1
  15. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/aggregators/aggregators.py +3 -3
  16. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/base.py +5 -1
  17. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +63 -0
  18. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/response_generator.py +1 -1
  19. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/base.py +8 -2
  20. eval_framework-0.11.3/src/eval_framework/shared/errors.py +11 -0
  21. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/shared/types.py +20 -0
  22. eval_framework-0.11.3/src/eval_framework/subjects.py +64 -0
  23. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/base.py +83 -28
  24. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/arc.py +8 -1
  25. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/copa.py +3 -1
  26. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/csqa.py +13 -2
  27. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/drop.py +3 -0
  28. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/global_mmlu.py +7 -1
  29. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/goldenswag.py +2 -0
  30. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gpqa.py +3 -1
  31. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hellaswag.py +8 -1
  32. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/medqa.py +7 -1
  33. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mmlu.py +14 -2
  34. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +3 -1
  35. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/piqa.py +8 -1
  36. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/sciq.py +10 -2
  37. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/social_iqa.py +2 -0
  38. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/winogrande.py +8 -1
  39. eval_framework-0.11.3/src/eval_framework/tasks/dataset_loading.py +59 -0
  40. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/dataset_revisions.py +31 -3
  41. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/lazy.py +10 -10
  42. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/markdown_doc.py +4 -8
  43. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/registry.py +15 -10
  44. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/task_names.py +11 -16
  45. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/task_style.py +3 -0
  46. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/utils.py +0 -12
  47. eval_framework-0.11.3/src/template_formatting/py.typed +0 -0
  48. eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/arc_de.py +0 -49
  49. eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/csqa_ellamind.py +0 -95
  50. eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/piqa_ellamind.py +0 -95
  51. eval_framework-0.10.7/src/eval_framework/tasks/benchmarks/siqa_ellamind.py +0 -92
  52. {eval_framework-0.10.7 → eval_framework-0.11.3}/LICENSE +0 -0
  53. {eval_framework-0.10.7 → eval_framework-0.11.3}/README.md +0 -0
  54. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/__init__.py +0 -0
  55. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/base_config.py +0 -0
  56. {eval_framework-0.10.7/src/eval_framework/context → eval_framework-0.11.3/src/eval_framework/benchmarks}/__init__.py +0 -0
  57. {eval_framework-0.10.7/src/eval_framework/llm → eval_framework-0.11.3/src/eval_framework/context}/__init__.py +0 -0
  58. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/context/determined.py +0 -0
  59. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/context/eval.py +0 -0
  60. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/context/local.py +0 -0
  61. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/exceptions.py +0 -0
  62. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/drop_process_results.py +0 -0
  63. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  64. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  65. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  66. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  67. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  68. {eval_framework-0.10.7/src/eval_framework/metrics → eval_framework-0.11.3/src/eval_framework/llm}/__init__.py +0 -0
  69. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/base.py +0 -0
  70. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/llm/models.py +0 -0
  71. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/logger.py +0 -0
  72. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/main.py +0 -0
  73. {eval_framework-0.10.7/src/eval_framework/metrics/aggregators → eval_framework-0.11.3/src/eval_framework/metrics}/__init__.py +0 -0
  74. {eval_framework-0.10.7/src/eval_framework/metrics/efficiency → eval_framework-0.11.3/src/eval_framework/metrics/aggregators}/__init__.py +0 -0
  75. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/__init__.py +0 -0
  76. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  77. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
  78. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  79. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  80. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  81. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  82. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  83. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/f1.py +0 -0
  84. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  85. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  86. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  87. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/json_format.py +0 -0
  88. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  89. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/length_control.py +0 -0
  90. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  91. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  92. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  93. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  94. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  95. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/repetition.py +0 -0
  96. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  97. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  98. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  99. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  100. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  101. {eval_framework-0.10.7/src/eval_framework/metrics/llm → eval_framework-0.11.3/src/eval_framework/metrics/efficiency}/__init__.py +0 -0
  102. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  103. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/efficiency/token_counters.py +0 -0
  104. {eval_framework-0.10.7/src/eval_framework/metrics/loglikelihood → eval_framework-0.11.3/src/eval_framework/metrics/llm}/__init__.py +0 -0
  105. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/base.py +0 -0
  106. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  107. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  108. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  109. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  110. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  111. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  112. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  113. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  114. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  115. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  116. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  117. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  118. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  119. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  120. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  121. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  122. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  123. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  124. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  125. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  126. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  127. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  128. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  129. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  130. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  131. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/llm/utils.py +0 -0
  132. {eval_framework-0.10.7/src/eval_framework/result_processors → eval_framework-0.11.3/src/eval_framework/metrics/loglikelihood}/__init__.py +0 -0
  133. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  134. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  135. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  136. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  137. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  138. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  139. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/py.typed +0 -0
  140. {eval_framework-0.10.7/src/eval_framework/tasks/benchmarks → eval_framework-0.11.3/src/eval_framework/result_processors}/__init__.py +0 -0
  141. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  142. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/result_processor.py +0 -0
  143. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  144. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/run.py +0 -0
  145. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/run_direct.py +0 -0
  146. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/suite.py +0 -0
  147. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  148. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/__init__.py +0 -0
  149. {eval_framework-0.10.7/src/template_formatting → eval_framework-0.11.3/src/eval_framework/tasks/benchmarks}/__init__.py +0 -0
  150. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/arc_ellamind.py +0 -0
  151. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
  152. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gpqa_ellamind.py +0 -0
  153. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
  154. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/gsm8k_ellamind.py +0 -0
  155. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hellaswag_ellamind.py +0 -0
  156. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hendrycks_math_ellamind.py +0 -0
  157. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/hle_ellamind.py +0 -0
  158. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
  159. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/humaneval_ellamind.py +0 -0
  160. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
  161. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
  162. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
  163. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/mbpp_ellamind.py +0 -0
  164. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
  165. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
  166. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/simpleqa_ellamind.py +0 -0
  167. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
  168. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/benchmarks/winogrande_ellamind.py +0 -0
  169. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/eval_config.py +0 -0
  170. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
  171. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
  172. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/tasks/task_loader.py +0 -0
  173. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/constants.py +0 -0
  174. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/file_ops.py +0 -0
  175. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/helpers.py +0 -0
  176. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/logging.py +0 -0
  177. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/packaging.py +0 -0
  178. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/eval_framework/utils/tqdm_handler.py +0 -0
  179. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/template_formatting/README.md +0 -0
  180. /eval_framework-0.10.7/src/template_formatting/py.typed → /eval_framework-0.11.3/src/template_formatting/__init__.py +0 -0
  181. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/template_formatting/formatter.py +0 -0
  182. {eval_framework-0.10.7 → eval_framework-0.11.3}/src/template_formatting/mistral_formatter.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: eval-framework
3
- Version: 0.10.7
3
+ Version: 0.11.3
4
4
  Summary: Evaluation Framework
5
5
  Author: Aleph Alpha Research
6
6
  License: Apache License
@@ -229,20 +229,20 @@ Requires-Dist: psycopg2-binary>=2.9.12,<3
229
229
  Requires-Dist: sympy>=1.14.0,<2
230
230
  Requires-Dist: llm-sandbox[docker]==0.3.44
231
231
  Requires-Dist: jsonlines>=4,<5
232
- Requires-Dist: lxml>=6.1.1,<7
232
+ Requires-Dist: lxml>=6.1.2,<7
233
233
  Requires-Dist: python-iso639>=2026.7.23
234
- Requires-Dist: wandb>=0.28.2,<1
235
- Requires-Dist: boto3>=1.43.72,<2
234
+ Requires-Dist: wandb>=0.29.0,<1
235
+ Requires-Dist: boto3>=1.43.82,<2
236
236
  Requires-Dist: numpy>=2.5.2
237
237
  Requires-Dist: antlr4-python3-runtime==4.11.0
238
- Requires-Dist: scipy>=1.18.0,<2
238
+ Requires-Dist: scipy>=1.18.1,<2
239
239
  Requires-Dist: accelerate ; extra == 'accelerate'
240
240
  Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,optional] ; 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
243
  Requires-Dist: tensorboard==2.21.0 ; extra == 'determined'
244
- Requires-Dist: openai>=3.1.0,<4 ; extra == 'openai'
245
- Requires-Dist: tiktoken>=0.13.0,<1 ; extra == 'openai'
244
+ Requires-Dist: openai>=3.5.0,<4 ; extra == 'openai'
245
+ Requires-Dist: tiktoken>=0.14.0,<1 ; extra == 'openai'
246
246
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
247
247
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'optional'
248
248
  Requires-Dist: jinja2>=3.1.6,<4 ; extra == 'optional'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eval-framework"
3
- version = "0.10.7"
3
+ version = "0.11.3"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12,<3.15"
@@ -32,13 +32,13 @@ dependencies = [
32
32
  "sympy>=1.14.0,<2",
33
33
  "llm-sandbox[docker]==0.3.44",
34
34
  "jsonlines>=4,<5",
35
- "lxml>=6.1.1,<7",
35
+ "lxml>=6.1.2,<7",
36
36
  "python-iso639>=2026.7.23",
37
- "wandb>=0.28.2,<1",
38
- "boto3>=1.43.72,<2",
37
+ "wandb>=0.29.0,<1",
38
+ "boto3>=1.43.82,<2",
39
39
  "numpy>=2.5.2",
40
40
  "antlr4-python3-runtime==4.11.0",
41
- "scipy>=1.18.0,<2",
41
+ "scipy>=1.18.1,<2",
42
42
  ]
43
43
 
44
44
  [project.license]
@@ -54,8 +54,8 @@ determined = [
54
54
  ]
55
55
  api = ["aleph-alpha-client>=11.5.1"]
56
56
  openai = [
57
- "openai>=3.1.0,<4",
58
- "tiktoken>=0.13.0,<1",
57
+ "openai>=3.5.0,<4",
58
+ "tiktoken>=0.14.0,<1",
59
59
  "transformers>=4.45.2,<5",
60
60
  ]
61
61
  transformers = [
@@ -86,8 +86,8 @@ dev = [
86
86
  "types-pyyaml>=6.0.12.20260815,<7",
87
87
  "types-python-dateutil>=2.9.0.20260807,<3",
88
88
  "types-requests>=2.33.0.20260712,<3",
89
- "plotly>=6.9.0,<7",
90
- "ruff>=0.16.3",
89
+ "plotly>=7.0.0,<8",
90
+ "ruff>=0.16.5",
91
91
  "pip-licenses>=5.5.5",
92
92
  ]
93
93
  flash-attn = [
@@ -96,7 +96,7 @@ flash-attn = [
96
96
  ]
97
97
 
98
98
  [build-system]
99
- requires = ["uv_build>=0.12.5,<0.12.6"]
99
+ requires = ["uv_build>=0.12.7,<0.12.8"]
100
100
  build-backend = "uv_build"
101
101
 
102
102
  [tool.uv]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eval-framework"
3
- version = "0.10.7"
3
+ version = "0.11.3"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -36,15 +36,15 @@ dependencies = [
36
36
  "sympy>=1.14.0,<2",
37
37
  "llm-sandbox[docker]==0.3.44",
38
38
  "jsonlines>=4,<5",
39
- "lxml>=6.1.1,<7",
39
+ "lxml>=6.1.2,<7",
40
40
  "python-iso639>=2026.7.23",
41
- "wandb>=0.28.2,<1",
42
- "boto3>=1.43.72,<2",
41
+ "wandb>=0.29.0,<1",
42
+ "boto3>=1.43.82,<2",
43
43
  "numpy>=2.5.2",
44
44
  # is a dependency of sympy, but not explicitly listed in the requirements.txt
45
45
  # https://github.com/sympy/sympy/blob/0204fa34e8f6f6f8ccb4de01209be9a2345c9d6e/doc/src/contributing/dependencies.md?plain=1#L125
46
46
  "antlr4-python3-runtime==4.11.0",
47
- "scipy>=1.18.0,<2", # required for the aggregation of pass@k metrics
47
+ "scipy>=1.18.1,<2", # required for the aggregation of pass@k metrics
48
48
  ]
49
49
 
50
50
  [project.optional-dependencies]
@@ -55,8 +55,8 @@ determined = [
55
55
  ]
56
56
  api = ["aleph-alpha-client>=11.5.1"]
57
57
  openai = [
58
- "openai>=3.1.0,<4",
59
- "tiktoken>=0.13.0,<1",
58
+ "openai>=3.5.0,<4",
59
+ "tiktoken>=0.14.0,<1",
60
60
  "transformers>=4.45.2,<5",
61
61
  ]
62
62
  transformers = [
@@ -92,8 +92,8 @@ dev = [
92
92
  "types-pyyaml>=6.0.12.20260815,<7",
93
93
  "types-python-dateutil>=2.9.0.20260807,<3",
94
94
  "types-requests>=2.33.0.20260712,<3",
95
- "plotly>=6.9.0,<7",
96
- "ruff>=0.16.3",
95
+ "plotly>=7.0.0,<8",
96
+ "ruff>=0.16.5",
97
97
  "pip-licenses>=5.5.5",
98
98
  ]
99
99
  flash-attn = [
@@ -102,7 +102,7 @@ flash-attn = [
102
102
  ]
103
103
 
104
104
  [build-system]
105
- requires = ["uv_build>=0.12.5,<0.12.6"]
105
+ requires = ["uv_build>=0.12.7,<0.12.8"]
106
106
  build-backend = "uv_build"
107
107
 
108
108
  [tool.uv.build-backend]
@@ -0,0 +1,43 @@
1
+ """ARC German (ARC-DE)."""
2
+
3
+ from typing import Any, final, override
4
+
5
+ from eval_framework.choices import ChoiceFields, ChoiceReader
6
+ from eval_framework.composed import ComposedBenchmark
7
+ from eval_framework.contract import Benchmark
8
+ from eval_framework.subjects import NoSubject
9
+ from eval_framework.tasks.base import Language
10
+ from eval_framework.tasks.dataset_revisions import pinned_by_framework
11
+ from eval_framework.tasks.task_style import ClozeStyle, answer_key_to_index
12
+
13
+
14
+ @final
15
+ class ArcDeReader(ChoiceReader):
16
+ """Reads an ARC-DE row into choice fields: the German question, its answer texts, and the correct index.
17
+
18
+ ``answerKey`` arrives as either a 1-based number or a letter; ``answer_key_to_index`` normalises both,
19
+ which also frees the reader from caring how many answers a given row offers.
20
+ """
21
+
22
+ @override
23
+ def read(self, item: dict[str, Any]) -> ChoiceFields:
24
+ return ChoiceFields(
25
+ raw_question=item["question_de"],
26
+ choices=item["choices_de"]["text"],
27
+ correct_index=answer_key_to_index(item["answerKey"]),
28
+ )
29
+
30
+
31
+ # ARC-DE as cloze/ranked classification.
32
+ # https://huggingface.co/datasets/LeoLM/ArcChallenge_de
33
+ ARC_DE_BENCHMARK: Benchmark = ComposedBenchmark.compose(
34
+ id="ARC_DE",
35
+ display_name="ARC German",
36
+ styler=ClozeStyle(question_prefix="Frage: ", cue_text="Antwort:"),
37
+ reader=ArcDeReader(),
38
+ sample_split="test",
39
+ fewshot_split="validation",
40
+ subjects=NoSubject(),
41
+ dataset_policy=pinned_by_framework("LeoLM/ArcChallenge_de"),
42
+ language=Language.DEU,
43
+ )
@@ -0,0 +1,63 @@
1
+ """German CommonsenseQA (EllaMind) tasks.
2
+
3
+ https://huggingface.co/datasets/ellamind/csqa-multilingual
4
+
5
+ CSQA supplies separate easy and hard distractors.
6
+ """
7
+
8
+ from typing import Any, Literal, final, override
9
+
10
+ from eval_framework.choices import ChoiceFields, ChoiceReader
11
+ from eval_framework.composed import ComposedBenchmark
12
+ from eval_framework.contract import Benchmark
13
+ from eval_framework.subjects import ListOfSubjects
14
+ from eval_framework.tasks.base import Language
15
+ from eval_framework.tasks.dataset_revisions import pinned_by_framework
16
+ from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
17
+
18
+
19
+ @final
20
+ class CsqaReader(ChoiceReader):
21
+ """Reads a CSQA item: easy/hard distractor lists per level, shuffled in with the correct answer."""
22
+
23
+ def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
24
+ self._distractor_level = distractor_level
25
+
26
+ @override
27
+ def read(self, item: dict[str, Any]) -> ChoiceFields:
28
+ distractors = item["easy_distractors"] if self._distractor_level == "easy" else item["hard_distractors"]
29
+ choices, correct_index = shuffle_correct_with_distractors(
30
+ correct=item["correct_answer"],
31
+ distractors=distractors,
32
+ seed_text=item["question"] + item["correct_answer"],
33
+ )
34
+ return ChoiceFields(raw_question=item["question"], choices=choices, correct_index=correct_index)
35
+
36
+
37
+ # One styler per format, all sharing the German prefix/cue. The easy/hard distractor axis belongs to
38
+ # the reader, so it is orthogonal to the styler choice.
39
+ CSQA_ELLAMIND_CLOZE_STYLER = ClozeStyle.for_language(Language.DEU)
40
+ CSQA_ELLAMIND_MC_STYLER = MCStyle.for_language(Language.DEU)
41
+ CSQA_ELLAMIND_BPB_STYLER = BPBStyle.for_language(Language.DEU)
42
+
43
+
44
+ def _csqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
45
+ return ComposedBenchmark.compose(
46
+ id=id,
47
+ styler=styler,
48
+ reader=CsqaReader(distractor_level),
49
+ sample_split="validation",
50
+ fewshot_split="validation",
51
+ subjects=ListOfSubjects(["deu"]),
52
+ dataset_policy=pinned_by_framework("ellamind/csqa-multilingual"),
53
+ language=Language.DEU,
54
+ )
55
+
56
+
57
+ CSQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
58
+ _csqa_ellamind_benchmark("CSQA_ELLAMIND_MC_EASY_DE", CSQA_ELLAMIND_MC_STYLER, "easy"),
59
+ _csqa_ellamind_benchmark("CSQA_ELLAMIND_MC_HARD_DE", CSQA_ELLAMIND_MC_STYLER, "hard"),
60
+ _csqa_ellamind_benchmark("CSQA_ELLAMIND_CLOZE_EASY_DE", CSQA_ELLAMIND_CLOZE_STYLER, "easy"),
61
+ _csqa_ellamind_benchmark("CSQA_ELLAMIND_CLOZE_HARD_DE", CSQA_ELLAMIND_CLOZE_STYLER, "hard"),
62
+ _csqa_ellamind_benchmark("CSQA_ELLAMIND_BPB_DE", CSQA_ELLAMIND_BPB_STYLER, "easy"),
63
+ ]
@@ -0,0 +1,66 @@
1
+ """German PIQA (EllaMind) tasks.
2
+
3
+ https://huggingface.co/datasets/ellamind/piqa-multilingual
4
+
5
+ PIQA supplies separate easy and hard distractors.
6
+ """
7
+
8
+ from typing import Any, Literal, final, override
9
+
10
+ from eval_framework.choices import ChoiceFields, ChoiceReader
11
+ from eval_framework.composed import ComposedBenchmark
12
+ from eval_framework.contract import Benchmark
13
+ from eval_framework.subjects import ListOfSubjects
14
+ from eval_framework.tasks.base import Language
15
+ from eval_framework.tasks.dataset_revisions import pinned_by_framework
16
+ from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
17
+
18
+
19
+ @final
20
+ class PiqaReader(ChoiceReader):
21
+ """Reads a PIQA item: a single easy/hard distractor per level, shuffled in with the correct solution."""
22
+
23
+ def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
24
+ self._distractor_level = distractor_level
25
+
26
+ @override
27
+ def read(self, item: dict[str, Any]) -> ChoiceFields:
28
+ distractor = item["easy_distractor"] if self._distractor_level == "easy" else item["hard_distractor"]
29
+ choices, correct_index = shuffle_correct_with_distractors(
30
+ correct=item["correct_solution"],
31
+ distractors=[distractor],
32
+ seed_text=item["goal"] + item["correct_solution"],
33
+ )
34
+ return ChoiceFields(raw_question=item["goal"], choices=choices, correct_index=correct_index)
35
+
36
+
37
+ _QUESTION_PREFIX = "Ziel: "
38
+ _CUE_TEXT = "Antwort:"
39
+
40
+ # One styler per format (all sharing the German prefix/cue). The easy/hard distractor axis belongs to
41
+ # the reader, so it is orthogonal to the styler choice.
42
+ PIQA_ELLAMIND_CLOZE_STYLER = ClozeStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT)
43
+ PIQA_ELLAMIND_MC_STYLER = MCStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT)
44
+ PIQA_ELLAMIND_BPB_STYLER = BPBStyle(question_prefix=_QUESTION_PREFIX, cue_text=_CUE_TEXT)
45
+
46
+
47
+ def _piqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
48
+ return ComposedBenchmark.compose(
49
+ id=id,
50
+ styler=styler,
51
+ reader=PiqaReader(distractor_level),
52
+ sample_split="validation",
53
+ fewshot_split="validation",
54
+ subjects=ListOfSubjects(["deu"]),
55
+ dataset_policy=pinned_by_framework("ellamind/piqa-multilingual"),
56
+ language=Language.DEU,
57
+ )
58
+
59
+
60
+ PIQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
61
+ _piqa_ellamind_benchmark("PIQA_ELLAMIND_CLOZE_EASY_DE", PIQA_ELLAMIND_CLOZE_STYLER, "easy"),
62
+ _piqa_ellamind_benchmark("PIQA_ELLAMIND_CLOZE_HARD_DE", PIQA_ELLAMIND_CLOZE_STYLER, "hard"),
63
+ _piqa_ellamind_benchmark("PIQA_ELLAMIND_MC_EASY_DE", PIQA_ELLAMIND_MC_STYLER, "easy"),
64
+ _piqa_ellamind_benchmark("PIQA_ELLAMIND_MC_HARD_DE", PIQA_ELLAMIND_MC_STYLER, "hard"),
65
+ _piqa_ellamind_benchmark("PIQA_ELLAMIND_BPB_DE", PIQA_ELLAMIND_BPB_STYLER, "easy"),
66
+ ]
@@ -0,0 +1,66 @@
1
+ """German Social IQa (EllaMind) tasks.
2
+
3
+ https://huggingface.co/datasets/ellamind/siqa-multilingual
4
+
5
+ SIQA supplies separate easy and hard distractors.
6
+ """
7
+
8
+ from typing import Any, Literal, final, override
9
+
10
+ from eval_framework.choices import ChoiceFields, ChoiceReader
11
+ from eval_framework.composed import ComposedBenchmark
12
+ from eval_framework.contract import Benchmark
13
+ from eval_framework.subjects import ListOfSubjects
14
+ from eval_framework.tasks.base import Language
15
+ from eval_framework.tasks.dataset_revisions import pinned_by_framework
16
+ from eval_framework.tasks.task_style import BPBStyle, ClozeStyle, MCStyle, TaskStyler, shuffle_correct_with_distractors
17
+
18
+
19
+ @final
20
+ class SiqaReader(ChoiceReader):
21
+ """Reads a Social IQa item: the shown question is the context followed by the question, and the
22
+ easy/hard distractor list for the level is shuffled in with the correct answer."""
23
+
24
+ def __init__(self, distractor_level: Literal["easy", "hard"]) -> None:
25
+ self._distractor_level = distractor_level
26
+
27
+ @override
28
+ def read(self, item: dict[str, Any]) -> ChoiceFields:
29
+ distractors = item["easy_distractors"] if self._distractor_level == "easy" else item["hard_distractors"]
30
+ choices, correct_index = shuffle_correct_with_distractors(
31
+ correct=item["correct_answer"],
32
+ distractors=distractors,
33
+ seed_text=item["question"] + item["correct_answer"],
34
+ )
35
+ return ChoiceFields(
36
+ raw_question=f"{item['context']} {item['question']}", choices=choices, correct_index=correct_index
37
+ )
38
+
39
+
40
+ # One styler per format, all sharing the German prefix/cue. The easy/hard distractor axis belongs to
41
+ # the reader, so it is orthogonal to the styler choice.
42
+ SIQA_ELLAMIND_CLOZE_STYLER = ClozeStyle.for_language(Language.DEU)
43
+ SIQA_ELLAMIND_MC_STYLER = MCStyle.for_language(Language.DEU)
44
+ SIQA_ELLAMIND_BPB_STYLER = BPBStyle.for_language(Language.DEU)
45
+
46
+
47
+ def _siqa_ellamind_benchmark(id: str, styler: TaskStyler, distractor_level: Literal["easy", "hard"]) -> Benchmark:
48
+ return ComposedBenchmark.compose(
49
+ id=id,
50
+ styler=styler,
51
+ reader=SiqaReader(distractor_level),
52
+ sample_split="validation",
53
+ fewshot_split="validation",
54
+ subjects=ListOfSubjects(["deu"]),
55
+ dataset_policy=pinned_by_framework("ellamind/siqa-multilingual"),
56
+ language=Language.DEU,
57
+ )
58
+
59
+
60
+ SIQA_ELLAMIND_BENCHMARKS: list[Benchmark] = [
61
+ _siqa_ellamind_benchmark("SIQA_ELLAMIND_MC_EASY_DE", SIQA_ELLAMIND_MC_STYLER, "easy"),
62
+ _siqa_ellamind_benchmark("SIQA_ELLAMIND_MC_HARD_DE", SIQA_ELLAMIND_MC_STYLER, "hard"),
63
+ _siqa_ellamind_benchmark("SIQA_ELLAMIND_CLOZE_EASY_DE", SIQA_ELLAMIND_CLOZE_STYLER, "easy"),
64
+ _siqa_ellamind_benchmark("SIQA_ELLAMIND_CLOZE_HARD_DE", SIQA_ELLAMIND_CLOZE_STYLER, "hard"),
65
+ _siqa_ellamind_benchmark("SIQA_ELLAMIND_BPB_DE", SIQA_ELLAMIND_BPB_STYLER, "easy"),
66
+ ]
@@ -0,0 +1,31 @@
1
+ """Choice readers: extracting the fields a choice-based styler needs out of a raw dataset item,
2
+ so neither the eval nor the styler has to know a benchmark's item schema."""
3
+
4
+ from abc import ABC, abstractmethod
5
+ from dataclasses import dataclass
6
+ from typing import Any
7
+
8
+
9
+ @dataclass(frozen=True)
10
+ class ChoiceFields:
11
+ """The fields a choice-based styler needs out of a single dataset item.
12
+
13
+ ``choices`` and ``correct_index`` are produced together (a benchmark may shuffle the correct
14
+ answer in among distractors), so a reader yields them in one ``read`` rather than via separate
15
+ calls that would each have to re-derive the same shuffle.
16
+ """
17
+
18
+ raw_question: str
19
+ choices: list[str]
20
+ correct_index: int
21
+
22
+
23
+ class ChoiceReader(ABC):
24
+ """Reads the fields a styler needs out of a raw dataset item.
25
+
26
+ Isolates dataset-schema knowledge here, so neither the eval nor the styler has to know the shape
27
+ of a benchmark's items.
28
+ """
29
+
30
+ @abstractmethod
31
+ def read(self, item: dict[str, Any]) -> ChoiceFields: ...