eval-framework 0.5.1__tar.gz → 0.5.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 (193) hide show
  1. {eval_framework-0.5.1 → eval_framework-0.5.3}/PKG-INFO +2 -2
  2. {eval_framework-0.5.1 → eval_framework-0.5.3}/pyproject.toml +5 -5
  3. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/evaluation_generator.py +1 -1
  4. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/huggingface.py +2 -2
  5. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/vllm.py +2 -2
  6. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/vllm_local_server.py +5 -0
  7. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/dataset_revisions.py +1 -1
  8. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/registry.py +12 -0
  9. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/task-dataset-revisions.json +4 -0
  10. eval_framework-0.5.1/src/eval_framework/metrics/completion/cwe_accuracy.py +0 -49
  11. eval_framework-0.5.1/src/eval_framework/metrics/completion/niah_accuracy.py +0 -163
  12. {eval_framework-0.5.1 → eval_framework-0.5.3}/LICENSE +0 -0
  13. {eval_framework-0.5.1 → eval_framework-0.5.3}/README.md +0 -0
  14. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/__init__.py +0 -0
  15. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/base_config.py +0 -0
  16. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/context/__init__.py +0 -0
  17. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/context/determined.py +0 -0
  18. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/context/eval.py +0 -0
  19. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/context/local.py +0 -0
  20. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/exceptions.py +0 -0
  21. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/external/drop_process_results.py +0 -0
  22. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  23. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  24. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  25. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  26. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  27. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/__init__.py +0 -0
  28. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/aleph_alpha.py +0 -0
  29. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/base.py +0 -0
  30. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/mistral.py +0 -0
  31. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/models.py +0 -0
  32. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/llm/openai.py +0 -0
  33. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/logger.py +0 -0
  34. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/main.py +0 -0
  35. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/__init__.py +0 -0
  36. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
  37. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
  38. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/base.py +0 -0
  39. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/__init__.py +0 -0
  40. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  41. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/aidanbench.py +0 -0
  42. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/bleu.py +0 -0
  43. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/chrf.py +0 -0
  44. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
  45. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  46. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  47. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  48. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  49. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  50. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/f1.py +0 -0
  51. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  52. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  53. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  54. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/json_format.py +0 -0
  55. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  56. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/length_control.py +0 -0
  57. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  58. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  59. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  60. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  61. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  62. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/repetition.py +0 -0
  63. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  64. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  65. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  66. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  67. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/struct_eval_metrics.py +0 -0
  68. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/ter.py +0 -0
  69. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  70. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
  71. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  72. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/__init__.py +0 -0
  73. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/base.py +0 -0
  74. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  75. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  76. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  77. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  78. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  79. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  80. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  81. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  82. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  83. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  84. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  85. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  86. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  87. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  88. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  89. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  90. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  91. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  92. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  93. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  94. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  95. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  96. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  97. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  98. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  99. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/llm/utils.py +0 -0
  100. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
  101. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
  102. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  103. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  104. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  105. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  106. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  107. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  108. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/py.typed +0 -0
  109. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/response_generator.py +0 -0
  110. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/result_processors/__init__.py +0 -0
  111. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/result_processors/base.py +0 -0
  112. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  113. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/result_processors/result_processor.py +0 -0
  114. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  115. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/run.py +0 -0
  116. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/run_direct.py +0 -0
  117. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/shared/types.py +0 -0
  118. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/suite.py +0 -0
  119. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  120. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/__init__.py +0 -0
  121. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/base.py +0 -0
  122. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
  123. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/aidanbench.py +0 -0
  124. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
  125. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
  126. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/arc_fi.py +0 -0
  127. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/balancedcopa.py +0 -0
  128. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/belebele.py +0 -0
  129. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
  130. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/casehold.py +0 -0
  131. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/chembench.py +0 -0
  132. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
  133. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
  134. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
  135. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/duc.py +0 -0
  136. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/flores200.py +0 -0
  137. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/flores_plus.py +0 -0
  138. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
  139. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
  140. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/gpqa.py +0 -0
  141. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
  142. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
  143. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/hellaswag_de.py +0 -0
  144. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
  145. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
  146. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/include.py +0 -0
  147. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/infinitebench.py +0 -0
  148. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/lab_bench.py +0 -0
  149. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
  150. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
  151. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
  152. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
  153. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/mmlu_de.py +0 -0
  154. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
  155. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/mmmlu.py +0 -0
  156. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
  157. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
  158. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/openbookqa.py +0 -0
  159. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/opengptx_eu20.py +0 -0
  160. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/pawsx.py +0 -0
  161. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
  162. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/quality.py +0 -0
  163. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
  164. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
  165. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/sphyr.py +0 -0
  166. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
  167. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/struct_eval.py +0 -0
  168. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/tablebench.py +0 -0
  169. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/triviaqa.py +0 -0
  170. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/truthfulqa.py +0 -0
  171. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/winogender.py +0 -0
  172. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
  173. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/winox.py +0 -0
  174. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/wmt.py +0 -0
  175. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/benchmarks/zero_scrolls.py +0 -0
  176. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/eval_config.py +0 -0
  177. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/perturbation.py +0 -0
  178. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/task_loader.py +0 -0
  179. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/task_names.py +0 -0
  180. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/task_style.py +0 -0
  181. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/tasks/utils.py +0 -0
  182. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/constants.py +0 -0
  183. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/file_ops.py +0 -0
  184. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/generate_task_docs.py +0 -0
  185. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/helpers.py +0 -0
  186. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/logging.py +0 -0
  187. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/packaging.py +0 -0
  188. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/eval_framework/utils/tqdm_handler.py +0 -0
  189. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/template_formatting/README.md +0 -0
  190. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/template_formatting/__init__.py +0 -0
  191. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/template_formatting/formatter.py +0 -0
  192. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/template_formatting/mistral_formatter.py +0 -0
  193. {eval_framework-0.5.1 → eval_framework-0.5.3}/src/template_formatting/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: eval-framework
