Skip to content

Feat/bench llama server and no preflight#117

Merged
alez007 merged 4 commits into
mainfrom
feat/bench-llama-server-and-no-preflight
Jul 7, 2026
Merged

Feat/bench llama server and no preflight#117
alez007 merged 4 commits into
mainfrom
feat/bench-llama-server-and-no-preflight

Conversation

@alez007

@alez007 alez007 commented Jul 7, 2026

Copy link
Copy Markdown
Owner

No description provided.

alez007 added 3 commits July 6, 2026 08:34
…r A/B

bench/run.sh now takes --loader (vllm|llama_server) and --device (gpu|cpu)
to A/B any wrapped stack against its vanilla baseline, not just vLLM-on-GPU;
shared shell helpers moved into bench/lib.sh and a rawllama_entrypoint.py
mirrors llama_server_infer.py's launch for the llama.cpp baseline phase.

Preflight hardware auto-sizing can now be disabled via --no-preflight /
MSHIP_PREFLIGHT=false (passed through to replicas alongside MSHIP_METRICS),
so bench can run modelship on loader defaults + explicit config only,
removing the prior "not byte-identical" caveat against the raw baseline.
The HA add-on no longer bundles the Wyoming bridge (moved to a vanilla
modelship server setup), so the doc's setup instructions are stale.
Several sources of unfairness were biasing the modelship-vs-raw
comparison: GPU JIT-compile toolchain gaps in the image, unwarmed/
uneven page cache between phases, llama-server inheriting every GPU
on a multi-GPU host instead of just its reservation, connection resets
under concurrency on the llama_server CPU baseline, and GGUF configs
having no HF tokenizer id for the bench client. Add launch-parity and
result-parity gates that fail the run before summarizing if the two
arms didn't actually run identical engine args or dropped requests.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a --no-preflight option (MSHIP_PREFLIGHT=false) to disable hardware auto-sizing during benchmarking, updates the Dockerfile with dependencies for JIT-compiling kernels on newer GPU architectures, and refactors the benchmarking harness to support both vllm and llama_server loaders across CPU and GPU devices. Review feedback recommends expanding the model cache pre-warming helper to include .safetensors and other formats to ensure fair A/B comparisons on the vllm loader, and passing the /v1/models JSON response via standard input to avoid command-line argument length limits.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread bench/lib.sh Outdated
Comment thread bench/lib.sh
The llama_server A/B occasionally saw modelship "truncate" a request: with
--ignore-eos the model can babble a malformed <tool_call> past EOS that
llama-server's own grammar parser rejects mid-stream, which modelship
faithfully relays as an in-band SSE error. This is engine behaviour present in
both arms; under sampling it landed on one arm by luck.

- Pin --temperature 0 in the vllm-bench load client so both arms decode an
  identical deterministic token stream — the A/B is reproducible and any shared
  engine-level in-band error appears symmetrically instead of randomly.
- Rewrite assert_result_parity to compare drop/truncation counts RELATIVE
  between arms: modelship dropping more hard-fails; the baseline dropping more is
  a FINDING (run passes); equal is parity. The old absolute per-arm gate could
  mis-attribute an upstream engine artifact to modelship's wrapping.
- Document a llama_server / GPU results table in bench/README.md mirroring the
  vllm one, and drop the peak-host-RAM row from both tables.
- Update the config NOTE comments to match the relative gate.
@alez007 alez007 merged commit eceb457 into main Jul 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant