Repository navigation
vision-suite: an extbench arm records the machine it ran on (H26) - #499
Draft
glennneuber wants to merge 1 commit into
Draft
glennneuber wants to merge 1 commit into
glennneuber wants to merge 1 commit into
Conversation
H26 asks a published result to name its machine, but nothing checked an OCRBench run: extbench recorded `host` (the URL the client called) and the build, never the GPU, so seconds per item from different machines read as comparable. HOST_PROFILE now names the host-profile JSON captured on the serving machine; the summary records its file name, label, GPUs and machine type as `hardware`, and a path that is not a host profile stops the arm before its first request. summarize_extbench names the machine in the footer once a file records it, and --timing warns when arms ran on different machines or one names none. Files without the field render as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
|
Reviewed from the CUDA host: correct as far as it goes, and ready to merge. One note below; it doesn't block. Checked on
Note (doesn't block):
From |
This branch has not been deployed
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.
The ask: make every OCRBench arm name the machine it ran on, so its seconds per item can't be read against another machine's by accident.
extbench.pytakes the H26 host profile asHOST_PROFILEand records the hardware in the arm's summary;summarize_extbench.pyprints it and warns when arms differ.Why
SPEC H26 says a published result names its machine, and its own conformance row says "Nothing checks an OCRBench run" (
spec/vision-harness-reuse.md, the H26 row). An arm's JSON recordshost, which is the URL the client called (usuallyhttp://127.0.0.1:<port>), and the build. It never records the GPU.ocrbench-quantisation-ladder.md, along with the warning "Speed here is not a throughput claim"ext_ocr31b_*_ocrbench.json(2026-09-19) againstocrbench-quantisation-ladder.mdbench-runs/ocrbench/host-profile_h100-sm90-*.json), but only by naming convention: an arm doesn't point to its profile, and the footer can't print itbench-runs/ocrbench/--timingalready refuses to compare arms that sent differentprompt_cache_ram, because that moves seconds per item. A different machine moves them more, and nothing warnssummarize_extbench.py,--timingWe would not currently detect an H100 arm and a Blackwell arm rendered into one
--timingtable.What this covers
extbench.py:HOST_PROFILE=<path>reads a host profile (schemahost-profile/…) and recordssummary.hardware: the profile's file name,label, each GPU'snameandmemory_total_mib, andcloud.machine_type. A path that can't be read as a host profile stops the arm before its first request. Unset,hardwareisnull.summarize_extbench.py: once any rendered file recordshardware, the footer adds· hardware: <label> (<GPUs>, <machine type>), and a file without it shows asnot recorded (pre-H26 run).--timingwarns when the arms ran on different machines or one names none. Files without the field render byte-for-byte as before, so pasted tables (H7) stay valid.test_extbench.py::TestMainLoop: recorded from a profile,nullwhen unset, and a non-profile or missing path stops the arm before any request.test_summarizers.py::TestExtbenchArmsAndSlices: footer naming, unchanged rendering without the field, and the--timingwarning for different machines and for a missing one.spec/vision-harness-reuse.md, andHOST_PROFILEin the run command inocrbench.md.What this does not cover
hardwareabsent and render as before, with the warning only under--timingwhen mixed with a recorded arm. A profile can't be captured after the fact.tools/host_profile.pyon the serving machine (H26: never on the client).bundle_campaign.pydoes: older runs name no machine.How we'll know
The next OCRBench arm on any host carries
summary.hardware, and a--timingrender that mixes machines prints the warning. Checked locally: the CI test set inpreflight-expectations.yamlpasses (test_verdicts,test_bundle_campaign,test_summarizers,test_rescore,test_client,test_extbench,test_prompt_cache_probe), andcheck_no_names.pyfinds no names.Cost
6 files, +156/−5, of which 81 lines are tests. One new optional env var; nothing changes for an arm run without it.
Not now
vision_suite.py's own score records at a profile (the same gap, a different harness).HOST_PROFILEfor a published arm. That waits until no pre-H26 arms are being re-rendered.🤖 Generated with Claude Code