3
- Version: 0.5.1
3
+ Version: 0.5.3
4
4
  Summary: Evaluation Framework
5
5
  Author: Aleph Alpha Research
6
6
  License: Apache License
@@ -252,7 +252,7 @@ Requires-Dist: jinja2>=3.1.6,<4 ; extra == 'optional'
252
252
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'transformers'
253
253
  Requires-Dist: torch>=2.5,<3 ; extra == 'transformers'
254
254
  Requires-Dist: accelerate>=1.14.0,<2 ; extra == 'transformers'
255
- Requires-Dist: vllm>=0.8.5,<0.9 ; extra == 'vllm'
255
+ Requires-Dist: vllm>=0.22,<0.23 ; extra == 'vllm'
256
256
  Requires-Dist: torch>=2.5,<3 ; extra == 'vllm'
257
257
  Requires-Python: >=3.12, <3.13
258
258
  Project-URL: repository, https://github.com/Aleph-Alpha-Research/eval-framework
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eval-framework"
3
- version = "0.5.1"
3
+ version = "0.5.3"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -66,7 +66,7 @@ transformers = [
66
66
  ]
67
67
  accelerate = ["accelerate"]
68
68
  vllm = [
69
- "vllm>=0.8.5,<0.9",
69
+ "vllm>=0.22,<0.23",
70
70
  "torch>=2.5,<3"
71
71
  ]
