Hi everyone,
I’ve been working on an open-source project called vLLM Optimizer.
The idea for the project came to me while I was optimizing a model and found myself repeating the same deployment and benchmarking steps over and over again, making only small configuration changes each time.
I also tried auto-tune-vllm, but I found it difficult to fit into my workflow. That made me want to build my own version focused on being simple to configure, easy to understand, and easy to use.
It currently supports:
- Baseline vs. optimized configuration comparison
- Multiple trials, warmups, and retries
- Random and TPE-based search
- Tuning vLLM arguments such as
max_num_seqs,max_num_batched_tokens, prefix caching, attention backends, and more - Multi-GPU / tensor-parallel deployments
- Reproducing individual trials
- Interactive HTML reports
- Using an existing vLLM configuration as the starting point
I’ve tested it on real GPU deployments, including H100 and L40 systems, and many of the features were added after running into problems or unexpected behavior while tuning those systems manually.
I’d especially appreciate feedback from people running vLLM in production or doing performance benchmarking:
- Are there important vLLM parameters or search spaces I’m missing?
- Are there metrics you would want to see in the HTML report?
- Are there workloads where this approach would be particularly useful or problematic?
- Are there better ways I could structure the benchmarking methodology?
The project is still in active development, so any technical feedback, criticism, bug reports, or ideas are very welcome.
GitHub: