feat(helexa-bench): context-length scaling view (#88) #104

Merged
grenade merged 1 commits from feat/88-bench-context-scaling into main 2026-06-27 11:03:36 +00:00
Owner

Part of the Performance observability epic (#83), O4. Validates the long-context property that makes the 80B-A3B frontier model (#84) viable.

The chat:<n> cells already capture prefill & decode tok/s per context (via #85/#86); this pivots them into a per-(target,model) scaling curve and computes decode-flatness — decode tok/s at the largest context ÷ the smallest. ~1.0 confirms the Gated-DeltaNet O(1)-in-sequence-length decode; a sharp drop locates where the model stops scaling for free.

  • store: Store::scaling() pivots the latest-build chat:<n> report cells into ScalingCurve/ScalingPoint, ordered by context, with the flatness ratio (concurrency: and other scenarios excluded).
  • report: render_scaling_markdown (one block per model: prefill/decode tok/s vs ctx + flatness verdict) and render_scaling_json.
  • cli: helexa-bench report --scaling.
  • api: GET /api/scaling for the bench UI.
  • example config documents widening prompt_sizes into a scaling ladder.

No new request shape — reuses the chat-latency measurement points, so a denser curve is just more prompt_sizes entries (operators widen deliberately; large contexts cost more per sample).

Tests: scaling pivot + flatness + scenario exclusion, markdown render. All four validation jobs green. Closes #88.

Part of the Performance observability epic (#83), O4. Validates the long-context property that makes the 80B-A3B frontier model (#84) viable. The `chat:<n>` cells already capture prefill & decode tok/s per context (via #85/#86); this pivots them into a per-(target,model) scaling curve and computes **decode-flatness** — decode tok/s at the largest context ÷ the smallest. ~1.0 confirms the Gated-DeltaNet O(1)-in-sequence-length decode; a sharp drop locates where the model stops scaling for free. - **store**: `Store::scaling()` pivots the latest-build `chat:<n>` report cells into `ScalingCurve`/`ScalingPoint`, ordered by context, with the flatness ratio (concurrency:<n> and other scenarios excluded). - **report**: `render_scaling_markdown` (one block per model: prefill/decode tok/s vs ctx + flatness verdict) and `render_scaling_json`. - **cli**: `helexa-bench report --scaling`. - **api**: `GET /api/scaling` for the bench UI. - example config documents widening `prompt_sizes` into a scaling ladder. No new request shape — reuses the chat-latency measurement points, so a denser curve is just more `prompt_sizes` entries (operators widen deliberately; large contexts cost more per sample). Tests: scaling pivot + flatness + scenario exclusion, markdown render. All four validation jobs green. Closes #88.
grenade added 1 commit 2026-06-27 11:03:27 +00:00
feat(helexa-bench): context-length scaling view (#88)
All checks were successful
CI / Format (push) Successful in 38s
CI / CUDA type-check (push) Successful in 1m49s
CI / Clippy (push) Successful in 2m44s
CI / Test (push) Successful in 6m5s
CI / Build cortex SRPM (push) Has been skipped
CI / Build neuron SRPM (push) Has been skipped
CI / Publish cortex to COPR (push) Has been skipped
CI / Publish neuron to COPR (push) Has been skipped
CI / Bump version in source (push) Has been skipped
CI / Format (pull_request) Successful in 38s
CI / CUDA type-check (pull_request) Successful in 1m36s
CI / Clippy (pull_request) Successful in 3m12s
CI / Test (pull_request) Successful in 6m14s
CI / Build cortex SRPM (pull_request) Has been skipped
CI / Build neuron SRPM (pull_request) Has been skipped
CI / Publish cortex to COPR (pull_request) Has been skipped
CI / Publish neuron to COPR (pull_request) Has been skipped
CI / Bump version in source (pull_request) Has been skipped
d472b6428a
The chat:<n> cells already capture prefill & decode tok/s per context
(via #85/#86); this pivots them into a per-(target,model) scaling curve
and computes decode-flatness — decode tok/s at the largest context ÷ the
smallest. ~1.0 confirms the Gated-DeltaNet O(1)-in-sequence-length
decode; a sharp drop locates where the model stops scaling for free.

- store: Store::scaling() pivots the latest-build chat:<n> report cells
  into ScalingCurve/ScalingPoint, ordered by context, with the flatness
  ratio (concurrency:<n> and other scenarios are excluded).
- report: render_scaling_markdown (one block per model: prefill/decode
  tok/s vs ctx + a flatness verdict) and render_scaling_json.
- cli: `helexa-bench report --scaling` selects the view.
- api: GET /api/scaling for the bench UI.
- example config documents widening prompt_sizes into a scaling ladder.

No new request shape — reuses the chat-latency measurement points, so a
denser curve is just more prompt_sizes entries (operators widen the
ladder deliberately; large contexts cost more per sample).

Tests: scaling pivot + flatness + scenario exclusion, markdown render.

Part of the Performance observability epic (#83), O4. Validates the
long-context property that makes the 80B-A3B frontier model (#84) viable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VrJ4i3pfLRSTM76o3ofnVq
grenade merged commit a488ade675 into main 2026-06-27 11:03:36 +00:00
grenade deleted branch feat/88-bench-context-scaling 2026-06-27 11:03:36 +00:00
Sign in to join this conversation.