72
72
  mistral = [
@@ -92,7 +92,7 @@ eval_framework = "eval_framework.run:run"
92
92
  [dependency-groups]
93
93
  dev = [
94
94
  "mypy>=2.1.0,<3",
95
- "pytest>=9.1.0,<10",
95
+ "pytest>=9.1.1,<10",
96
96
  "pytest-mock>=3.15.1",
97
97
  "pytest-xdist>=3.8.0,<4",
98
98
  "pytest-sugar>1.1,<2",
@@ -100,7 +100,7 @@ dev = [
100
100
  "types-python-dateutil>=2.9.0.20260518,<3",
101
101
  "types-requests>=2.33.0.20260518,<3",
102
102
  "plotly>=6.8.0,<7",
103
- "ruff>=0.15.18",
103
+ "ruff>=0.15.20",
104
104
  "pip-licenses>=5.5.5",
105
105
  ]
106
106
  flash-attn = [
@@ -109,7 +109,7 @@ flash-attn = [
109
109
  ]
110
110
 
111
111
  [build-system]
112
- requires = ["uv_build>=0.11.23,<0.11.24"]
112
+ requires = ["uv_build>=0.11.24,<0.11.25"]
113
113
  build-backend = "uv_build"
114
114
 
115
115
  [tool.uv.build-backend]
@@ -47,7 +47,7 @@ class EvaluationGenerator:
47
47
  else:
48
48
  raise NotImplementedError
49
49
 
50
- self.task_name = eval_.task_class().NAME
50
+ self.task_name = eval_.display_name()
51
51
 
52
52
  def _run_metric_calculators(self, responses: list[Completion | Loglikelihood]) -> list[Result]:
53
53
  results: list[Result] = self.result_processor.load_metrics_results()
@@ -6,7 +6,7 @@ import warnings
6
6
  from collections.abc import Callable, Sequence
7
7
  from functools import partial
8
8
  from pathlib import Path
9
- from typing import Any
9
+ from typing import Any, cast
10
10
 
11
11
  import torch
12
12
  from tokenizers import Tokenizer
@@ -133,7 +133,7 @@ class BaseHFLLM(BaseLLM):
133
133
 
134
134
  def __del__(self) -> None:
135
135
  if hasattr(self, "model"):
136
- num_gpus = len(self.model.hf_device_map)
136
+ num_gpus = len(cast(dict[str, Any], self.model.hf_device_map))
137
137
  del self.model
138
138
  if num_gpus > 1 and torch.distributed.is_initialized():
139
139
  torch.distributed.destroy_process_group()
@@ -13,9 +13,9 @@ from typing import Any, Literal, Protocol, cast, override
13
13
  import torch
14
14
  from vllm import LLM, SamplingParams
15
15
  from vllm.distributed.parallel_state import cleanup_dist_env_and_memory
16
- from vllm.inputs.data import TokensPrompt
16
+ from vllm.inputs import TokensPrompt
17
17
  from vllm.outputs import RequestOutput
18
- from vllm.transformers_utils.tokenizer import get_tokenizer
18
+ from vllm.tokenizers import get_tokenizer
19
19
 
20
20
  from eval_framework.llm.base import BaseLLM
21
21
  from eval_framework.shared.types import (
@@ -107,6 +107,7 @@ class VLLMLocalServerModel(BaseLLM):
107
107
  max_model_len: int | None = None,
108
108
  gpu_memory_utilization: float | None = None,
109
109
  enforce_eager: bool | None = None,
110
+ attention_backend: str | None = "TRITON_ATTN",
110
111
  # Escape hatch:
111
112
  vllm_command: str | None = None,
112
113
  vllm_extra_args: list[str] | None = None,
@@ -136,6 +137,10 @@ class VLLMLocalServerModel(BaseLLM):
136
137
  # vLLM exposes this as a boolean flag; passing a value breaks CLI parsing.
137
138
  if enforce_eager:
138
139
  cmd += ["--enforce-eager"]
140
+ if attention_backend is not None:
141
+ # Force a specific attention backend. vLLM otherwise auto-selects FlashInfer,
142
+ # which requires nvcc at runtime (absent in CI), causing the server to fail to start.
143
+ cmd += ["--attention-backend", str(attention_backend)]
139
144
 
140
145
  if vllm_extra_args:
141
146
  cmd += list(vllm_extra_args)
@@ -4,7 +4,7 @@ Overwrites ``task-dataset-revisions.json`` in this package with task class name
4
4
 
5
5
  Usage::
6
6
 
7
- uv run python -m eval_framework.tasks.benchmarks.dataset_revisions
7
+ uv run python -m eval_framework.tasks.dataset_revisions
8
8
  """
9
9
 
10
10
  import json
@@ -53,6 +53,10 @@ class EvalFactory(ABC):
53
53
  def metrics(self) -> list[type["BaseMetric"]]:
54
54
  """The eval's metrics"""
55
55
 
56
+ @abstractmethod
57
+ def display_name(self) -> str:
58
+ """Human-readable display name. Is allowed to have special characters and whitespaces."""
59
+
56
60
  @abstractmethod
57
61
  def create(
58
62
  self, num_fewshot: int, custom_subjects: list[str] | None, custom_hf_revision: str | None
@@ -126,6 +130,10 @@ class _Lazy(EvalFactory):
126
130
  """The eval's metrics"""
127
131
  return self.task_class().get_metrics()
128
132
 
133
+ def display_name(self) -> str:
134
+ """The eval's human-readable display name (the task's ``NAME``)."""
135
+ return self.task_class().NAME
136
+
129
137
 
130
138
  class _Eager(EvalFactory):
131
139
  """Wraps an already-imported task class."""
@@ -167,6 +175,10 @@ class _Eager(EvalFactory):
167
175
  """The eval's metrics"""
168
176
  return self.task_class().get_metrics()
169
177
 
178
+ def display_name(self) -> str:
179
+ """The eval's human-readable display name (the task's ``NAME``)."""
180
+ return self.task_class().NAME
181
+
170
182
 
171
183
  class Registry:
172
184
  """A registry for tasks with support for lazy loading.
@@ -14,6 +14,7 @@
14
14
  "GOLDENSWAG": "f98259e4185c9ab868cf695ac98e9d863eba7986",
15
15
  "GOLDENSWAG_IDK": "f98259e4185c9ab868cf695ac98e9d863eba7986",
16
16
  "GPQA_OLMES": "633f5ee89ab8ad4522a9f850766b73f62147ffdd",
17
+ "GSM8KBPB": "740312add88f781978c0658806c59bc2815b9866",
17
18
  "GSM8KReasoning": "740312add88f781978c0658806c59bc2815b9866",
18
19
  "GSM8K_OLMES": "740312add88f781978c0658806c59bc2815b9866",
19
20
  "GlobalMMLU": "0e619dbeb34206cd48705a1a0ea7fb21cae09993",
@@ -25,6 +26,7 @@
25
26
  "IFEval": "966cd89545d6b6acfd7638bc708b98261ca58e84",
26
27
  "IFEvalDe": "4f52d847003b3c83cc282e9d296853a24b34b19a",
27
28
  "MATH500": "6e4ed1a2a79af7d8630a6b768ec859cb5af4d3be",
29
+ "MATHMinervaBPB": "21a5633873b6a120296cce3e2df9d5550074f4a3",
28
30
  "MATHMinerva_OLMES": "21a5633873b6a120296cce3e2df9d5550074f4a3",
29
31
  "MBPPBPB": "4bb6404fdc6cacfda99d4ac4205087b89d32030c",
30
32
  "MBPP_OLMES": "4bb6404fdc6cacfda99d4ac4205087b89d32030c",
@@ -55,8 +57,10 @@
55
57
  "PIQA_IDK": "2e8ac2dffd59bac8c3c6714948f4c551a0848bb0",
56
58
  "PIQA_OLMES": "2e8ac2dffd59bac8c3c6714948f4c551a0848bb0",
57
59
  "SCIQ_OLMES": "2c94ad3e1aafab77146f384e23536f97a4849815",
60
+ "SQuAD2_MA": "3ffb306f725f7d2ce8394bc1873b24868140c412",
58
61
  "SQuAD_OLMES": "7b6d24c440a36b6815f21b70d25016731768db1f",
59
62
  "SocialIQAMC_OLMES": "8835ceb9141d7896d9d968634a9b21ae440e3ec5",
60
63
  "TRIVIAQA": "0f7faf33a3908546c6fd5b73a660e0f8ff173c2f",
64
+ "TriviaQA_MA": "0f7faf33a3908546c6fd5b73a660e0f8ff173c2f",
61
65
  "WINOGRANDECloze": "01e74176c63542e6b0bcb004dcdea22d94fb67b5"
62
66
  }
@@ -1,49 +0,0 @@
1
- import re
2
-
3
- from eval_framework.metrics.base import BaseMetric, MetricResult
4
- from eval_framework.shared.types import Completion, Error
5
-
6
-
7
- class CWEAccuracy(BaseMetric[Completion]):
8
- """Metric for Common Word Extraction tasks"""
9
-
10
- NAME = "CWEAccuracy"
11
-
12
- def calculate(self, response: Completion) -> list[MetricResult]:
13
- if response.error is not None:
14
- return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=response.error)]
15
-
16
- ground_truths = [gt for gt in response.ground_truth_list if gt is not None]
17
- if not ground_truths:
18
- return [MetricResult(metric_name=self.NAME, value=0.0, higher_is_better=True, error=response.error)]
19
-
20
- try:
21
- # Get model's answer
22
- model_answer = response.completion
23
-
24
- # Check if all words in the correct answer are present in the model's answer
25
- is_correct = self._is_answer_correct(ground_truths, model_answer)
26
-
27
- return [
28
- MetricResult(
29
- metric_name=self.NAME, value=1.0 if is_correct else 0.0, higher_is_better=True, error=response.error
30
- )
31
- ]
32
- except Exception as e:
33
- error = Error(error_class=e.__class__.__name__, message=str(e), traceback="")
34
- return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=error)]
35
-
36
- def _is_answer_correct(self, correct_answer: list[str], model_answer: str) -> bool:
37
- """Check if all words in correct_answer are present in model_answer as whole words"""
38
- model_answer = model_answer.strip().lower()
39
- correct_answer = [correct.strip().lower() for correct in correct_answer]
40
-
41
- # For each word in the correct answer, check if it exists as a whole word in the model answer
42
- for word in correct_answer:
43
- # Create a regex pattern that matches the word as a whole word
44
- # \b represents a word boundary
45
- pattern = r"\b" + re.escape(word) + r"\b"
46
- if not re.search(pattern, model_answer):
47
- return False
48
-
49
- return True
@@ -1,163 +0,0 @@
1
- import re
2
- import unicodedata
3
-
4
- from eval_framework.metrics.base import (
5
- BaseMetric,
6
- MetricResult,
7
- )
8
- from eval_framework.shared.types import Completion, Error, LanguageMetricContext, extract_context_metric
9
-
10
- # Dictionary of "none" words in different languages
11
- NONE_DICT = {
12
- "en": ["none"],
13
- "ko": ["없음"],
14
- "pl": ["brak"],
15
- "zh": ["无"],
16
- "vi": ["Không có"],
17
- "ja": ["なし", "数字はありません"],
18
- "ta": ["ஏதுமில்லை"],
19
- "hu": ["nincs"],
20
- "fr": ["aucun"],
21
- "no": ["ingen"],
22
- "uk": ["немає", "Нема"],
23
- "ru": ["нет"],
24
- "de": ["Keine vorhanden"],
25
- "es": ["ninguno"],
26
- "sv": ["inga"],
27
- "fi": ["ei mikään"],
28
- "cs": ["žádné", "žádná"],
29
- "sr": ["nema"],
30
- "pt": ["nenhum"],
31
- "it": ["nessuno"],
32
- "fa": ["هیچ کدام"],
33
- "sw": ["hakuna"],
34
- "nl": ["geen"],
35
- "st": ["ha ho letho"],
36
- "hi": ["कोई नहीं"],
37
- "da": ["ingen"],
38
- }
39
-
40
-
41
- def clean_text(text: str) -> str:
42
- """Clean text by removing spaces and normalizing"""
43
- return text.strip().lower().replace("\u200c", "").replace(" ", "")
44
-
45
-
46
- class NIAHAccuracy(BaseMetric[Completion]):
47
- """Metric for Needle in a Haystack tasks"""
48
-
49
- NAME = "NIAHAccuracy"
50
-
51
- def calculate(self, response: Completion) -> list[MetricResult]:
52
- if response.error is not None:
53
- return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=response.error)]
54
-
55
- context = extract_context_metric(response, LanguageMetricContext)
56
-
57
- ground_truths = [gt for gt in response.ground_truth_list if gt is not None]
58
-
59
- try:
60
- # Extract task and language from metadata
61
- assert response.context is not None
62
- language = context.language
63
-
64
- # Get model's answer
65
- model_answer = response.completion
66
-
67
- # Determine which comparison function to use based on the task
68
- none_values = set(v for values in NONE_DICT.values() for v in values)
69
- if ground_truths[0] in none_values:
70
- is_correct = self._compare_none(language, model_answer)
71
- else:
72
- is_correct = self._compare_numbers(language, ground_truths, model_answer)
73
-
74
- return [
75
- MetricResult(
76
- metric_name=self.NAME, value=float(is_correct), higher_is_better=True, error=response.error
77
- )
78
- ]
79
- except Exception as e:
80
- error = Error(error_class=e.__class__.__name__, message=str(e), traceback="")
81
- return [MetricResult(metric_name=self.NAME, value=None, higher_is_better=True, error=error)]
82
-
83
- def _compare_numbers(self, lang: str, correct_answer: list[str], model_answer: str) -> bool:
84
- """Compare numbers for regular NIAH tasks"""
85
- if "-" in lang:
86
- inst_lang = lang.split("-")[1]
87
- else:
88
- inst_lang = lang
89
-
90
- if not model_answer:
91
- return False
92
-
93
- processed_model_answer = unicodedata.normalize("NFKC", model_answer)
94
-
95
- none_words = NONE_DICT.get(inst_lang, ["none"])
96
- # Check if any word in none_words is present in the processed answer; if yes, auto-fail
97
- for word in none_words:
98
- if word in processed_model_answer or clean_text(word) in processed_model_answer:
99
- return False
100
-
101
- # Extract all numeric substrings from the processed answer
102
- numeric_strings = re.findall(r"\d+", processed_model_answer)
103
-
104
- # Remove numbers that consist of a single digit
105
- numeric_strings = [num for num in numeric_strings if len(num) > 1]
106
-
107
- # Remove duplicates while preserving the original order
108
- numeric_strings = list(dict.fromkeys(numeric_strings))
109
-
110
- # If no numerics are found after processing, return False
111
- if not numeric_strings:
112
- return False
113
-
114
- # Convert the extracted number strings to integers
115
- try:
116
- extracted_numbers = [int(num) for num in numeric_strings]
117
- except Exception:
118
- return False
119
-
120
- # Convert correct_answers elements to integers to ensure numeric comparison
121
- try:
122
- correct_converted = [int(item) for item in correct_answer]
123
- except Exception:
124
- return False
125
-
126
- # Check that the number of extracted numbers matches the length of correct_answers
127
- if len(extracted_numbers) != len(correct_converted):
128
- return False
129
-
130
- # Compare the extracted numbers with the correct answers
131
- if set(extracted_numbers) == set(correct_converted):
132
- return True
133
- else:
134
- return False
135
-
136
- def _compare_none(self, lang: str, model_answer: str) -> bool:
137
- """Compare for NIAH none tasks"""
138
- # Lower-case all inputs for consistent, case-insensitive processing
139
- if "-" in lang:
140
- inst_lang = lang.split("-")[1]
141
- else:
142
- inst_lang = lang
143
-
144
- processed_model_answer = clean_text(unicodedata.normalize("NFKC", model_answer))
145
- none_words = [clean_text(word) for word in NONE_DICT[inst_lang]]
146
-
147
- # Remove single digit numbers from the processed answer
148
- processed_model_answer = re.sub(r"\b\d\b", "", processed_model_answer)
149
-
150
- # Extract all multi-digit numeric substrings from the processed answer
151
- numeric_strings = re.findall(r"\d\d+", processed_model_answer)
152
-
153
- # If any multi-digit numbers are found, return False
154
- if numeric_strings:
155
- return False
156
-
157
- # Check if any of the words in none_words are present
158
- for word in none_words:
159
- if word in processed_model_answer:
160
- return True
161
-
162
- # If none of the none_words are found, return False
163
- return False
File without changes
File without changes