Surfaced by the revived nightly story (#2347). Filing it separately rather than folding it into that PR, and deliberately not calling it a regression yet — I have one observation.
What was seen
Local full run of scripts/qwen-story.sh at 12551dd19 + the #2347 fixes, Beat 2 (apr qa on qwen2.5-coder-1.5b-instruct-q4k.apr):
✗ FAIL Golden Output
golden_output: Expected one of ["Hello", "Hi", "hey", "hello", "!"],
got: "I'm sorry, but I'm not sure what you're asking. Could you please
provide more context or information"
The previous nightly (run 30520528348, 2026-07-30, e514cc5ed) passed the same gate:
✓ PASS Golden Output 2 golden test cases passed (22.7s)
Why I am not calling it a regression
So the plausible readings are (a) genuine output-quality change, (b) sampling nondeterminism on the GPU path making this gate flaky, or (c) an over-strict golden expectation. I cannot currently distinguish them.
What will settle it
The nightly qwen-story-daily is the confirmation mechanism, and as of #2347 it can actually report its own result again — before that fix it died at Beat 1 and could not have told us either way. The next few runs will show whether this is stable or intermittent.
If it is intermittent, that is the more interesting finding: a golden-output gate that samples on GPU without a pinned seed is a flake generator, and per feedback_main_ci_andon the fix is to make it deterministic, not to #[ignore] it.
Repro
export PATH="$HOME/.cargo/bin:$PATH"
bash scripts/qwen-story.sh # Beat 2, or:
apr qa ~/models/qwen2.5-coder-1.5b-instruct-q4k.apr
Surfaced by the revived nightly story (#2347). Filing it separately rather than folding it into that PR, and deliberately not calling it a regression yet — I have one observation.
What was seen
Local full run of
scripts/qwen-story.shat12551dd19+ the #2347 fixes, Beat 2 (apr qaonqwen2.5-coder-1.5b-instruct-q4k.apr):The previous nightly (run
30520528348, 2026-07-30,e514cc5ed) passed the same gate:Why I am not calling it a regression
e514cc5edand12551dd19touches inference. That range is feat(pull): apr pull --verify — check the hash pull already records but never compares #2343 (a newapr pull --verifysubcommand), fix(ci): qwen-story-daily installed a fresh apr and then ran a 24-day-old one #2344 (shell scripts), fix(beat): the LinReg speed beat was measuring the host, not the algorithms #2345/docs(beat): record what the CI host actually measures for LinReg (0.788/0.805, ~11% headroom) #2346 (a CPU benchmark's constants and docs). None of them are on the decode path.[GH-480] F2 validation PASSED — launching GPU generation, i.e. GPU sampling.So the plausible readings are (a) genuine output-quality change, (b) sampling nondeterminism on the GPU path making this gate flaky, or (c) an over-strict golden expectation. I cannot currently distinguish them.
What will settle it
The nightly
qwen-story-dailyis the confirmation mechanism, and as of #2347 it can actually report its own result again — before that fix it died at Beat 1 and could not have told us either way. The next few runs will show whether this is stable or intermittent.If it is intermittent, that is the more interesting finding: a golden-output gate that samples on GPU without a pinned seed is a flake generator, and per
feedback_main_ci_andonthe fix is to make it deterministic, not to#[ignore]it.Repro