eval-framework 0.7.2__tar.gz → 0.8.0__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 (160) hide show
  1. {eval_framework-0.7.2 → eval_framework-0.8.0}/PKG-INFO +5 -11
  2. {eval_framework-0.7.2 → eval_framework-0.8.0}/README.md +3 -2
  3. {eval_framework-0.7.2 → eval_framework-0.8.0}/pyproject.toml +5 -13
  4. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/models.py +0 -5
  5. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/run.py +17 -13
  6. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/utils.py +5 -2
  7. eval_framework-0.7.2/src/eval_framework/llm/mistral.py +0 -88
  8. eval_framework-0.7.2/src/eval_framework/llm/vllm.py +0 -565
  9. eval_framework-0.7.2/src/eval_framework/llm/vllm_local_server.py +0 -222
  10. {eval_framework-0.7.2 → eval_framework-0.8.0}/LICENSE +0 -0
  11. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/__init__.py +0 -0
  12. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/base_config.py +0 -0
  13. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/__init__.py +0 -0
  14. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/determined.py +0 -0
  15. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/eval.py +0 -0
  16. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/local.py +0 -0
  17. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/evaluation_generator.py +0 -0
  18. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/exceptions.py +0 -0
  19. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/drop_process_results.py +0 -0
  20. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/README.md +0 -0
  21. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
  22. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
  23. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
  24. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
  25. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/__init__.py +0 -0
  26. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/aleph_alpha.py +0 -0
  27. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/base.py +0 -0
  28. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/huggingface.py +0 -0
  29. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/openai.py +0 -0
  30. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/logger.py +0 -0
  31. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/main.py +0 -0
  32. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/__init__.py +0 -0
  33. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
  34. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
  35. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/base.py +0 -0
  36. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/__init__.py +0 -0
  37. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
  38. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
  39. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
  40. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
  41. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/csv_format.py +0 -0
  42. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
  43. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
  44. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/f1.py +0 -0
  45. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/format_checker.py +0 -0
  46. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
  47. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/ifeval.py +0 -0
  48. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/json_format.py +0 -0
  49. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/language_checker.py +0 -0
  50. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/length_control.py +0 -0
  51. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
  52. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
  53. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
  54. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
  55. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
  56. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/repetition.py +0 -0
  57. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
  58. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
  59. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
  60. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
  61. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/text_counter.py +0 -0
  62. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
  63. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
  64. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/__init__.py +0 -0
  65. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/base.py +0 -0
  66. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
  67. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
  68. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
  69. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
  70. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
  71. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
  72. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
  73. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/language.py +0 -0
  74. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
  75. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/models.py +0 -0
  76. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
  77. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
  78. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
  79. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
  80. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
  81. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
  82. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
  83. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
  84. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
  85. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
  86. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
  87. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
  88. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
  89. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
  90. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
  91. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/utils.py +0 -0
  92. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
  93. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
  94. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
  95. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
  96. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
  97. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
  98. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
  99. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
  100. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/py.typed +0 -0
  101. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/response_generator.py +0 -0
  102. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/__init__.py +0 -0
  103. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/base.py +0 -0
  104. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/hf_uploader.py +0 -0
  105. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/result_processor.py +0 -0
  106. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
  107. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/run_direct.py +0 -0
  108. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/shared/types.py +0 -0
  109. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/suite.py +0 -0
  110. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
  111. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/__init__.py +0 -0
  112. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/base.py +0 -0
  113. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
  114. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
  115. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
  116. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
  117. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
  118. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
  119. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
  120. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
  121. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
  122. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/gpqa.py +0 -0
  123. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
  124. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
  125. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
  126. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
  127. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
  128. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
  129. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
  130. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
  131. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
  132. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
  133. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
  134. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
  135. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
  136. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
  137. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
  138. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/triviaqa.py +0 -0
  139. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
  140. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/dataset_revisions.py +0 -0
  141. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/eval_config.py +0 -0
  142. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
  143. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
  144. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/perturbation.py +0 -0
  145. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/registry.py +0 -0
  146. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/task_loader.py +0 -0
  147. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/task_names.py +0 -0
  148. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/task_style.py +0 -0
  149. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/constants.py +0 -0
  150. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/file_ops.py +0 -0
  151. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/generate_task_docs.py +0 -0
  152. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/helpers.py +0 -0
  153. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/logging.py +0 -0
  154. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/packaging.py +0 -0
  155. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/tqdm_handler.py +0 -0
  156. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/README.md +0 -0
  157. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/__init__.py +0 -0
  158. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/formatter.py +0 -0
  159. {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/mistral_formatter.py +0 -0
  160. {eval_framework-0.7.2 → eval_framework-0.8.0}/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.7.2
3
+ Version: 0.8.0
4
4
  Summary: Evaluation Framework
5
5
  Author: Aleph Alpha Research
6
6
  License: Apache License
@@ -236,13 +236,10 @@ Requires-Dist: numpy>=2.2.6
236
236
  Requires-Dist: antlr4-python3-runtime==4.11.0
237
237
  Requires-Dist: scipy>=1.18.0,<2
238
238
  Requires-Dist: accelerate ; extra == 'accelerate'
239
- Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,vllm,optional,mistral] ; extra == 'all'
239
+ Requires-Dist: eval-framework[determined,api,openai,transformers,accelerate,optional] ; extra == 'all'
240
240
  Requires-Dist: aleph-alpha-client>=11.5.1 ; extra == 'api'
241
241
  Requires-Dist: determined>=0.38.1,<0.39 ; extra == 'determined'
242
242
  Requires-Dist: tensorboard==2.21.0 ; extra == 'determined'
243
- Requires-Dist: mistral-common>=1.11.6,<2 ; extra == 'mistral'
244
- Requires-Dist: huggingface-hub>=0.36.2,<0.37 ; extra == 'mistral'
245
- Requires-Dist: eval-framework[vllm] ; extra == 'mistral'
246
243
  Requires-Dist: openai>=2.46.0,<3 ; extra == 'openai'
247
244
  Requires-Dist: tiktoken>=0.13.0,<1 ; extra == 'openai'
248
245
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'openai'
@@ -251,19 +248,15 @@ Requires-Dist: jinja2>=3.1.6,<4 ; extra == 'optional'
251
248
  Requires-Dist: transformers>=4.45.2,<5 ; extra == 'transformers'
252
249
  Requires-Dist: torch>=2.5,<3 ; extra == 'transformers'
253
250
  Requires-Dist: accelerate>=1.14.0,<2 ; extra == 'transformers'
254
- Requires-Dist: vllm>=0.22,<0.23 ; extra == 'vllm'
255
- Requires-Dist: torch>=2.5,<3 ; extra == 'vllm'
256
251
  Requires-Python: >=3.12, <3.13
257
252
  Project-URL: repository, https://github.com/Aleph-Alpha-Research/eval-framework
258
253
  Provides-Extra: accelerate
259
254
  Provides-Extra: all
260
255
  Provides-Extra: api
261
256
  Provides-Extra: determined
262
- Provides-Extra: mistral
263
257
  Provides-Extra: openai
264
258
  Provides-Extra: optional
265
259
  Provides-Extra: transformers
266
- Provides-Extra: vllm
267
260
  Description-Content-Type: text/markdown
268
261
 
269
262
  <!-- Badges -->
@@ -316,12 +309,13 @@ pip install eval_framework
316
309
  There are optional extras available to unlock specific features of the library:
317
310
  - `api` for inference using the aleph-alpha client.
318
311
  - `determined` for running jobs via determined.
319
- - `mistral` for inference on Mistral models.
312
+ - `openai` for inference against OpenAI-compatible HTTP endpoints.
320
313
  - `transformers` for inference using the transformers library.
321
- - `vllm` for inference via VLLM.
322
314
 
323
315
  As a short hand, the `all` extra installs all of the above.
324
316
 
317
+ For local vLLM inference, see the sibling [`local-vllm-server/`](./local-vllm-server/README.md) package.
318
+
325
319
  We use `uv` to better resolve dependencies when downloading the extras. You can install uv with:
326
320
  ```bash
327
321
  curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -48,12 +48,13 @@ pip install eval_framework
48
48
  There are optional extras available to unlock specific features of the library:
49
49
  - `api` for inference using the aleph-alpha client.
50
50
  - `determined` for running jobs via determined.
51
- - `mistral` for inference on Mistral models.
51
+ - `openai` for inference against OpenAI-compatible HTTP endpoints.
52
52
  - `transformers` for inference using the transformers library.
53
- - `vllm` for inference via VLLM.
54
53
 
55
54
  As a short hand, the `all` extra installs all of the above.
56
55
 
56
+ For local vLLM inference, see the sibling [`local-vllm-server/`](./local-vllm-server/README.md) package.
57
+
57
58
  We use `uv` to better resolve dependencies when downloading the extras. You can install uv with:
58
59
  ```bash
59
60
  curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eval-framework"
3
- version = "0.7.2"
3
+ version = "0.8.0"
4
4
  description = "Evaluation Framework"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -64,22 +64,15 @@ transformers = [
64
64
  "accelerate>=1.14.0,<2",
65
65
  ]
66
66
  accelerate = ["accelerate"]
67
- vllm = [
68
- "vllm>=0.22,<0.23",
69
- "torch>=2.5,<3"
70
- ]
71
- mistral = [
72
- "mistral-common>=1.11.6,<2",
73
- "huggingface-hub>=0.36.2,<0.37",
74
- "eval_framework[vllm]",
75
- ]
67
+
68
+
76
69
  # from template-formatting
77
70
  optional = [
78
71
  "transformers>=4.45.2,<5",
79
72
  "jinja2>=3.1.6,<4"
80
73
  ]
81
74
  all = [
82
- "eval_framework[determined,api,openai,transformers,accelerate,vllm,optional,mistral]"
75
+ "eval_framework[determined,api,openai,transformers,accelerate,optional]"
83
76
  ]
84
77
 
85
78
  [project.urls]
@@ -98,7 +91,7 @@ dev = [
98
91
  "types-pyyaml>=6.0.12.20260518,<7",
99
92
  "types-python-dateutil>=2.9.0.20260716,<3",
100
93
  "types-requests>=2.33.0.20260712,<3",
101
- "plotly>=6.8.0,<7",
94
+ "plotly>=6.9.0,<7",
102
95
  "ruff>=0.15.22",
103
96
  "pip-licenses>=5.5.5",
104
97
  ]
@@ -160,7 +153,6 @@ markers = [
160
153
  "cpu_slow: runs for a long time (on CPU)",
161
154
  "slow_download: smoke tests that download large datasets (>15s); excluded from CI, run manually with -m slow_download",
162
155
  "external_api: needs external services for execution",
163
- "vllm: tests that specifically require vLLM functionality",
164
156
  "formatter_hash: formatter consistency tests using hash comparisons",
165
157
  ]
166
158
  filterwarnings = [
@@ -18,11 +18,6 @@ if is_extra_installed(extra="transformers"):
18
18
  Qwen3_0_6B,
19
19
  )
20
20
 
21
- if is_extra_installed("mistral"):
22
- from eval_framework.llm.mistral import MagistralVLLM # noqa F401
23
21
 
24
22
  if is_extra_installed("openai"):
25
23
  from eval_framework.llm.openai import OpenAIModel # noqa F401
26
-
27
- if is_extra_installed("vllm"):
28
- from eval_framework.llm.vllm import VLLMRegistryModel, Qwen3_0_6B_VLLM, Qwen3_0_6B_VLLM_No_Thinking # noqa F401
@@ -13,6 +13,7 @@ except ImportError:
13
13
  from eval_framework.context.local import LocalContext
14
14
  from eval_framework.main import main
15
15
  from eval_framework.tasks.task_loader import load_extra_tasks
16
+ from eval_framework.tasks.utils import close_pools
16
17
  from eval_framework.utils.logging import setup_logging
17
18
 
18
19
  logger = logging.getLogger(__name__)
@@ -392,19 +393,22 @@ def _run_single_task(kwargs: dict) -> None:
392
393
  def run_with_kwargs(kwargs: dict) -> None:
393
394
  task_suite_path = kwargs.pop("task_suite", None)
394
395
 
395
- if task_suite_path is not None:
396
- from eval_framework.suite import TaskSuite, run_suite
397
-
398
- output_dir = kwargs.get("output_dir", "outputs")
399
- log_level = kwargs.get("verbosity", 1)
400
- setup_logging(output_dir, log_level=log_level)
401
-
402
- suite = TaskSuite.load(task_suite_path)
403
- logger.info(f"Loaded task suite '{suite.name}' from {task_suite_path}")
404
- result = run_suite(suite, kwargs)
405
- logger.info(f"Suite '{suite.name}' completed. Aggregates: {result.aggregates}")
406
- else:
407
- _run_single_task(kwargs)
396
+ try:
397
+ if task_suite_path is not None:
398
+ from eval_framework.suite import TaskSuite, run_suite
399
+
400
+ output_dir = kwargs.get("output_dir", "outputs")
401
+ log_level = kwargs.get("verbosity", 1)
402
+ setup_logging(output_dir, log_level=log_level)
403
+
404
+ suite = TaskSuite.load(task_suite_path)
405
+ logger.info(f"Loaded task suite '{suite.name}' from {task_suite_path}")
406
+ result = run_suite(suite, kwargs)
407
+ logger.info(f"Suite '{suite.name}' completed. Aggregates: {result.aggregates}")
408
+ else:
409
+ _run_single_task(kwargs)
410
+ finally:
411
+ close_pools()
408
412
 
409
413
 
410
414
  def run() -> None:
@@ -78,11 +78,14 @@ def get_or_create_pool(
78
78
 
79
79
 
80
80
  def close_pools() -> None:
81
- for pool in _pools.values():
81
+ with _pools_lock:
82
+ pools = list(_pools.values())
83
+ _pools.clear()
84
+ for pool in pools:
82
85
  try:
83
86
  pool.close()
84
87
  except Exception:
85
- pass
88
+ logger.exception("Error closing sandbox container pool")
86
89
 
87
90
 
88
91
  atexit.register(close_pools)
@@ -1,88 +0,0 @@
1
- from functools import partial
2
- from pathlib import Path
3
- from typing import Any, Literal, override
4
-
5
- from vllm import SamplingParams
6
-
7
- from eval_framework.llm.vllm import TokenizedContainer, VLLMModel, VLLMTokenizerAPI
8
- from template_formatting.formatter import BaseFormatter, Message
9
- from template_formatting.mistral_formatter import MagistralFormatter, MistralSerializer
10
-
11
- __all__ = [
12
- "MistralAdapter",
13
- "MistralVLLM",
14
- ]
15
-
16
-
17
- class MistralAdapter(VLLMTokenizerAPI[list[Message]]):
18
- def __init__(self, target_mdl: str) -> None:
19
- self.serializer = MistralSerializer(llm_target=target_mdl)
20
- self.tokenizer = self.serializer.get_tokenizer()
21
-
22
- def encode_formatted_struct(self, struct: list[Message]) -> TokenizedContainer:
23
- mistral_msg_lst = self.serializer.convert_from_aa(msg_lst=struct)
24
- mistral_request = self.serializer.build_mistral_request(mistral_msg_lst=mistral_msg_lst)
25
- mistral_tokenized_obj = self.tokenizer.encode_instruct(mistral_request)
26
- return TokenizedContainer(tokens=mistral_tokenized_obj.tokens, text=mistral_tokenized_obj.text)
27
-
28
- def encode_plain_text(self, text: str) -> TokenizedContainer:
29
- choice_tokens = self.tokenizer.tokenizer.encode(text, False, False)
30
- return TokenizedContainer(tokens=choice_tokens, text=text)
31
-
32
-
33
- class MistralVLLM(VLLMModel):
34
- def __init__(
35
- self,
36
- # Model source (3 options: file path, HuggingFace model name, Wandb artifact name):
37
- checkpoint_path: str | Path | None = None,
38
- model_name: str | None = None,
39
- artifact_name: str | None = None,
40
- # Formatter (2 options):
41
- formatter: BaseFormatter | None = None,
42
- formatter_name: str | None = None,
43
- formatter_kwargs: dict[str, Any] | None = None,
44
- # Explicit name for the `name` property:
45
- checkpoint_name: str | None = None,
46
- # VLLM parameters (not complete):
47
- max_model_len: int | None = None,
48
- tensor_parallel_size: int = 1,
49
- gpu_memory_utilization: float = 0.9,
50
- batch_size: int = 1,
51
- sampling_params: SamplingParams | dict[str, Any] | None = None,
52
- bytes_per_token: float | None = None,
53
- **kwargs: Any,
54
- ) -> None:
55
- model_args = {"tokenizer_mode": "mistral", "config_format": "mistral", "load_format": "mistral"}
56
- super().__init__(
57
- checkpoint_path=checkpoint_path,
58
- model_name=model_name,
59
- artifact_name=artifact_name,
60
- formatter=formatter,
61
- formatter_name=formatter_name,
62
- formatter_kwargs=formatter_kwargs,
63
- checkpoint_name=checkpoint_name,
64
- max_model_len=max_model_len,
65
- tensor_parallel_size=tensor_parallel_size,
66
- gpu_memory_utilization=gpu_memory_utilization,
67
- batch_size=batch_size,
68
- sampling_params=sampling_params,
69
- bytes_per_token=bytes_per_token,
70
- **{**model_args, **kwargs},
71
- )
72
-
73
- @override
74
- @property
75
- def tokenizer(self) -> VLLMTokenizerAPI:
76
- if self._tokenizer is None:
77
- self._tokenizer = MistralAdapter(target_mdl=self.LLM_NAME)
78
- return self._tokenizer
79
-
80
- @property
81
- def formatter_output_mode(self) -> Literal["string", "list"]:
82
- """Determine the correct output mode for the formatter based on tokenizer type."""
83
- return "list"
84
-
85
-
86
- class MagistralVLLM(MistralVLLM):
87
- LLM_NAME = "mistralai/Magistral-Small-2506"
88
- DEFAULT_FORMATTER = partial(MagistralFormatter, "mistralai/Magistral-Small-2506")