We tuned vLLM by hand for 64% more throughput. An agent should have done it.
In our last post we fine-tuned a 235B model on four GPUs, then never shipped it, because a newer open model was accurate enough out of the box. So this post is about the next step: serving that model in production. We thought this part was easy. Start vLLM, point traffic at it, done. It wasn't. Fine-tuning is a cost you pay once; serving is a cost you pay every week, and getting it right had its own set of problems. This is what we hit, what we learned, and how we ended up handing the work to an agent.
The task is the same kind as before: read a long, structured document from a customer, find the relevant entities, label each one. Prompts average about 6,500 tokens, and the model reasons before it answers, so outputs are long too. We had one machine with 8× H100 80 GB and served everything with vLLM.
We ended up on Qwen3.6 27B in FP8. It takes about 15× less memory than the 397B we started with[^1] and is just as accurate on this task. Changing how we deployed it got us 64% more output tokens per second on the same eight GPUs, and for the tasks we moved, running them on these GPUs costs 44% less per week than the API bill they replaced.
Most of our time went into finding that setup, one run at a time: change a setting, restart vLLM, run the load test, read the metrics, keep it or revert it. Some of that time was needed. Most was not. Near the end we noticed we had been running by hand the exact loop that Karpathy's autoresearch hands to an agent. The rest of this post is what the hand runs taught us, and why we'd still do the first few by hand.





