-
Notifications
You must be signed in to change notification settings - Fork 48
tests: Enable a subset of GSM8k upstream vllm tests #846
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
1355484
f5dbfb8
5085185
01f494c
770591f
167d49d
34d6fa2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # GSM8K accuracy gate for granite-4.1-3b on Spyre (fp16, no quantized variant). | ||
| # accuracy_threshold is the measured on-device baseline; num_questions is small to gate cheaply. | ||
| # request_timeout_seconds is a *total* per-request budget (incl. queue-wait), so it must exceed the whole batched run's wall-clock. | ||
| model_name: "ibm-granite/granite-4.1-3b" | ||
| accuracy_threshold: 0.625 | ||
| num_questions: 64 | ||
| num_fewshot: 5 | ||
| max_concurrency: 4 | ||
| server_args: "--max-model-len 4096" | ||
| request_timeout_seconds: 2400 | ||
| startup_max_wait_seconds: 1800 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # GSM8K accuracy gate for Mistral-7B-Instruct-v0.3 on Spyre (fp16, no quantized variant). | ||
| # accuracy_threshold is the measured on-device baseline; num_questions is small to gate cheaply. | ||
| # request_timeout_seconds is a *total* per-request budget (incl. queue-wait), so it must exceed the whole batched run's wall-clock. | ||
| model_name: "mistralai/Mistral-7B-Instruct-v0.3" | ||
| accuracy_threshold: 0.375 | ||
| num_questions: 64 | ||
| num_fewshot: 5 | ||
| max_concurrency: 4 | ||
| server_args: "--max-model-len 4096" | ||
| request_timeout_seconds: 2400 | ||
| startup_max_wait_seconds: 1800 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # GSM8K eval configs runnable on Spyre (fp16, no quantization). | ||
| # Consumed by upstream tests/evals/gsm8k/test_gsm8k_correctness.py; selected via | ||
| # the `config_list` field on that file's entry in upstream_tests.yaml. | ||
| qwen2.5-0.5b-instruct.yaml | ||
| granite-4.1-3b.yaml | ||
| mistral-7b-instruct-v0.3.yaml |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # GSM8K accuracy gate for Qwen2.5-0.5B-Instruct on Spyre (fp16, no quantized variant). | ||
| # accuracy_threshold is the measured on-device baseline; num_questions is small to gate cheaply. | ||
| # request_timeout_seconds is a *total* per-request budget (incl. queue-wait), so it must exceed the whole batched run's wall-clock. | ||
| model_name: "Qwen/Qwen2.5-0.5B-Instruct" | ||
| accuracy_threshold: 0.3125 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. On a single on-device run of |
||
| num_questions: 64 | ||
| num_fewshot: 5 | ||
| max_concurrency: 4 | ||
| server_args: "--max-model-len 4096" | ||
| request_timeout_seconds: 2400 | ||
| startup_max_wait_seconds: 1800 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -215,6 +215,7 @@ def _parse_config(raw_tests: dict) -> UpstreamTestConfig: | |
| rel_path=file_entry["rel_path"], | ||
| allow_list=tuple(allow_list), | ||
| block_list=tuple(block_list), | ||
| config_list=file_entry.get("config_list"), | ||
| ) | ||
| ) | ||
| return UpstreamTestConfig(files=tuple(files)) | ||
|
|
@@ -772,6 +773,15 @@ def pytest_generate_tests(metafunc: pytest.Metafunc) -> None: | |
| if not fc: | ||
| return | ||
|
|
||
| # Tests parametrized by an upstream `config_filename` fixture (e.g. gsm8k evals) | ||
| # aren't reachable via param_overrides, which only rewrites the test's own | ||
| # parametrize markers. Instead, point the upstream conftest's --config-list-file at | ||
| # a Spyre-owned list; its own (later-running) pytest_generate_tests then parametrizes | ||
| # config_filename from our configs. tryfirst here guarantees we set it first. | ||
| if fc.config_list and "config_filename" in metafunc.fixturenames: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This |
||
| list_path = (_YAML_PATH.parent / fc.config_list).resolve() | ||
| metafunc.config.option.config_list_file = str(list_path) | ||
|
|
||
| test_name = metafunc.definition.originalname or metafunc.definition.name | ||
| allow_entry = _find_allow_entry(test_name, fc.allow_list) | ||
| if not allow_entry or not allow_entry.param_overrides: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
QUALITY_SHARDSis pinned at 3 andmodels-spyre.txtlists exactly 3 configs, so today each shard runs one. This suite is the one place where items == shards exactly: if a config is later removed frommodels-spyre.txtwithout lowering this count, a shard collects 0 items and pytest exits 5 (no tests collected), reddening that CI job with nothing pointing at the cause. The other sharded suites have items >> shards so they never hit this. A guard tying the count to the config-list length (ortest_sharding.pyasserting#configs >= QUALITY_SHARDS) would catch the drift.