Skip to content

kolibri1 TT: re-attribute the host-free arm delta — the device add-norm kernel bias, not the shadow reconciliation - #3457

Closed
lu-zero wants to merge 3 commits into
localai-org:mainfrom
lu-zero:row/tt-kolibri-shadow-recon
Closed

lu-zero wants to merge 3 commits into
localai-org:mainfrom
lu-zero:row/tt-kolibri-shadow-recon

Conversation

@lu-zero

@lu-zero lu-zero commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Lever 1 of the #3454 adjudication (host-free shadow reconciliation) is FALSIFIED as the arm-delta mechanism, and the real one is pinned: the host-free decode path forces the DEVICE rms_norm at T=1 (for capture), and that kernel carries a ~0.7% systematic INPUT-DEPENDENT bias on kolibri1 activations — inputs bit-identical across arms (emb hash, gamma sum, VT_TT_NORM_DEBUG probes on dev_x/norm_f32), output 0.7% low (host f32 9.846392 vs device 9.765238) — while the committed rmsnorm micro on the same patched substrate measures 0.9997 clean on random inputs of the same shape/eps. The kernel bias is input-distribution-dependent. 50 layers x 2-3 norm sites compound it into multi-nat router-logit shifts: the 40-vs-17 teacher-forced hard-flip arm delta.

Bisect: forced-host rope (byte-identical flip set) and forced-host PA (identical chain) RULED OUT; forced-host residual reads worse (7 hard) because host round-trips desync the device shadow — not a clean probe, and the pre-#3452 "host residual is the accurate arm" finding is dead. The composed f32 rms_norm repair remains substrate-blocked in-model (Invalid subtile broadcast type, binary_ng_device_operation.cpp:224, re-confirmed on this stack).

The #3452 UAF fixes are confirmed correct but orthogonal: they fixed crashes; the arm delta is kernel precision on real distributions, and it reproduces exactly on the current base (40/17).

Priced next diagnostic (recorded in the evidence file + issue): feed the in-model emb/gam row through the standalone micro to split INPUT-DEPENDENCE (a kernel precision bug triggered by real activation distributions — fix in the substrate kernel) from PROGRAM PROVENANCE (the in-model call selects a different kernel config than the micro — fix at the call site). Either way the fix site is the tt-metal rms_norm path this stack already patches.

Issue: ISSUE-LOCAL-01M4YVEP000ENCRECVB0S6FDDY (files the arm-delta re-measurement ownership; Resolution carries the re-attribution).

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:zai/glm-5.3-flash [maki]

…cted walk

The prior hard-flip classification was computed on a shifted chain
(generated_ids[step-1] fed instead of generated_ids[d-1]), so its per-step
teacher-forced numbers answered the wrong question. This re-runs the
adjudication on 2c4efce's corrected walk and re-derives the residual.

Both arms reproduce the corrected counts exactly (ON 69 tf flips: 29
near-tie, 40 HARD, worst 10.617 nats; OFF 44: 27/17, worst 8.647) - the
residual is real. The drift origin is unchanged (L0 MoE input, first
divergent stage at every decode step from step 0, 1-bf16-ULP class), and
the router-gain mechanism HOLDS: CPU-vs-TT top-6-of-384 expert-set overlap
averages 3.0-3.7 of 6 at every layer under the golden prefix, and the new
route_scores probe shows the top6-top7 selection margin below 0.05 nats at
26-44 of 50 layers at every hard flip, while top1-top2 stays robust. The
flips SPREAD across 7 of 8 prompts and the whole step range in both arms,
so the band-2.5 residual is classified STRUCTURAL (drift x router gain),
not a single-site repair; the levers are host-free shadow reconciliation
(halves the hard count) and f32 device attention/norm.

A scratch route_scores dump (sorted top-8 biased selection scores behind
VT_KOLIBRI1_TT_STAGE_DUMP) accompanies the existing stage probes; the
adjudication table lives in
docs/bench-evidence/kolibri1-tt-readjudication-20261012.md and the issue
resolution records the supersession.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:zai/glm-5.3-flash [maki]
…on evidence and parsers

The review on the P150 readjudication found the SCRATCH dbg TF log's raw
TFstep label is not the gate's decode position: the walk prints
d = i - input_len before the +1 that the logits' context position implies,
so raw `TFstep N` is decode position N+1 (the last prompt token's
TFstep -1 line is decode position 0). The test now prints both labels and
one short prompt-4 device leg verified the new wording. The doc gains an
explicit mapping section; its SCRATCH-derived step numbers are restated as
decode positions (the tf-p legs' decode-position-0 forward diverges at L0
dh2 like every later one, so the origin claim survives the relabel), and
the Q2 example is restated as the walk's first prompt forward, not a step.

The structural verdict is restated to what the evidence supports: the flip
spread across 7 of 8 prompts and the whole decode range is consistent with
the shared L0-origin drift amplification, and it rules out single-site
patches — it does not rule out that a chain-wide f32 fix (lever 2) clears
most of the residual, since that targets the origin itself.

The evidence the tables derive from is now durable: docs/bench-evidence/
kolibri1-readj/ carries the parsed OFF/ON.json and the corrected-label
tf_origin.json, the tf-p{1,5,4}.log raw legs gzipped, and the three
parsers that regenerate every doc table from them (the 22-98 MB full-gate
arm logs stay off-tree with their sizes and regeneration recipe recorded).
parse_overlap.py and parse_tf_origin.py were rerun against the committed
logs and reproduce the doc's Q1/Q2 numbers exactly.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:zai/glm-5.3-flash [maki]
…e add-norm kernel bias, not the shadow reconciliation

The lever-1 premise (host-free shadow reconciliation is the largest single
lever behind the 40-vs-17 teacher-forced hard-flip arm delta) is falsified on
the current base. The delta reproduces exactly (ON 40 / OFF 17 TF HARD, gate
5/2), so the localai-org#3452 UAF fixes did not close it, but the stage-trace localization
puts the first divergence at `L0 dhn` — the input_layernorm — on bit-identical
inputs (emb hash dd76406a, gam sum 858.502781 in both arms): the host f32 loop
outputs 9.846392, the device arm 9.765238 (ratio 0.9918). VT_TT_NORM_DEBUG
proves the device norm's inputs are bit-identical while its output reads 0.7%
low, and the committed rmsnorm micro on the same patched substrate measures
0.9997 clean on random inputs — the kernel bias is input-distribution-dependent.

Bisect: forced-host rope (byte-identical flip set) and forced-host PA
(identical chain) are ruled out; forced-host residual reads WORSE (7 hard)
because the host round-trips desync the device shadow, so it is not a clean
probe and the pre-localai-org#3452 "host residual is the accurate arm" finding is dead.
The composed f32 rms_norm repair remains substrate-blocked in-model
(Invalid subtile broadcast type, binary_ng_device_operation.cpp:224,
re-confirmed on this stack).

MECHANISM: host-free decode forces the device rms_norm at T=1 for capture;
that kernel carries a ~0.7% systematic input-dependent bias on kolibri1
activations; 50 layers x 2-3 norm sites compounds it into multi-nat
router-logit shifts and the 40-vs-17 arm delta. Priced fix options and the
recommended next lever (feed the in-model emb/gam row through the micro to
split input-dependence from program provenance) are recorded in the evidence
file and the issue.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:zai/glm-5.3-flash [maki]
@lu-zero lu-zero closed this Oct 15, 2026
@lu-zero
lu-zero deleted the row/tt-kolibri-shadow-recon branch October 15, 2026 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant