Skip to content

feat(evaluation): repurpose /evaluation as recipe-comparison table - #3

Merged
aistackdev merged 1 commit into
masterfrom
feat/evaluation-recipe-comparison
May 26, 2026
Merged

aistackdev merged 1 commit into
masterfrom
feat/evaluation-recipe-comparison

Conversation

@aistackdev

Copy link
Copy Markdown

Summary

Upstream's /evaluation tab is a gsm8k/mmlu accuracy chart — useful for "did this quantization hurt accuracy" regression work that SemiAnalysis runs. Our team isn't doing that. We're doing recipe selection: given a deployment, which runtime knob combination ships the most throughput at acceptable quality?

So /evaluation is now a recipe-comparison table. Each row is (deployment context) × (technique variant). Within a (model × hw × precision × isl/osl × conc) group, the row whose techniques is empty (or spec_method='none') is the baseline; siblings show speedup = variant.tput / baseline.tput and TPOT-ratio. Accuracy is joined from eval_results at the (model, hw, framework, precision) level since lm-eval runs once per config, not per conc.

What you'll see at https://inference-benchmark.eveningcafe.org/evaluation

Column What it shows
HW · Precision · Seq · Conc Deployment context (sortable)
Variant baseline / MTP×4 / MTP×6 / Eagle / etc. (derived from techniques)
Speedup variant.tput / baseline.tput — green if >1.01×, red if <0.99×, "—" if no baseline in the group
tput/GPU, TPOT Raw measurements
Accept Rate median_acceptance_rate from the variant's metrics (spec-dec only)
Accuracy em_strict with pp delta vs baseline; "—" if no eval row joined
Run Link to the GitHub Actions run that produced the row

Default sort: rows grouped together, baseline first, then by speedup descending within group.

Notes

  • Tab label renamed Accuracy Evals → Recipe Compare (tab-nav.tsx, landing-page.tsx, tab-meta.ts).
  • The old EvaluationContext / ChartDisplay / BarChartD3 components are left in place — they're now orphaned (no imports) and tree-shaken. Cleanup follow-up.
  • For our current gemma4 data (no spec_method=none baseline), every row shows Speedup = —. As soon as we ingest a no-MTP baseline run, the speedup column lights up.

Test plan

  • pnpm typecheck clean
  • pnpm test:unit — 8 new unit tests for buildRecipeRows all pass
  • pnpm lint && pnpm fmt clean
  • Post-deploy: open /evaluation, confirm gemma4 rows show up with MTP×4 / MTP×6 variants, accept-rate column populated, accuracy column empty (no eval rows for this run yet).

🤖 Generated with Claude Code

The upstream /evaluation tab is a chart of gsm8k/mmlu accuracy across
configs — useful for "did this quantization hurt accuracy" regression
work that SemiAnalysis runs. Our team isn't doing that. We're doing
recipe selection: given a deployment (model × hw × precision), which
runtime knob combination ships the most throughput at acceptable
quality?

So /evaluation now renders a table with rows = (model × hw × precision
× isl/osl × conc) × variant, where each "variant" is one row's
techniques jsonb. Within a (model, hw, precision, isl/osl, conc) group,
the row with techniques={} (or spec_method='none') is the baseline;
siblings show speedup = variant.tput / baseline.tput. Accuracy is
joined from eval_results at the (model, hw, framework, precision) key
since lm-eval is run once per config, not per conc.

Columns: HW · Precision · Seq · Conc · Variant · Speedup · tput/GPU ·
TPOT · Accept Rate · Accuracy (with pp delta) · Run link.

Tab label renamed "Accuracy Evals" → "Recipe Compare" (tab-nav.tsx,
landing-page.tsx, tab-meta.ts). The old EvaluationContext / chart
components are left in place for now — they're orphaned and
tree-shakeable; cleanup follow-up.

Tests: 8 unit tests for buildRecipeRows covering baseline detection,
speedup math, missing-baseline fallback, group keying, accuracy join,
and acceptance rate read-through. All pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@aistackdev
aistackdev merged commit 4ec4060 into master May 26, 2026
3 of 9 checks passed
@aistackdev
aistackdev deleted the feat/evaluation-recipe-comparison branch May 26, 2026 06:03
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