devops: make serving benchmarks reproducible - #979
Conversation
Signed-off-by: xiaguan <751080330@qq.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7aedeaa43e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| export HF_DATASETS_OFFLINE=1 | ||
| fi | ||
|
|
||
| DATASET_ARGS=(--dataset-name "$DATASET" --output-len "$OUTPUT_LEN") |
There was a problem hiding this comment.
Use the Rust flags for the vllm-bench fallback
When only the standalone Rust client is installed, or BENCH=vllm-bench is specified, this shared argument array invokes it with the Python vllm bench serve flags --output-len and --input-len. The maintained Rust client’s CLI contract uses --random-input-len and --random-output-len for random datasets (.agents/skills/vllm-bench/SKILL.md:100-106), so argument parsing fails before any requests are sent and the newly advertised fallback is unusable. Construct dataset-length arguments according to the selected client.
Useful? React with 👍 / 👎.
Summary
vllm bench servecommand while retaining the explicitBENCHoverride andvllm-benchfallbackWhy
The existing helper only described random-dataset inputs and assumed a standalone
vllm-benchbinary. That made the Qwen3-4B + DSpark serving A/B difficult to replay with current vLLM installations, ShareGPT, and cached GSM8K, and it left speculative-decoding counters outside the result bundle.Validation
bash -n tools/bench/run_serving_bench.shshellcheck tools/bench/run_serving_bench.shprek run --files tools/bench/run_serving_bench.shvllm bench serve: ShareGPT and offline cached GSM8K, three interleaved A/B repetitions per dataset, 12 detailed JSON results and 12 Prometheus snapshots, zero failed requests