Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .trinity/seals/HSLM.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
{
"gen_hash_c": "sha256:fd94f6962089194da7478e83cd9a015b83a28707b6cb35a9c8e629a96f502fa8",
"gen_hash_rust": "sha256:7f60cf6c5c5c2bf0ee07982585e981bb3e84a5444eab90063406f36940d9d76d",
"gen_hash_verilog": "sha256:25e87d2ab265533cab0de48e751110380236e26686ba78a711d412eb625cf1a8",
"gen_hash_zig": "sha256:769110ea52ada18974a5c561ea7c364bf4c7169c29b55619fb7daf16a2a91451",
"gen_hash_c": "sha256:5e6c04320ab12b7f1451bdfd4162ca52a3eb54c1badfb47d84d6fa8411724d19",
"gen_hash_rust": "sha256:435b3e5b895f99ea146078d091715ee5a71c82aa13a204090bd4b53939983b26",
"gen_hash_verilog": "sha256:cafcce94d7360dcf804d9ef3dc6fe5de0b4de7335c7fcc05a747ee4db0be9800",
"gen_hash_zig": "sha256:0b168aaa160d077bfbcb66a19487dce330289422c64da51cec4154fd5ff7799a",
"module": "HSLM",
"ring": 12,
"sealed_at": "2026-10-17T17:34:44Z",
"spec_hash": "sha256:1ffe306efd7cc6b092829cbcfb7645cbadde70fed20b3c3a7e3cfedd3abd27ce",
"sealed_at": "2026-10-17T18:02:24Z",
"spec_hash": "sha256:df24bc0cb83391c7131fc940940bae4804f95fde9e854ae03065ec8caff85a08",
"spec_path": "specs/nn/hslm.t27",
"tests": {
"failed": 0,
"failing": [],
"forced": false,
"passed": 26,
"total": 26,
"passed": 46,
"total": 46,
"vacuous": 0
}
}
16 changes: 8 additions & 8 deletions .trinity/seals/nn_HSLM.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,23 @@
}
],
"config": "gen=c,rust,verilog,zig;tests=zig",
"gen_hash_c": "sha256:fd94f6962089194da7478e83cd9a015b83a28707b6cb35a9c8e629a96f502fa8",
"gen_hash_rust": "sha256:7f60cf6c5c5c2bf0ee07982585e981bb3e84a5444eab90063406f36940d9d76d",
"gen_hash_verilog": "sha256:25e87d2ab265533cab0de48e751110380236e26686ba78a711d412eb625cf1a8",
"gen_hash_zig": "sha256:769110ea52ada18974a5c561ea7c364bf4c7169c29b55619fb7daf16a2a91451",
"gen_hash_c": "sha256:5e6c04320ab12b7f1451bdfd4162ca52a3eb54c1badfb47d84d6fa8411724d19",
"gen_hash_rust": "sha256:435b3e5b895f99ea146078d091715ee5a71c82aa13a204090bd4b53939983b26",
"gen_hash_verilog": "sha256:cafcce94d7360dcf804d9ef3dc6fe5de0b4de7335c7fcc05a747ee4db0be9800",
"gen_hash_zig": "sha256:0b168aaa160d077bfbcb66a19487dce330289422c64da51cec4154fd5ff7799a",
"module": "HSLM",
"ring": 12,
"seal_schema": 2,
"sealed_at": "2026-10-17T17:34:44Z",
"sealed_at": "2026-10-17T18:02:24Z",
"sealed_by": "t27c-bootstrap@0.5.2",
"spec_hash": "sha256:1ffe306efd7cc6b092829cbcfb7645cbadde70fed20b3c3a7e3cfedd3abd27ce",
"spec_hash": "sha256:df24bc0cb83391c7131fc940940bae4804f95fde9e854ae03065ec8caff85a08",
"spec_path": "specs/nn/hslm.t27",
"tests": {
"failed": 0,
"failing": [],
"forced": false,
"passed": 26,
"total": 26,
"passed": 46,
"total": 46,
"vacuous": 0
},
"toolchain": {
Expand Down
28 changes: 17 additions & 11 deletions specs/igla/own_model.t27
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,15 @@
; - re-test on 2026-10-18, same t27c, after the PR that rewrote both HSLM specs (#7778):
; nn/hslm 26/26 and hslm/forward_pass 14/14 pass, 0 vacuous, so 6 of the 17 compile. The
; spec's backward pass is now real, each gradient checked against a finite difference.
; The spec is not the trained model: 6 layers at ctx 81, FFN 243-972-243 with GELU and no
; That spec was not the trained model: 6 layers at ctx 81, FFN 243-972-243 with GELU and no
; embedding or vocab head, where trinity-training ran 3 blocks, its best run at ctx 27, and an
; FFN 243-729-243 with ReLU, biases and a TWN scale.
; - re-test on 2026-10-18, same t27c, after the PR that rewrote nn/hslm to the trained model
; (#10062): nn/hslm 46/46 pass, 0 vacuous. It now has the trained shape (3 blocks, ctx 27,
; phi position encoding and phi-RoPE, a ReLU FFN 243-729-243 with biases and TWN alphas, the
; vocab-729 head and cross-entropy), its backward reaches the embedding, and every gradient is
; checked against a central difference; a mutant that drops one alpha fails 10 of the 46.
; Not in it: the per-block VSA path, f32, and the trainer's STE update (shadow weights).
; - live: GET huggingface.co/api/models/playra/tern-tc-9m and .../tern-tc-9m-t27 returned 200;
; .../tern-tc-100m returned 401, the same as a made-up name, so no 100M is public.
; GET board-production-2dec.up.railway.app/state returned 200 and a made-up path 404; its
Expand All @@ -39,9 +45,9 @@

; THE ANSWER this map gives: HSLM was trained before, in Zig only (64 files); its best runs
; (PPL 2.96 at ctx 27) were wiped by EXP-002 and survive only in the ledger. In t27 the loss, three
; optimizers and the HSLM spec's forward and backward passes pass, but that spec is not the trained
; model (see MEASURED); ternary STE, data loader, checkpoint I/O, heap and file I/O and
; `t27c --backend ml` do not exist yet.
; optimizers and the HSLM spec's forward and backward passes pass, and that spec is now the trained
; model but for its VSA path (see MEASURED); ternary STE with shadow weights, data loader,
; checkpoint I/O, heap and file I/O and `t27c --backend ml` do not exist yet.

; Not claimed: no model quality beyond the numbers in SOURCES; no GIF or MP4, stills only.
; phi^2 + 1/phi^2 = 3 | TRINITY
Expand Down Expand Up @@ -178,7 +184,7 @@ pub const STATUS : [27]u8 = [4, 4, 4, 3, 3, 3, 3, 0, 0, 4, 4, 4, 4, 4, 4, 3, 0,
pub const LABELS : [27]str = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27"];

/// Percent of each part that exists, estimated from its source (see the header). Never a status.
pub const PCT : [27]u8 = [60, 70, 80, 80, 60, 10, 50, 0, 0, 100, 100, 20, 80, 65, 60, 40, 0, 0, 70, 15, 60, 40, 35, 0, 0, 0, 50];
pub const PCT : [27]u8 = [60, 70, 80, 80, 60, 10, 50, 0, 0, 100, 100, 20, 80, 65, 85, 70, 0, 0, 70, 15, 60, 40, 35, 0, 0, 0, 50];

/// The t27c test-report counts the PRACTICE cells quote.
pub const ML_SPECS_MEASURED : i32 = 17;
Expand All @@ -204,9 +210,9 @@ pub const ROWS : [20]str = [
"6 of 17 ML specs compile on the lab",
"0 of 9 IGLA CODER specs compile",
"1 published, 12 verified, 7 drafts",
"7 gaps, about 42 percent overall",
"Match the spec to the trained HSLM",
"Ternary STE, embedding and head",
"7 gaps, about 44 percent overall",
"HSLM spec: add the VSA path",
"Ternary STE with shadow weights",
"Loader, checkpoint I/O, --backend ml",
""
];
Expand Down Expand Up @@ -313,10 +319,10 @@ test the_compile_counts_are_the_measured_ones {

test percent_per_lens_is_a_plain_mean {
assert mean_pct(0, 9) == 45;
assert mean_pct(9, 9) == 51;
assert mean_pct(9, 9) == 57;
assert mean_pct(18, 9) == 30;
// the evidence slide's "about 42 percent overall"
assert mean_pct(0, CELL_COUNT) == 42;
// the evidence slide's "about 44 percent overall"
assert mean_pct(0, CELL_COUNT) == 44;
}

test the_camera_is_the_demo_camera {
Expand Down
22 changes: 11 additions & 11 deletions specs/igla/own_model_board.t27
Original file line number Diff line number Diff line change
Expand Up @@ -48,20 +48,20 @@ pub const LENS_CELLS : i32 = 9;

pub const JOB : str = "own_model";
pub const STAGE : str = "own_model";
pub const MSG : str = "1 published, 12 verified, 7 drafts, 7 gaps; 42%";
pub const MSG : str = "1 published, 12 verified, 7 drafts, 7 gaps; 44%";
/// What MSG says once its numbers are taken out.
pub const MSG_WORDS : str = " published, verified, drafts, gaps; %";
pub const OVERALL_PCT : u8 = 42;
pub const PROGRESS : f64 = 0.42;
pub const OVERALL_PCT : u8 = 44;
pub const PROGRESS : f64 = 0.44;

pub const KEY_LENS : str = "lens_pct";
pub const KEY_CELLS : str = "cells";
pub const KEY_STATUS : str = "status";
pub const KEY_PCT : str = "pct";

pub const LENS_PCT : [3]u8 = [45, 51, 30];
pub const LENS_PCT : [3]u8 = [45, 57, 30];
pub const CELL_STATUS : [27]u8 = [4, 4, 4, 3, 3, 3, 3, 0, 0, 4, 4, 4, 4, 4, 4, 3, 0, 0, 4, 4, 5, 4, 3, 0, 0, 0, 3];
pub const CELL_PCT : [27]u8 = [60, 70, 80, 80, 60, 10, 50, 0, 0, 100, 100, 20, 80, 65, 60, 40, 0, 0, 70, 15, 60, 40, 35, 0, 0, 0, 50];
pub const CELL_PCT : [27]u8 = [60, 70, 80, 80, 60, 10, 50, 0, 0, 100, 100, 20, 80, 65, 85, 70, 0, 0, 70, 15, 60, 40, 35, 0, 0, 0, 50];

/// The size of the compact metrics object, in bytes, computed from the keys and values above.
pub const METRICS_BYTES : i32 = 622;
Expand Down Expand Up @@ -273,19 +273,19 @@ test the_message_is_the_tally {
const n : i32 = @intCast(MSG.len);
assert n <= MSG_MAX;
// one number wrong, a word changed, or a number added: each refused
assert msg_matches("1 published, 11 verified, 7 drafts, 7 gaps; 42%", STATUS, overall) == false;
assert msg_matches("1 published, 12 verified, 7 drafts, 7 holes; 42%", STATUS, overall) == false;
assert msg_matches("1 published, 12 verified, 7 drafts, 7 gaps; 42% of 100", STATUS, overall) == false;
assert msg_matches(MSG, STATUS, 43) == false;
assert msg_matches("1 published, 11 verified, 7 drafts, 7 gaps; 44%", STATUS, overall) == false;
assert msg_matches("1 published, 12 verified, 7 drafts, 7 holes; 44%", STATUS, overall) == false;
assert msg_matches("1 published, 12 verified, 7 drafts, 7 gaps; 44% of 100", STATUS, overall) == false;
assert msg_matches(MSG, STATUS, 45) == false;
assert nth_number(MSG, 1) == 12;
assert nth_number(MSG, 4) == 42;
assert nth_number(MSG, 4) == 44;
assert nth_number(MSG, 5) == -1;
}

test progress_is_the_overall_percent_over_a_hundred {
assert progress_matches(PROGRESS, mean_pct(0, CELL_COUNT));
// a bar one point off, or past the end of the board's 0..1, is refused
assert progress_matches(0.43, mean_pct(0, CELL_COUNT)) == false;
assert progress_matches(0.45, mean_pct(0, CELL_COUNT)) == false;
assert progress_matches(1.39, 139) == false;
assert progress_matches(-0.01, -1) == false;
assert JOB.len > 0;
Expand Down
Loading
Loading