Files
club-3090/scripts
noonghunna 7d81184647 Add spec-sweep.sh: standardized draft-depth n-sweep for spec-decode drafters (#673)
* Add spec-sweep.sh: draft-depth n-sweep for spec-decode drafters

The n-sweep has been hand-rolled repeatedly (Deckard MTP, Tess MTP
2026-07-09, EAGLE3 2026-07-11, gemma n=4-vs-8, DFlash n=5/7/8) — same
shape every time. This standardizes it as the tuning sibling of
concurrency-probe.sh (streams) and power-cap-sweep.sh (watts).

Two engine paths:
- llama.cpp FAST PATH (no reboots): per-request speculative.n_max +
  timings.draft_n/draft_n_accepted/predicted_per_second — full curve
  against one live server in ~2 min. Capability probe REFUSES (exit 3)
  when the server doesn't report draft_n, so an ignored field can't
  fabricate a flat curve.
- vLLM: reboot per arm via switch.sh (SPEC_N_MAX=<n>; SPEC=off for the
  n=0 baseline arm) — no per-request draft-depth knob exists.

Output: curve table + sweet-spot line (flags a net-negative drafter
when n=0 wins) + machine-readable RESULT rows. SWEEP_DRY plans without
booting. Offline guards: scripts/tests/test-spec-sweep.sh.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfF565T9eSLaqGzidyJ1Pm

* spec-sweep: enforce the probe differ-check + llama.cpp reboot fallback

Live validation caught the gap: llama-server b9246 silently IGNORES
per-request speculative.n_max (probe draft_n identical across n) and the
first validation produced exactly the fake flat curve the probe was
designed to prevent — the differ-check was documented but not enforced.

- probe now requires draft_n(n1) != draft_n(n4); ignored field ->
  reboot-per-arm fallback via MTP_DRAFT_N_MAX=<n> switch.sh (llama.cpp
  boots ~15s; slug default config restored after the sweep)
- n=0 baseline guard: a compose with a hardcoded drafter that ignores
  SPEC=off gets marked SPEC-OFF-IGNORED instead of lying
- validated against ground truth: reproduces the hand-rolled 2026-07-09
  Tess MTP curve (n1 55.67/0.74 · n2 55.86/0.58 · n3 48.8/0.47 vs
  55.6/0.75 · 57.9/0.62 · 49.3/0.46) in 3m27s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfF565T9eSLaqGzidyJ1Pm

---------

Co-authored-by: noonghunna <10742901+noonghunna@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 12:54:29 +05:00
..