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.
- {eval_framework-0.7.2 → eval_framework-0.8.0}/PKG-INFO +5 -11
- {eval_framework-0.7.2 → eval_framework-0.8.0}/README.md +3 -2
- {eval_framework-0.7.2 → eval_framework-0.8.0}/pyproject.toml +5 -13
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/models.py +0 -5
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/run.py +17 -13
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/utils.py +5 -2
- eval_framework-0.7.2/src/eval_framework/llm/mistral.py +0 -88
- eval_framework-0.7.2/src/eval_framework/llm/vllm.py +0 -565
- eval_framework-0.7.2/src/eval_framework/llm/vllm_local_server.py +0 -222
- {eval_framework-0.7.2 → eval_framework-0.8.0}/LICENSE +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/base_config.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/determined.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/eval.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/context/local.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/evaluation_generator.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/exceptions.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/drop_process_results.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/README.md +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions_registry.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/instructions_util.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/external/ifeval_impl/utils.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/aleph_alpha.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/base.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/huggingface.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/llm/openai.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/logger.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/main.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/aggregators/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/aggregators/aggregators.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/base.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/accuracy_completion.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/code_assertion.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/code_execution_pass_at_one.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/concordance_index.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/csv_format.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/drop_completion.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/exponential_similarity.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/f1.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/format_checker.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/grid_difference.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/ifeval.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/json_format.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/language_checker.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/length_control.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/math_minerva_completion.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/math_reasoning_completion.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/minerva_math_utils.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/multipl_e_assertion.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/placeholder_checker.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/repetition.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_1.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_2.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_geometric_mean.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/rouge_l.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/completion/text_counter.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/efficiency/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/efficiency/bytes_per_sequence_position.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/base.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/chatbot_style_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/coherence_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/comparison_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/conciseness_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/contains_names_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/format_correctness_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/instruction_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/language.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/long_context_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/models.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/refusal_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/sql_quality_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/graders/summary_world_knowledge_grader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_chatbot_style.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_coherence.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_completion_accuracy.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_conciseness.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_contains_names.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_format_correctness.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_instruction.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_mtbench_pair.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_mtbench_single.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_refusal.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_sql.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/llm_judge_world_knowledge.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/llm/utils.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/accuracy_loglikelihood.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/base.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/bits_per_byte.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/confidence_weighted_accuracy.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/dcs.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/probability_mass.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/metrics/loglikelihood/ternary.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/py.typed +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/response_generator.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/base.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/hf_uploader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/result_processor.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/result_processors/wandb_uploader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/run_direct.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/shared/types.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/suite.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/Dockerfile_codebench +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/base.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/arc.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/arc_de.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/bigcodebench.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/copa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/csqa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/drop.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/global_mmlu.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/goldenswag.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/gpqa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/gsm8k.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/hellaswag.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/humaneval.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/ifeval.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/math_reasoning.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mbpp.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/medqa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mmlu.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/mmlu_pro.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/multipl_e.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/naturalqs_open.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/piqa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/sciq.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/social_iqa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/squad.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/triviaqa.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/benchmarks/winogrande.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/dataset_revisions.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/eval_config.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/frozen-hf-dataset-revisions.json +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/hf-dataset-revisions.json +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/perturbation.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/registry.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/task_loader.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/task_names.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/tasks/task_style.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/constants.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/file_ops.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/generate_task_docs.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/helpers.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/logging.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/packaging.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/eval_framework/utils/tqdm_handler.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/README.md +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/__init__.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/formatter.py +0 -0
- {eval_framework-0.7.2 → eval_framework-0.8.0}/src/template_formatting/mistral_formatter.py +0 -0
- {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.
|
|
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,
|
|
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
|
-
- `
|
|
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
|
-
- `
|
|
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.
|
|
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
|
-
|
|
68
|
-
|
|
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,
|
|
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.
|
|
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
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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")
|