Repository navigation
spec(hslm): nn/hslm runs the per-block VSA stream (Closes #10099) - #10100
Merged
Merged
Conversation
Adds the per-block VSA stream of trinity-training's HSLM (@3e9648c1, trinity_block.zig, model.zig forwardTrain) to nn/hslm: bind and rotate, the max_sim >= PHI_INV gate, +0.1 * project(context) when it fires, and the block output handed to the next block. The offset never reads a float parameter, so the existing finite-difference gradient checks still hold with the stream on. The ternary STE update is left to its own lane (#10076, PR #10086). nn/hslm on the Railway lab: 61/61 tests pass, 12 invariants proved, 0 vacuous (master: 46 tests). Mutation control: gate > for >= fails 2 tests, VSA gain 0 fails 1. HSLM and nn_HSLM are re-sealed on the lab. own_model: the forward-pass cell goes 85 to 95 percent (lens 2 now 58, overall still 44); own_model_board mirrors it. Cells 15-17 (STE) are untouched. Both pass 8/8 and 6/6, 0 vacuous. Deletes conformance/nn_hslm_vectors.json: it described the 6-layer, FF 972, ctx 81 model and nothing read it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
force-pushed
the
feat/hslm-vsa-ste
branch
from
October 17, 2026 18:58
5ff7ad9 to
cc56fcf
Compare
This was referenced Oct 17, 2026
Merged
Merged
Contributor
This was referenced Oct 17, 2026
spec(policy): l2_generation -- gen/json/ is t27c gen-json's backend directory (Closes #10079)
#10082
Merged
gHashTag
enabled auto-merge (squash)
October 17, 2026 19:32
…#10099) Conflicts in specs/igla/own_model.t27 and own_model_board.t27 with #10086 (ternary STE, training step, data layout): kept #10086's cells 15-17 (85/75/55/40 -> STE cells 75/55/40) and its MEASURED bullet, plus this PR's forward-pass cell 14 at 95 and its VSA bullet. Lens 2 re-derived: mean of 9..17 = 630 / 9 = 70 (was 68 on master); overall stays 48 and METRICS_BYTES stays 624 (no digit count changed). The "add the VSA path" gap row becomes "Batched f32 HSLM trainer". duplicate-bodies: copy_floats in nn/hslm had copy_trits' body; it is now save_block_out, which copies act_out into block_out_scratch. The four groups master already failed on (fill, ternary_matmul, matmul_probe, matmul_rect_probe: nn/hslm's helpers copied into nn/attention and nn/hslm_backward) are recorded in the ledger with dupe_scan --bless; the ledger gains exactly those four lines. Railway lab after the merge: nn/hslm 61/61 tests, 12 invariants, own_model 9/9, own_model_board 6/6, all 0 FAIL, 0 vacuous. HSLM and nn_HSLM re-sealed on the lab, sha256 matched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
PR DashboardGenerated at: 2026-10-17 19:45:18 UTC
Summary
Seal Status
|
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.
Closes #10099
Follows #10068, which gave nn/hslm the trained shape. This PR adds the per-block VSA stream of trinity-training's HSLM (@3e9648c1). The ternary STE update is out of scope here: it belongs to its own lane (#10076, PR #10086).
What changes
copy_floatshadcopy_trits' body, so it is nowsave_block_out. master already fails this gate on four groups that were copied from nn/hslm into nn/attention (spec(nn): make attention.t27 compile and pass with 0 vacuous tests (Closes #10094) #10095) and nn/hslm_backward (spec(nn): ternary STE, training step and data/checkpoint layout in t27 (Closes #10076) #10086):fill,ternary_matmul,matmul_probe,matmul_rect_probe.dupe_scan --blessrecords them, and the ledger gains exactly those four lines.conformance/nn_hslm_vectors.json. It described the 6-layer, FF 972, ctx 81 model, and nothing read it.Measured on the Railway lab (same t27c as #10068)
Mutation control. Each mutant ran as a separate copy:
max_sim > PHI_INVinstead of>=hslm_vsa_gate_threshold_is_phi_inverse,hslm_vsa_gate_counts)VSA_GAIN = 0.0hslm_vsa_offset_is_gain_times_projection)Seals.
t27c seal specs/nn/hslm.t27 --savere-saved.trinity/seals/nn_HSLM.jsonand.trinity/seals/HSLM.json. Both were copied back with matching sha256.t27b-native-ratchet is red on master as well (238 findings in master run 39062420129, including the same three hslm UNLISTED rows: nn/hslm blocked on
ExprCall(undeclared fn)). The ledger-steward job adds those rows from master runs, so this PR does not hand-editdocs/reports/t27b_expectations.json.Still not in the spec: f32, batches, the data loader, and the trainer's STE update (#10076).
🤖 Generated with Claude Code