87 Commits

Author SHA1 Message Date
sora
d64b236540 run_one: exactly 1 attempt (adapter handles all retries internally)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 07:07:22 +00:00
sora
55b2beab54 Retry chain sanity: adapter 3 retries for long budgets / 6 for normal (was 6 flat); run_one 3 retries (was 6) with shorter backoff; worst case now 12 attempts ~5min (was 42+ attempts ~20min); progress bar shows live retry count; heartbeat recreated on every reset_samples
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 07:06:11 +00:00
sora
d00f330430 Fix frozen progress clock: heartbeat recreated on every reset_samples (previous one died during pause/resume cycles); auto-stream path appends /no_think when gateway drops chat_template_kwargs on streaming
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 06:39:55 +00:00
sora
8bac3483b6 Fixes: theme markup closing tags ([bold green]...[/bold green]); evaluate() runs off the event loop (sympy equivalence on hard math froze the progress clock for the whole bench)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 04:36:51 +00:00
ruoxi_sun
09b2add673 fingerprint: integrate fp_fusion model fingerprint benchmark
New evalharness/fingerprint/ package (from evalstone fp_fusion v1.1,
2026-09-07 pruning final): probe battery -> concurrent collection ->
five scoring views (verify/attribution/variant/adversarial/robustness),
bundled family aliases + 27 reference fingerprints (12 fp_fusion schema).

- CLI: 'evalharness fingerprint run ...' (REMAINDER passthrough, single
  source of arg definitions) + 'fingerprint list' for bundled references
- imports rewritten package-relative; direct 'python3 run_fp_fusion.py'
  execution kept working via package bootstrap
- offline analysis/collection scripts made path-independent (previously
  pinned to a /opt/evalscope path absent on this host)
