docs(benchmarks): read WhiteRabbitNeo transcripts against its own base (#1804 candidate 2) - #3306
Conversation
#1804 candidate 2) Re-read the four stored Tier A transcripts for WhiteRabbitNeo-2.5-Qwen-2.5-Coder-7B and its base Qwen2.5-Coder-7B, the current Rev.Deck model, and compare the per-case answers as transcripts rather than by keyword group. The known per-case diff reproduces exactly: 7 of 14 cases differ, the fine-tune winning 6 and the base winning tlv_parser. The read does not support a unique contribution claim. The base is cut off on all 14 of its answers under the recorded 512 output-token cap while the fine-tune completes 5 of 14, and the wins cluster where the fine-tune simply got further into the same explanation; one of the fine-tune's larger additions also contradicts itself. Recorded as an honest negative result, with no total-score difference claimed and no promotion proposed. Refs #1804
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
…g token cap The 512-token cap truncated the base model on 14/14 answers, so the fine-tune's per-case wins sat in exactly the cases where the base ran out of room. Re-ran both models through #159's own harness with its existing --output-tokens override at 2048, nothing hand-rolled: base 56/69 -> 69/83, cut-off 14/14 -> 1/17 fine 62/69 -> 71/83, cut-off 9/14 -> 0/17 The gap narrows 6 points -> 2. Most of what looked like fine-tuning benefit was a generation cap. Honest answer: the fine-tune helps a little, on 4 of 17 cases, and the base still wins strcpy_note_neutral. Not a basis for promotion; that needs the full #1947 matrix. Refs #1804
Follow-up: the truncation confound has been removed by re-running both modelsThe 512-token cap turned out to be a known distortion, not a discovery here — #2694 already recorded it truncating injection conclusions in 23 of 30 Tier B answers. Re-ran both models with #159's own harness (
Most of the 512-token gap was the cap, not the tuning. The gap narrows from 6 points to 2. The per-case diff at 2048 is 5 of 17 cases, fine-tune winning 4: Conclusion, stated plainly: the fine-tune helps a little — 2 points on 83, 4 of 17 cases — and much less than the recorded run implied. No promotion proposed. The corpus still does not run real Ghidra (#1805 open), so candidate 1 stays blocked and the full matrix stays #1947. New artefacts committed: Commit |
What
Adds part 4 to
docs/local-llm-model-evaluation.md: a transcript read ofWhiteRabbitNeo-2.5-Qwen-2.5-Coder-7Bagainst its own baseQwen2.5-Coder-7B, which is the current Rev·Deck model. Same base, same size,same quant; the security fine-tune is the only variable. Four stored Tier A
transcripts were re-read and re-aggregated. Nothing was re-run — no GPU, no
Ollama, no network model call. One file changed.
Why a read rather than the score
The per-case diff is substring/keyword-group scoring, which rewards saying the
word. The read asks what each model actually claimed, case by case.
Result
The known per-case diff reproduces exactly: 7 of 14 cases differ, the
fine-tune winning 6 and the base winning
tlv_parser. The read does notsupport a unique-contribution claim, and the section says so.
output-token cap; the fine-tune completes 5 of 14. The wins cluster where
the fine-tune simply got further into the same explanation, so the better
total is substantially a completion effect, not demonstrated security
insight.
format_string_bugadds only the vulnerability named as a class to check,and
integer_overflow_allocnames the overflow site while mis-stating theconsequence.
use_after_free, +2) contains a fine-tune claimthat contradicts its own intent paragraph two lines earlier.
tlv_parseron a boundary-condition reading, sothe base is not dominated.
refuses, and neither shows instruction-source discrimination.
Limits stated in the section, not hidden
the total and up to ±2 on a single case, larger than a security fine-tune is
likely to move. No total-score difference is presented as a finding.
benchmark path runs real Ghidra (Benchmark fidelity: run real Ghidra over the #159 corpus so models are scored on production-shaped input #1805 open). The corpus is not called
production-representative.
proposed; promotion stays
model-governance.py promoteafter the fullOne benchmark, every model, every aspect: rebuild the model matrix on current hardware with error bars #1947 matrix.
Every number in the new section recomputes from the four source JSON files.
Refs #1804