Repository navigation
LLM inference: live concurrency streams and sweep; tool-call eval with tool-eval-bench - #2
Merged
Merged
Conversation
…h tool-eval-bench - LLM inference streams every request in flight live: one card per stream with its text, state, TTFT, tok/s and tokens; aggregate output, a dot per stream and a level rail. Optional "Sweep concurrency" runs 1, 2, 4 … N streams with results per level, then shows a sweep panel (output, per-request decode, TTFT p50/p95, scaling efficiency), a per-request stream timeline and each stream's final output. Every level sends at least one request per stream; baselines key on the requests actually sent, so older runs with fewer requests than streams aren't compared. SIGTERM now ends the payload in milliseconds instead of a SIGKILL after 5 s. - New benchmark "Tool-call eval": tool-eval-bench 2.8.0 (SeraphimSerapis, MIT; PyPI, hash-pinned) runs in-process in a payload, so scores and fingerprints match its CLI. A tool-calling preflight stops runs against servers without tool parsing; scores always carry their completion rate. Live scenario board, summary with safety gate and categories, scenario table with criteria and traces, and the upstream JSON as a download. - NodeBenchState gains live (replaced) and detail (merged) data with size and depth guards; persisted with the run, left out of run lists. The console's per-browser queue gets a 32 MiB byte budget. The agent keeps reading a payload's output after terminating it, so final snapshots survive a cancel. - Demo simulates both features and seeds a finished sweep and evaluation; README, PLAN, DISCOVERY and REVIEW updated with four new screenshots; e2e coverage for both. Neither feature has run against a real model endpoint yet: fake servers and the demo only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Concurrency streams (LLM inference). While a run is going, every request in flight is a live card: its text types out with the request's state, TTFT, tok/s and token progress. Above the cards: aggregate output with a trend line, a dot per stream and a level rail. A new Sweep concurrency option runs 1, 2, 4 … N streams in turn. After the run: per-level charts and a table (output tok/s, per-request decode, TTFT p50/p95, scaling efficiency), a waiting-vs-decoding timeline for every request, and each stream's final output.
Tool-call eval (new benchmark). Runs tool-eval-bench 2.8.0 in-process inside a payload, so scores, fingerprints and per-scenario verdicts match its CLI. A tool-calling preflight stops runs against servers without tool parsing (otherwise vLLM without
--enable-auto-tool-choicestill scores "★★★★ Good" with 93 of 97 scenarios silently excluded), and scores always carry their completion rate. Live scenario board; afterwards the score and rating, safety gate, categories and capabilities, a searchable scenario list with upstream's pass/fail criteria and traces, and the upstream result JSON as a download.Plumbing.
NodeBenchState.live(replaced) and.detail(merged), with size and nesting guards; persisted with the run, left out of run lists.Behaviour changes
sweepparam is left out of the key while off.tool-eval-bench==2.8.0plus rich, pygments, markdown-it-py and mdurl, all hash-pinned from PyPI. Existing pins are unchanged.Test plan
pytest -q(333 tests).test_builtin_io_random_workers_do_not_share_a_gilfailed once under parallel load; it passes alone and also failed once before this change.<think>in answers, unsafe TC-34.🤖 Generated with Claude Code