Tracking issue for the first real evaluation sweep over the expanded benchmark. I will post results here as each run lands.
Where the benchmark stands
The candidate set is 117 semantic instances over 49 protein groups, 247 rendered variants, at PROMPT_VERSION = v2. Recent changes worth knowing about before reading any number below:
- 69 of 117 instances (59%) sit on post-2023 structures drawn from the FoldBench low-homology target lists. The other half is the classical pool (crambin, BPTI, lysozyme, calmodulin …), which is in every training corpus. Release date is recorded per instance, so scores can be split by it.
- Seven automatic families now carry a context-only control —
P01, P02, S03, S04, S05, S08, S09 — plus the six mechanistic episodes. Same question, same gold answer, no coordinates. See below for why this changes how the scores should be read.
- Gold answers are not in the repository.
build regenerates them byte-identically and validate checks them against committed hashes. See docs/contamination.md.
What is being run
| model |
provider |
status |
| DeepSeek V4 Flash 0731 |
Together (batch) |
queued |
| further Together models |
Together (batch) |
queued |
| Marin 32B (Stanford) |
Modal |
queued |
Together's Batch API is roughly half the price of synchronous calls, so every Together run goes through it.
Two things that will be reported alongside every score
Truncation, separately from wrongness. These score identically — zero — and conflating them turns a benchmark of reasoning models into a benchmark of output budgets. In the earlier smoke run, DeepSeek V4 Flash moved 0.475 to 0.638 to 0.710 purely by raising the output budget from 8k to 32k to 64k tokens. Nothing about the model changed. Every table here reports the truncation count.
The context-only floor. For a mechanistic episode the prompt still describes the experiment, so a model that recognises the system can answer from the literature, and the gain over context-only separates structure use from recall. For the automatic families the sanitised question names nothing — no entry ID, no organism, no ligand code — so what the control measures is the guessing floor, and that floor is neither uniform nor small:
| family |
answer space |
why it matters |
S03 |
buried / exposed |
a coin flip before any prior |
S04 |
helix / strand / coil |
three-way, coil is the plurality class |
S05 |
three fold classes |
three-way |
S09 |
g+ / t / g- |
three-way, g- is commonest |
P01 |
chain identifiers |
answering A is right much of the time |
P02, S08 |
integer / residue label |
unconstrained, should sit near zero |
A model scoring 0.55 on S03 has demonstrated nothing at all. Reports print this as What the coordinates are worth.
Response cache
All completions now go into a content-addressed cache keyed on model, sampling parameters, output budget and the exact prompt text — deliberately not on the render or instance identifier, both of which move when the dataset is rebuilt. Adding a question costs only the calls for that question; removing one costs nothing. Each entry keeps the provider's full response body, so reasoning traces survive for inspection rather than being reduced to the answer text at call time.
Caveats that apply to everything below
- The candidate set is proposed, not curator-accepted. Numbers may move once curation lands.
S02 realises 2 instances against a target of 4 — phosphorylation is rare in the pool and absent from all 49 FoldBench entries.
Tracking issue for the first real evaluation sweep over the expanded benchmark. I will post results here as each run lands.
Where the benchmark stands
The candidate set is 117 semantic instances over 49 protein groups, 247 rendered variants, at
PROMPT_VERSION = v2. Recent changes worth knowing about before reading any number below:P01,P02,S03,S04,S05,S08,S09— plus the six mechanistic episodes. Same question, same gold answer, no coordinates. See below for why this changes how the scores should be read.buildregenerates them byte-identically andvalidatechecks them against committed hashes. See docs/contamination.md.What is being run
Together's Batch API is roughly half the price of synchronous calls, so every Together run goes through it.
Two things that will be reported alongside every score
Truncation, separately from wrongness. These score identically — zero — and conflating them turns a benchmark of reasoning models into a benchmark of output budgets. In the earlier smoke run, DeepSeek V4 Flash moved 0.475 to 0.638 to 0.710 purely by raising the output budget from 8k to 32k to 64k tokens. Nothing about the model changed. Every table here reports the truncation count.
The context-only floor. For a mechanistic episode the prompt still describes the experiment, so a model that recognises the system can answer from the literature, and the gain over context-only separates structure use from recall. For the automatic families the sanitised question names nothing — no entry ID, no organism, no ligand code — so what the control measures is the guessing floor, and that floor is neither uniform nor small:
S03S04coilis the plurality classS05S09g-is commonestP01Ais right much of the timeP02,S08A model scoring 0.55 on
S03has demonstrated nothing at all. Reports print this as What the coordinates are worth.Response cache
All completions now go into a content-addressed cache keyed on model, sampling parameters, output budget and the exact prompt text — deliberately not on the render or instance identifier, both of which move when the dataset is rebuilt. Adding a question costs only the calls for that question; removing one costs nothing. Each entry keeps the provider's full response body, so reasoning traces survive for inspection rather than being reduced to the answer text at call time.
Caveats that apply to everything below
S02realises 2 instances against a target of 4 — phosphorylation is rare in the pool and absent from all 49 FoldBench entries.