- shell scripts: hardcoded API key -> FP_API_KEY/OPENAI_API_KEY env vars
- --reference accepts short names resolved against bundled references/
- pyproject: +httpx dependency, package-data references/*.json
- tests/test_fingerprint.py: 10 offline tests (battery definitions,
  assembly counts, normalization, signals, verdict ladder, CLI wiring)
- README: fingerprint section + architecture entry

Verified on H20-1: tests 10/10, installed CLI OK, full-protocol run vs
vectron GLM-5.3 reproduces baseline (score 0.9451, s_idn 0.846).
2026-09-11 03:52:21 +00:00
sora
7473170784 Auto-stream long generations (max_tokens>8192) and aggregate to the non-stream response shape: gateways hang on large buffered NON-streaming requests (aime25's 32k budget stalled forever); streaming starts emitting immediately so a stuck endpoint surfaces in ~60s instead of the full adaptive read timeout; lazy httpx import fix
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 03:41:24 +00:00
sora
5af8e2a7fd Pluginize the run shell: @register_progress (rich/plain), @register_theme, @register_hook (on_benchmark_failed/done), @register_prober; CLI gains --progress-plugin/--theme
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 03:26:19 +00:00
sora
98007cccd7 Color scheme: green for facts/phrases/scores, blue for paths
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 03:18:52 +00:00
sora
0ca8aedefe Scoring line: colon restored, full sentence (score over N samples), score keeps solid green with yellow phrase tail; path coloring covers 'to /abs' endings
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 03:16:08 +00:00
sora
d7f06395a0 Highlight whole noun phrases (1319 samples from cache / 4/4 predictions / 0 samples left to run), not bare numbers; score rule runs first so scores keep solid green
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 03:09:15 +00:00
sora
a8c04311c0 Semantic numbers in narration: bold yellow (bold alone was hard to see)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 03:02:03 +00:00
sora
a1fa75bf89 All narration lines as full sentences (Checkpoint: 4/4 predictions already generated, 0 samples left to run / Generation skipped: ... / Scoring complete: acc 100.0% / Writing results to ...)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 02:59:22 +00:00
sora
20e9b87248 Probe success line as a full sentence: model name, endpoint, response time, pool size, and what happens next
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 02:49:06 +00:00
sora
470496b7ef Probe line carries model/endpoint/instances/probe-latency (ANSI-colored on tty); semantic numbers (counts, checkpoint fractions) bold in narration lines
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 02:43:10 +00:00
sora
b8ff031be7 Scores in narration lines get bold green (the key fact, previously lost in all-white lines); paths stay cyan
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-11 02:35:49 +00:00
sora
9eb1f7e58b Fix KeyError 'cur' regression (new-task branch missed the field); live bars hard-disable unless the real stream is a tty (FORCE_COLOR env made rich claim terminal-ness on pipes -> refresh thread stalled the whole run)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 12:02:27 +00:00
sora
c6046dd02e Progress bar keeps its own elapsed/ETA clock (rich's columns freeze on cross-benchmark task reuse); in-flight shows current sample's elapsed; adaptive read timeout scales with the generation budget (32k-token CoTs were timing out at the fixed 300s and retrying forever -- the 'hang')
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:36:19 +00:00
sora
e7792a559c Narration lines get stage icons (⬇ download / 📦 ready / ✳ few-shot / ◷ checkpoint / 🤖 generating / ⏭ skipped / ★ scoring / 📝 writing / 🔗 endpoint) and cyan-highlighted paths
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:29:07 +00:00
sora
3a045e0569 Narration density: preparing+checkpoint merged into one line (N samples · checkpoint k/N restored, m to generate); zero-pending runs say 'generation skipped' instead of the misleading generating-0/complete pair; scoring complete carries the primary metric
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:26:23 +00:00
sora
3911019315 writing-results line shows the destination directory
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:22:04 +00:00
sora
5b595f3a10 Narration lines all plain white (color scheme toggle kept in _phase_color for quick restore)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:19:58 +00:00
sora
5734f7fbe6 Uniform [i/N] prefix on every narration line (status_callback restores the tag; checkpoint-restored detail routes through status_callback; probe line remains pre-callback)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:15:04 +00:00
sora
392cc8daca Persistent benchmark counter [i/N] on the single progress bar; phase lines all route through the live channel for strict ordering
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:13:34 +00:00
sora
9818515247 Narration colors by stage semantics: start/in-progress events yellow, completion events green (dataset ready / generation complete / scoring complete / checkpoint restored)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:09:38 +00:00
sora
89f950d8a0 Narration lines uniformly uncolored (phase prints drop cyan, rich number auto-highlight off); color reserved for results/errors only
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:06:41 +00:00
sora
8632b2735b Drop the overall benches bar from the CLI (per-benchmark result lines already track progress; reporter keeps the capability for API users)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:04:00 +00:00
sora
b7be2a8df3 Progress bars self-describing: overall bar carries the current benchmark (benches · 1/6 humaneval), sample bar carries the stage tag (humaneval · generating/scoring/writing)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 11:02:41 +00:00
sora
dd7e1933ff HF endpoint auto-fallback: when huggingface.co is unreachable, probe mirrors (hf-mirror.com) and switch automatically with a one-line notice; error only if all fail
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:57:16 +00:00
sora
8ea83fea4f Pause the rich live display while datasets materialize so hub tqdm progress (download/generating splits) is visible instead of being erased; reporter gains pause()/resume()
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:54:04 +00:00
sora
c728db5f35 HF hub downloads: reachability probe fails fast with the mirror fix hint (was minutes of silent retries looking like a hang); status lines around hub downloads (start + records + elapsed)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:51:09 +00:00
sora
afe2fb8d28 Progress coverage for minute-scale work: overall bench bar (which benchmark of N, covers loading/scoring), byte-level download bars for dataset fetches (ModelScope/HF raw, tty-only), one shared reporter across benchmarks (caller-owned lifecycle)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:47:21 +00:00
sora
c54207a180 Error panel centered; comma-joined benchmark names get an immediate fix hint
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:43:41 +00:00
sora
a3269252fd Closing line simplified to one line (status + result path); tree removed
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:42:04 +00:00
sora
7f3c42d39c Drop summary.md from outputs; reports switch to report.jsonl (header line + one sample per line, round-trip verified)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:40:00 +00:00
sora
f9cb34fc17 Output dir restructure (evalscope/inspect-style): top-level summary.{xlsx,md,csv} + one directory per benchmark (report.json + detail.md); drops the opaque viz/ and reports/ layers
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:31:38 +00:00
sora
bd35b5b724 Auto-export consolidated excel workbook (results.xlsx: Summary/Perf/Categories/Samples) on every --out-dir run; per-bench artifact .md instead of .txt; xlsxwriter joins core deps
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:29:13 +00:00
sora
8cd45e4d16 Single-bench runs use the unified Run Summary table (panel behind --verbose); short model names in panel titles; plain-text paths in closing block (OSC8 links unreliable across terminals)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:25:56 +00:00
sora
1ef230f4c1 Run Plan Samples row: show the actual sampling config instead of the confusing placeholder
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:23:49 +00:00
sora
e9c0b5be77 Fail-fast endpoint probe (English, full curl hint, red panel on failure); slim run narration (drop duplicate generating/materializing lines); probe success line
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:21:27 +00:00
sora
3a1bfb9fde Simplify closing block to one clean status+directory tree; drop lat/trunc columns from summary
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:08:21 +00:00
sora
ed36fda365 Auto-save results by default (evalharness-results/<stamp>-<model>/); final notice: run finished + saved location with clickable links
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:05:29 +00:00
sora
c1896e0a63 Center run plan, result panel, and Run Summary table; add lat p50/p90 + truncation columns
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 10:03:19 +00:00
sora
b4d39c560e Run Summary: tok in/out columns with per-direction throughput (in/s, out/s), totals; clickable file:// links in artifacts notice; drop note column
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 09:59:02 +00:00
sora
82d9d03b88 Run Summary: tokens/throughput/note columns + totals row; final artifacts notice (where results were saved, or how to save)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 09:49:36 +00:00
sora
075e8728cb Score bars: rich-style half-cell glyphs (━━━╸╌╌) replacing block chars
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 09:30:25 +00:00
sora
5c3d622f41 Rich result panel: metrics+bar with score colors, run stats (wall/model-time/throughput/tokens in-out/tok-s), top+bottom group highlights, perf row
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 09:20:44 +00:00
sora
b6c473ac26 Output polish: 1-based phase indices everywhere, drop [1/1] prefix on single-bench runs, slim progress bar (drop Waiting/Last columns)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 09:16:33 +00:00
sora
2dfb60cdf2 Few-shot split loading goes through cached materialization
Was: raw load_raw_records() hit the hub on EVERY run -- offline machines
stalled in 5x HF retries then silently degraded to 0-shot (changing the
benchmark's default contract, e.g. gsm8k 4-shot). Now the few-shot split
is a proper Dataset entry: first use downloads+cache, every later run is
a pure cache hit (verified: second run with HF_HUB_OFFLINE=1 loads
4-shot from cache, zero network lines, acc unchanged).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 07:47:48 +00:00
sora
9991c15816 README rewritten in evalscope style (numbered flow, code-first, 289->190 lines); config entry points: --hf-endpoint flag, ckpt follows cache root, EVALHARNESS_DOCKER_MIRRORS override
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 07:27:19 +00:00
sora
5bb4b75b07 Rename --judge to --judge-model (alias kept) for symmetry with --model
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-10 06:52:31 +00:00