fix(benchmarks): resolve a tag to Ollama's own spelling, and mark a model whose every run failed - #3078
Merged
Conversation
…odel whose every run failed
Two defects that combined into silent data loss. Three models pulled perfectly,
failed all six run attempts, were written MODEL_DONE, and had their weights
deleted -- leaving nothing in the results directory to say they had not been
measured.
## 1. Ollama's stored tag case is not the case you asked for
It rewrites SOME quant-shaped tags and not others. Measured on tags this repo
created itself, every one written lowercase:
gemma4-26b-a4b-selfquant:q3_k_m <- kept as written
gemma4-26b-a4b-selfquant:Q4_K_M <- uppercased by Ollama
gemma4-26b-a4b-selfquant:q5_k_m <- kept as written
sweep_extra.sh's presence check is `grep -qixF`, case-insensitive, so a folded
tag passes it. record_baseline.py then resolves the model by EXACT string match
against /api/tags and exits "model tag is not installed". Every run fails for a
model that is sitting right there.
It hit exactly the rows that matter most: Ornith-35B Q3_K_M and
gemma-4-26B-A4B Q3_K_M/Q5_K_M -- the published twins of the self-quantized
ladder, i.e. the controls the whole #2245 comparison rests on. gemma Q4_K_M
succeeded, which is what made it look like a per-model quirk rather than a
systematic one.
Fixed in the driver, not in record_baseline.py: that file is on the pinned
a99e765 harness, and moving the pin to fix a name lookup would split the scoring
vintage for no benefit. The driver now hands the scorer the name Ollama actually
holds. Verified live -- the same model that failed three times now scores 62.
## 2. A model that produced nothing left no marker
Total failure wrote a GIVEUP line to failures.txt and MODEL_DONE to the log, and
nothing at all next to the results. Anything reading the results directory could
not tell it from a model that was never in the roster. Same silent-hole class as
the false EXTRA_COMPLETE in #3031, and it is why defect 1 went unnoticed until
the phase-3 chain refused to advance.
Now writes UNMEASURED with the reason, so the state is machine-readable.
## The guard held
chain_phase3.sh's completion check -- every roster entry has both tier files OR
an explicit marker -- blocked on "roster incomplete (46+3/52)" and would not
start the ladder scoring. Without it the ladder and then the 96-model cold run
would both have proceeded with three of the most decision-relevant rows missing
and nothing announcing it.
Refs #1947, #2245, #3031, #2738
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
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.
Two defects that combined into silent data loss. Three models pulled
perfectly, failed all six run attempts, were written
MODEL_DONE, and had theirweights deleted — leaving nothing in the results directory to say they had not
been measured.
1. Ollama's stored tag case is not the case you asked for
It rewrites some quant-shaped tags and not others. Measured on tags this repo
created itself, every one written lowercase:
sweep_extra.sh's presence check isgrep -qixF— case-insensitive, so afolded tag passes.
record_baseline.pythen resolves the model by exactstring match against
/api/tagsand exitsmodel tag is not installed. Everyrun fails for a model that is sitting right there.
It hit exactly the rows that matter most: Ornith-35B
Q3_K_Mandgemma-4-26B-A4B
Q3_K_M/Q5_K_M— the published twins of the self-quantizedladder, i.e. the controls the entire #2245 comparison rests on. gemma
Q4_K_Msucceeded, which is what made it look like a per-model quirk instead of a
systematic one.
Fixed in the driver, not in
record_baseline.py— that file is on the pinneda99e765harness, and moving the pin to fix a name lookup would split thescoring vintage for no benefit. The driver now hands the scorer the name Ollama
actually holds.
Verified live: the same model that failed three times now scores 62.
2. A model that produced nothing left no marker
Total failure wrote a
GIVEUPline tofailures.txtandMODEL_DONEto thelog, and nothing next to the results. Anything reading the results directory
could not distinguish it from a model that was never in the roster. Same
silent-hole class as the false
EXTRA_COMPLETEin #3031 — and it is why defect 1went unnoticed until the phase-3 chain refused to advance.
Now writes
UNMEASUREDwith the reason, so the state is machine-readable.The guard held, and that is the point
chain_phase3.sh's completion check — every roster entry has both tier filesor an explicit marker — blocked with:
Without it, the ladder scoring and then the 96-model cold run would both have
proceeded with three of the most decision-relevant rows missing, and nothing
announcing it. The whole reason that guard exists is that
EXTRA_COMPLETEhaslied three times; this is the fourth shape it would have taken.
Refs #1947, #2245, #3031, #2738