Skip to content

feat(bench): add --compare-static fixed-depth baselines to mtp-adaptive - #276

Open
rinaldofesta wants to merge 1 commit into
youssofal:mainfrom
rinaldofesta:feat/mtp-adaptive-compare-static
Open

feat(bench): add --compare-static fixed-depth baselines to mtp-adaptive#276
rinaldofesta wants to merge 1 commit into
youssofal:mainfrom
rinaldofesta:feat/mtp-adaptive-compare-static

Conversation

@rinaldofesta

Copy link
Copy Markdown

What is the current behavior?

mtp-adaptive can compare an adaptive run against AR (--compare-ar), but not against fixed depths on the same suite. Answering "does the adaptive policy beat the best static depth?" requires separate invocations with --min-depth/--start-depth/--max-depth pinned to the same value and a hand-merge of the outputs. That workaround is what produced the numbers in #271.

What is the new behavior?

  • --compare-static 2,3 runs the same prompt suite at each listed fixed depth after the adaptive pass, reusing the existing generation path (AdaptiveDepthPolicy with min == start == max, fresh policy per case, same seeds, sampler and verify settings).
  • Results gain static_rows (per-depth per-prompt rows: tok_s, acceptance_by_depth, drafted/accepted) and static_summaries (per-depth mean_tok_s and draft totals) next to the existing ar_rows.
  • At temperature <= 0 each static row records exact_match_vs_adaptive, mirroring the existing exact_match semantics vs AR.
  • Default (): output is byte-identical unless the flag is passed.

Validation

  • python -m py_compile on both files.
  • Live run on an M5 Max 128 GB against Qwen3.8-27B-MTPLX-Optimized-Quality with --policy expected_value --max-depth 3 --limit 2 --compare-static 2,3: compare_static: [2, 3] recorded, static_summaries populated (D2 21.98 tok/s, D3 22.22, adaptive 21.02 on the 2-prompt subset), exact_match_vs_adaptive: null at temp 0.6 as intended.
  • Not run: full benchmark suites, non-default verify strategies/cores.

Motivated by the discussion in #271: a same-suite static baseline makes the adaptive bench self-contained.

Implemented with the help of a coding agent (Claude Code) and reviewed locally by the author.

Runs the same prompt suite at listed fixed depths after the adaptive pass
(AdaptiveDepthPolicy with min == start == max), emitting static_rows and
static_summaries next to ar_rows, with exact_match_vs_adaptive at greedy.
Output unchanged unless the flag is passed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@youssofal

Copy link
Copy Markdown
Owner

Useful knob, fixed depth baselines belong in the harness. Reviewing.

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.

2 participants