ks-cascade heads

Result first (SELECT, out-of-fold, 198 questions): neither head beats the default. Router task: TinyJev 0.601 [0.525, 0.676], LAYA 0.517 [0.435, 0.595], logistic regression 0.545 [0.464, 0.626]. Under the preregistered rule neither head replaces logistic, and logistic itself is below the 0.642 the campaign needs. Intended use of these weights: reproducing and checking the campaign's head comparison. They are not recommended for deployment as routers or grounding gates. The held-out CONFIRM verdict was still pending when this card was written (2026-11-10).

Fine-tuned text heads from the ks-cascade campaign, round 1: a learned 8B/14B router over Kannaka recall under a one-CPU envelope, with the Holographic Resonance Medium's recall state tested as a routing signal. This repo holds the final weights of the head-family side experiment (spec section 4), their sha256 hashes and the Hugging Face commit ids that the campaign's ledger record cites. The campaign's public home is the dataset repo flaukowski/ks-cascade; the preregistered protocol is spec-prereg-cascade.md there and in the evidence folder campaigns/ks-cascade/ of flaukowski/kannaka-scientist-v1.

Ledger: https://research.spacechild.love (append-only, public, machine-checked evidence hashes).

record id filed (UTC)
preregistration 01M6MFZEQBGYD8517QFRP0GHP6 2026-11-04T23:58:14Z
amendment 1 (pilot, smoke check, feature schema) 01M6N3P11QCAQ58RDMR2D4503A 2026-11-05T05:42:36Z
amendment 1b (cost constants) 01M6N7N7MNB3HPXSB6V3H6JNP5 2026-11-05T06:52:05Z
amendment 2 (the freeze; cites these weights) 01M73SDSFKW4NMCBTSDWGAXVEE 2026-11-10T22:31:57Z

This repo is public by the maintainer's decision of 2026-11-05. The heads are a side experiment: they are reported, and they ship in the cascade only if the replacement rule below says so. The default is logistic regression.

Intended use, out of scope, limitations

Intended use. Reproducing and checking the campaign's arithmetic: load a head, score rows, and compare the hashes, the out-of-fold numbers and the replacement decision with what the ledger record cites.

Out of scope. Any deployment, and any other use: routing live traffic, gating answers, serving as a base for further fine-tuning, or as evidence that a text head can route between these generators.

Limitations. Neither head beats the bar. On the router task the pooled out-of-fold AUROC is 0.601 for TinyJev and 0.517 for LAYA, where chance is 0.5 and the campaign's power model asks for about 0.642. Neither replaces the logistic router under the preregistered rule. The heads were trained on 198 questions from one benchmark, LongMemEval-S, with labels from one local judge model, and have been evaluated on nothing else.

What the heads are

Two binary tasks, each a yes/no question over a short text state, each learned by two model families:

task the noul question in the state gold label (SELECT rows only)
router "Will the small model answer this question correctly from these excerpts?" true iff the 8B answer was judged correct by the sealed judge
grounding "Is the small model's answer to this question wrong?" true iff the 8B answer was judged wrong; evaluated on the non-abstaining subset (the gated number) and on all rows

The state is the question, the top-15 recall excerpt headers as the 8B generator saw them (rank, date, the first 80 characters of the turn, no session ids), and the numeric F0 features rendered as text lines (f0_top1_cos: 0.512 style). The grounding state adds answer features: answer token count, the abstention flag, a date-mention count, a numeric flag, and the overlap of the answer with the top-3 excerpts. The 8B answer text itself is not in the state. Rows are in Laya's fine-tune format (build_e_l1b_dataset.py of kannaka-bench). The rows carry question text, excerpt text and clear ids, so they are private and are not in this repo; their sha256 (the training-manifest hash) is on the ledger and below.

F0, the cosine control (frozen in feature_schema.json, amendment 1), 20 columns: f0_top1_cos, f0_cos_margin_1_2, f0_cos_spread_1_15, f0_cos_mean15, f0_cos_std15, f0_cos_entropy15_tau0.05, f0_cos_cluster_count15, f0_cos_top1_cluster_share15, f0_cos_crowding6_top1, f0_distinct_sessions15, f0_store_turns, f0_store_sessions, f0_haystack_tokens, f0_question_tokens, f0_route_aggregate, f0_route_preference, f0_route_plain, f0_days_asked_minus_top1, f0_date_spread15_days, f0_excerpt_chars15. Nothing gold-derived. The heads in this repo were trained on F0 rows (feature set f0), which pair with the primary logistic router R0. The HRM features (h1 to h12) are not in these heads; the HRM test always uses logistic on both sides, whatever family ships.

Families and recipes

LAYA. Base checkpoint convaiinnovations/laya, fine-tuned with the E-L1b recipe of kannaka-bench (experiments/laya_reflex/train_e_l1b.py, run unchanged as a subprocess): RLCD proper-scoring objective, 4 epochs, seed 42. The held-out fold is scored with laya.Agent and the noul P(yes) is read with e_l1_evidence_gate.p_yes. Trainer: laya_train_folds.py.

TinyJev. Base Qwen/Qwen3-0.6B-Base plus the Kev pointer head from the fork flaukowski/tinyjev (MIT): q/k projections from the hidden size to 256, logit_i = (k(h[option_i end]) . q(h[decide])) / sqrt(256); for noul the options are "no" and "yes" and P(true) = softmax(z)[1]. Trained on the same rows and state with the same objective as train_e_l1b.py (RLCD: zero-mean noisy-logit groups scored by the proper scoring rule plus soft cross-entropy, sigma 0.4 to 0.1 over the epochs, AdamW, cosine schedule, post-hoc temperature on a training subsample). Full fine-tune of the 0.6B backbone in bf16 autocast with gradient checkpointing; the saved backbone is an fp16 copy, and CONFIRM is scored by the live model before saving, so OOF and CONFIRM probabilities come from the same numeric model. Trainer: tinyjev_train.py. TinyJev built (declared before any held-out number existed): yes (all five folds and the final fit ran for both tasks and both controls).

Logistic (the default, not in this repo). L2 logistic regression on the standardised F0 features, C = 1.0, GroupKFold by question stem, 5 folds; the deployed router is the mean of the five fold models. Its coefficients are router_R0.json in the dataset repo.

Training rows: SELECT only

LongMemEval-S, 500 questions, split SELECT 200 / CONFIRM 300 by question stem (seed "ks-cascade", split.py). Every head here was trained from its base checkpoint on SELECT rows only, 5 GroupKFold folds by stem (every SELECT probability is out-of-fold) plus one final model per family and task on all SELECT rows. The final models score the CONFIRM rows at step 9c (not yet run on 2026-11-10); those probabilities are published only as JSON keyed by sha256(question_id) (heads_confirm_*.json in the dataset repo). No CONFIRM row, label or feature value was used for any fit.

rows file (private) rows prevalence of true training-manifest sha256
head_rows_router_select.private.jsonl 198 0.545 (108 of 198) b242bff9d4beb6110cd90b7907f1cbfb3757eb66cfc18078db7d1805ca51fadf
head_rows_grounding_select.private.jsonl 198 (166 non-abstaining) 0.455 (90 of 198); non-abstaining 0.386 (64 of 166) cc1f3015e7c7b0c0b4fb00b4af7516da4e6081cba7fb2004c104cc54161db631

Folds: folds_select.json in the dataset repo, sha256 756f1998bc890b98d3328e4a1d24bf274de38cf9a22082175d7a321027f04986.

Forbidden heads. Two earlier Laya heads exist on Hugging Face and were NOT used, not as a base and not as a feature: flaukowski/laya-kannaka-evidence-gate (trained on 470 of the 500 LongMemEval-S questions) and flaukowski/laya-kannaka-supersession (saw all 78 knowledge-update questions). Both have seen the held-out rows of this campaign. The preregistration names them as forbidden (spec section 2), and there is no evidence head in this campaign (spec section 4, stated as a scope decision).

Results on SELECT (out-of-fold)

Router, pooled OOF AUROC with stratified bootstrap 95% CI (strata: the six LongMemEval question types plus abstention as a seventh) and Brier:

model pooled OOF AUROC 95% CI Brier rows
logistic on F0 (default) 0.545 [0.464, 0.626] 0.251 198 (108 true)
TinyJev 0.601 [0.525, 0.676] 0.244 198 (108 true)
LAYA 0.517 [0.435, 0.595] 0.252 198 (108 true)

Grounding, non-abstaining subset (the gated number) and all rows:

Non-abstaining subset (166 rows, the gated number):

model pooled OOF AUROC 95% CI Brier rows
logistic on F0 (default) 0.661 [0.578, 0.739] 0.229 166 (64 true)
TinyJev 0.593 [0.507, 0.680] 0.320 166 (64 true)
LAYA 0.479 [0.387, 0.566] 0.241 166 (64 true)

All rows (198):

model pooled OOF AUROC 95% CI Brier rows
logistic on F0 (default) 0.712 [0.641, 0.778] 0.220 198 (90 true)
TinyJev 0.589 [0.511, 0.666] 0.328 198 (90 true)
LAYA 0.484 [0.408, 0.566] 0.248 198 (90 true)

Paired dAUROC, TinyJev minus LAYA, with paired-bootstrap CI and DeLong p (router): TINYJEV vs LAYA: dAUROC = +0.085, 95% CI [-0.039, +0.199], DeLong p = 0.161; the point gap is at or above 0.08 but the CI includes 0: suggestive, not shown (grounding, non-abstaining: TINYJEV vs LAYA: dAUROC = +0.114, 95% CI [-0.009, +0.239], DeLong p = 0.070; the point gap is at or above 0.08 but the CI includes 0: suggestive, not shown). Per the preregistration, at n = 200 a gap under about 0.08 is "not distinguishable", not "equal".

Shuffled-rank control. The same heads trained and scored on rows whose excerpt lines were permuted and renumbered within each question: the medium's ordering is destroyed, the content kept. If the ordering carried the signal the control AUROC is expected near 0.5.

task family control AUROC 95% CI CI contains 0.5
router TinyJev 0.529 [0.449, 0.606] yes
router LAYA 0.508 [0.429, 0.590] yes
grounding, non-abstaining TinyJev 0.601 [0.516, 0.691] no
grounding, non-abstaining LAYA 0.530 [0.440, 0.618] yes
grounding, all rows TinyJev 0.583 [0.501, 0.663] no
grounding, all rows LAYA 0.535 [0.456, 0.612] yes

Reading: on the router task both controls sit on 0.5, and so does LAYA itself. On the grounding task the TinyJev control (0.601 non-abstaining, 0.583 all rows) is as high as the TinyJev head (0.593, 0.589): shuffling the excerpt order removed nothing, so whatever that head learned is not carried by the ordering of the recall list. The Brier value of the TinyJev router control is not a number in the source file and is not shown.

Replacement rule (preregistered). A text head replaces logistic in the shipped cascade only if its pooled OOF AUROC lower 95% bound exceeds logistic's point estimate on the same rows (two-sided CI lower bound, the 2.5th percentile, the conservative reading; compare_heads.py reports the one-sided 5th percentile beside it and the decision statement names the bound applied). Decision from heads_compare_*.json:

  • laya (all_rows): pooled OOF AUROC 0.517 [0.435, 0.595] (one-sided 95% lower bound 0.449) vs logistic point 0.545: does NOT replace logistic (default logistic stands) under the two-sided 95% CI lower bound (2.5th percentile).
  • tinyjev (all_rows): pooled OOF AUROC 0.601 [0.525, 0.676] (one-sided 95% lower bound 0.535) vs logistic point 0.545: does NOT replace logistic (default logistic stands) under the two-sided 95% CI lower bound (2.5th percentile).
  • TINYJEV vs LAYA: dAUROC = +0.085, 95% CI [-0.039, +0.199], DeLong p = 0.161; the point gap is at or above 0.08 but the CI includes 0: suggestive, not shown.
  • stacked logistic (features + laya OOF logit, nested over the outer folds; all_rows): AUROC 0.553 [0.475, 0.628] vs features-only 0.553; dAUROC -0.000 [-0.004, +0.004], DeLong p = 0.961 (stacker nested, heads not re-fit).
  • stacked logistic (features + tinyjev OOF logit, nested over the outer folds; all_rows): AUROC 0.577 [0.499, 0.653] vs features-only 0.553; dAUROC +0.023 [-0.023, +0.067], DeLong p = 0.303 (stacker nested, heads not re-fit).
  • laya (non_abstaining): pooled OOF AUROC 0.479 [0.387, 0.566] (one-sided 95% lower bound 0.400) vs logistic point 0.661: does NOT replace logistic (default logistic stands) under the two-sided 95% CI lower bound (2.5th percentile).
  • tinyjev (non_abstaining): pooled OOF AUROC 0.593 [0.507, 0.680] (one-sided 95% lower bound 0.522) vs logistic point 0.661: does NOT replace logistic (default logistic stands) under the two-sided 95% CI lower bound (2.5th percentile).
  • TINYJEV vs LAYA: dAUROC = +0.114, 95% CI [-0.009, +0.239], DeLong p = 0.070; the point gap is at or above 0.08 but the CI includes 0: suggestive, not shown.
  • stacked logistic (features + laya OOF logit, nested over the outer folds; non_abstaining): AUROC 0.557 [0.466, 0.644] vs features-only 0.569; dAUROC -0.013 [-0.028, +0.001], DeLong p = 0.080 (stacker nested, heads not re-fit).
  • stacked logistic (features + tinyjev OOF logit, nested over the outer folds; non_abstaining): AUROC 0.567 [0.481, 0.656] vs features-only 0.569; dAUROC -0.003 [-0.025, +0.021], DeLong p = 0.820 (stacker nested, heads not re-fit).
  • laya (all_rows): pooled OOF AUROC 0.484 [0.408, 0.566] (one-sided 95% lower bound 0.422) vs logistic point 0.712: does NOT replace logistic (default logistic stands) under the two-sided 95% CI lower bound (2.5th percentile).
  • tinyjev (all_rows): pooled OOF AUROC 0.589 [0.511, 0.666] (one-sided 95% lower bound 0.522) vs logistic point 0.712: does NOT replace logistic (default logistic stands) under the two-sided 95% CI lower bound (2.5th percentile).
  • TINYJEV vs LAYA: dAUROC = +0.104, 95% CI [-0.008, +0.209], DeLong p = 0.062; the point gap is at or above 0.08 but the CI includes 0: suggestive, not shown.
  • stacked logistic (features + laya OOF logit, nested over the outer folds; all_rows): AUROC 0.532 [0.453, 0.609] vs features-only 0.553; dAUROC -0.021 [-0.042, -0.001], DeLong p = 0.038 (stacker nested, heads not re-fit).
  • stacked logistic (features + tinyjev OOF logit, nested over the outer folds; all_rows): AUROC 0.562 [0.482, 0.637] vs features-only 0.553; dAUROC +0.009 [-0.013, +0.031], DeLong p = 0.422 (stacker nested, heads not re-fit).

In plain words: no head replaces logistic on either task. On the router task TinyJev's point estimate (0.601) is above logistic's (0.545), but its lower bound (0.525) is below logistic's point, and the paired difference TinyJev minus logistic is +0.056, 95% CI [-0.064, +0.173], DeLong p 0.337. LAYA (0.517) is not distinguishable from chance. On grounding, logistic on the answer features (0.661 non-abstaining, 0.712 all rows) is ahead of both heads. The logistic router itself is weak: its OOF AUROC of 0.545 is below the 0.642 the campaign's own power model says a router needs to pass the primary gates. These weights are published so the comparison can be reproduced, not because they are useful routers.

Preregistered prediction 5 (spec section 9), for the record: logistic OOF AUROC on F0 is 0.65 to 0.75; neither LAYA nor TinyJev clears the CI rule; TinyJev's point estimate is below LAYA's; logistic ships.

How prediction 5 fared on SELECT: logistic came in at 0.545, below the predicted 0.65 to 0.75 (wrong). Neither head clears the CI rule (right). TinyJev's point estimate is above LAYA's, not below (wrong; the gap +0.085 has a CI that includes 0). Logistic ships (right).

Added 2026-11-11: a question-type lookup does better than every router here (exploratory, not preregistered). After this card was first written we computed, on the same 198 SELECT questions and the same label, the out-of-fold AUROC of a lookup that predicts the 8B reader's accuracy from the benchmark's own question-type field and nothing else. It scores 0.679, 95% CI [0.602, 0.755]. That is above TinyJev (0.601), logistic (0.545) and LAYA (0.517), and it uses no recall signal and no text head. The most plausible reading of TinyJev's margin over its shuffled control is therefore that the head learned the question type from the wording. We no longer read the TinyJev number as a recall signal that nearly worked. On the 34 questions that only the 14B reader answers correctly, the same lookup scores 0.533: type says where the 8B is right, not where the 14B rescues it. The same note estimates how high any router could score given label noise: about 0.91 to 0.94 on this label, so the 0.642 bar was reachable and the routers fell short of it for other reasons. The note, its script and its output are in the campaign's public evidence folder (label_ceiling.py, label_ceiling_select.json, Hugging Face commit 1d0be2e410b41e35a860ec5b8f2e23fddd5fd29e of flaukowski/kannaka-scientist-v1) and on the research ledger as record 01M74A904VQGNCW4M1ZKZVRVF5, filed before any CONFIRM answer was judged. The same lookup will be computed on CONFIRM by the same code.

Files in this repo

One folder per final model, pushed by run_folds_gpu.sh from the pod with upload_folder (*.private* and *.log excluded). The weights were hashed on the pod before the push; the hashes are the ledger's head-weight hashes.

folder family task contents
laya_router/ LAYA router the Laya agent directory of the final model (all SELECT rows)
laya_grounding/ LAYA grounding same
jev_router/ TinyJev router backbone/ (fp16 copy of the Qwen3-0.6B backbone with head.pt and the tokenizer inside it) and tinyjev/ (the tinyjev-v2 checkpoint made by tinyjev.convert.convert_kev) and train_meta.json (epochs, seed, learning rates, temperature, loss log, weight hashes)
jev_grounding/ TinyJev grounding same

WEIGHTS_SHA256SUMS (verbatim from the pod):

b4f5ca69382a11b0157fb050ced91ebe8e2dbab0e1aba38b794348eb987fe40e  ./jev_grounding/final/backbone/head.pt
1b195073f51d54b52c4b555a7b9307844a08b28c48ea5cad2f175d80b7023876  ./jev_grounding/final/backbone/model.safetensors
3bf98314fca45e73c08adb963832c2ccef9762749572d84db2159a0500702d71  ./jev_grounding/final/tinyjev/head.safetensors
1b195073f51d54b52c4b555a7b9307844a08b28c48ea5cad2f175d80b7023876  ./jev_grounding/final/tinyjev/model.safetensors
b202bfa951bcd43587bc63790d8cadff35b36f7fcc2c69835fb64c954e5b219a  ./jev_grounding/fold0/backbone/head.pt
6628e692cf5cc0619c86bee4e6b2999d79269ddb77bbcabf27c04f0cdee34bee  ./jev_grounding/fold1/backbone/head.pt
aaf4e7209bc281579c82f8aae0e73ab956adb4b3618760c0f8adb9b1c873dea0  ./jev_grounding/fold2/backbone/head.pt
e311f7c688742df654ff43cb0c346ca377bd5f000c946addcf4d5049a8aa7824  ./jev_grounding/fold3/backbone/head.pt
3f0a2852334ed343a4cf2227571288ca3f0dce5e4bdfba9271d80b2da79b58cb  ./jev_grounding/fold4/backbone/head.pt
b9cccd570fd923b822c933633efb7ca624c1e5bbd01fd835966cde0270a2e602  ./jev_grounding_ctrl/fold0/backbone/head.pt
436c0b6dcc7881b684a39caa37abb85da8740f83ba914b71a810b1ffb378c59e  ./jev_grounding_ctrl/fold1/backbone/head.pt
2c10c1af8adf765b437dde7824197cf81829187c23cfacd9ba01377818b7f91f  ./jev_grounding_ctrl/fold2/backbone/head.pt
9efc2a628cdf48aa94d86e6a0a8fb2cf8257def4f5da2eefc39dbd13bc216681  ./jev_grounding_ctrl/fold3/backbone/head.pt
4ce0945e307549cf3028b0c9446427d2ec7f239db2cac3c368c25dec66153870  ./jev_grounding_ctrl/fold4/backbone/head.pt
fa429abe9422b0f715d81d55e130c1e3b41b17a4c2bd47787e4fcd9142e83096  ./jev_router/final/backbone/head.pt
e87ae3ce1255004c4cc7a3895bf780c97c4c35c284be99e9acde017f83534fe3  ./jev_router/final/backbone/model.safetensors
3aa8bd658caa53bf1cb160252c29b6794af2a9c034e7ddfcfa5b6f56b80ae64d  ./jev_router/final/tinyjev/head.safetensors
e87ae3ce1255004c4cc7a3895bf780c97c4c35c284be99e9acde017f83534fe3  ./jev_router/final/tinyjev/model.safetensors
4800b1347945f1320986bd247b38634148a3bd06aa2e3a63698cd1344f7d4fc4  ./jev_router/fold0/backbone/head.pt
f1c9f2ab239de61e56da6a06eeeee79be2186ef48988d6c2483c2ad232da151e  ./jev_router/fold1/backbone/head.pt
00ac37500638d43d594d80fd8df235018885c7c1e6d95c541ff1acc9bf2f3d88  ./jev_router/fold2/backbone/head.pt
a9c65691a93f896ab4c7eaad660830ee2cf25f8b5ef355abe83f79f1d270bd0a  ./jev_router/fold3/backbone/head.pt
8fd68d0f3211b3357eabfba0d4d5c057d707e00d183f3a3c12daaa0f6ed79066  ./jev_router/fold4/backbone/head.pt
345e079542dc32bfb4f5995fec14c2f651ef29ce4f57834ec1a0a06f57a4a0d7  ./jev_router_ctrl/fold0/backbone/head.pt
d5c5b64f3c0fd9ed388e89a004b3f0c2d8bf8dcf82e9ddd53348298cef5e93d5  ./jev_router_ctrl/fold1/backbone/head.pt
71ce5e06957454a3f392c8b8c9892874a4242c4ddc051be2ec624e359b76f8d8  ./jev_router_ctrl/fold2/backbone/head.pt
aa77b90f47a88fdadf542e93b1bcf728eed578fc76b3dba4f852cb67ea6ad34e  ./jev_router_ctrl/fold3/backbone/head.pt
e7e2a716763417af150d81dbda64b7e555a3e1c9b6f67e8fe404aa9f5ac0ee13  ./jev_router_ctrl/fold4/backbone/head.pt
c6771c1b86793ee63cd33bb284c66ac5834a5336818a29247f6db76773d2f0e4  ./laya_grounding/final/model.safetensors
34508a40b2c060331b90fd78a1a2a055cdd44640acbde4f871206e34fa19b2aa  ./laya_grounding/fold0/model.safetensors
6f5bd17ce3de84bc47c61b745bc5b55d13b3510f412f784b5fc99ee85480450a  ./laya_grounding/fold1/model.safetensors
593e72bab3042824a0a72da206517d79e3290134ee200a62b01eb0c12b73ec20  ./laya_grounding/fold2/model.safetensors
491f043240cfb4d41e435057cd3f9c07c9f9cc54213552b604c9f87f54686ec5  ./laya_grounding/fold3/model.safetensors
8da9c4595e237a1cd156b6d5177072822b8e41db04750ca25609b75d70099393  ./laya_grounding/fold4/model.safetensors
8f855aa10de05db25dbec81d106927139d2ba451321b20bbdbae2c3a10b3c4bb  ./laya_grounding_ctrl/fold0/model.safetensors
c90eb4aa0fca4d2c3b000aa07cdac88f96014b631e7c73340e29eccd1b5a258a  ./laya_grounding_ctrl/fold1/model.safetensors
48e0f43ef102372296abf1e9c2860bdeb125481bbbc75eace0c20d1feb3f8505  ./laya_grounding_ctrl/fold2/model.safetensors
802156fcb5cf0c7e850aab4b53a1effade6cff5178396227d35c87ae14ecba3e  ./laya_grounding_ctrl/fold3/model.safetensors
734ad01bc4f2e24151870aea827353a221ae2ebfcb317016868dd881bc52db15  ./laya_grounding_ctrl/fold4/model.safetensors
c1d8069c1313d766ee686c4137141eed9167b52d4f9e9471581d8f7bd833f6c2  ./laya_router/final/model.safetensors
9230c905de143c4564c4d891e7c1c49a0dd6ac0dc25e9f6ff3d5caad79f40d3c  ./laya_router/fold0/model.safetensors
99fb67ac53f4971503e6542cfa5e28449d096641a69e66629df27b5f242989d3  ./laya_router/fold1/model.safetensors
5bc22b2cded21330ccb32bc4d53b3a98f3076b6b345b1be57ba3575fb4e6f111  ./laya_router/fold2/model.safetensors
802ff0163182b9ce7e93fc1ba02be2795addc2dacf64f2068eb46b03cdc9d105  ./laya_router/fold3/model.safetensors
0e87d3524608c97a5dd1f840aac6b0731e15e0d7f516fb22db6beb6c065c8d06  ./laya_router/fold4/model.safetensors
2f652c4326958502db24b66711dc92c5252a0aa962b197bc551e648946310f4f  ./laya_router_ctrl/fold0/model.safetensors
28bd46d106057503921c6b2d6c217418833fd056721584c4fb1368f492bcbf4d  ./laya_router_ctrl/fold1/model.safetensors
e1ce86a358c3150558033340b6d5307ef69eb7619132fbc2849c07b7d8a89de6  ./laya_router_ctrl/fold2/model.safetensors
48702d6138251a59635978b3f4895487317fd4897c69fb276702091dfb79db95  ./laya_router_ctrl/fold3/model.safetensors
e79ec7a84bf88c69293eacdf6217c72aa858c254af024592a92fbc1b23cc5904  ./laya_router_ctrl/fold4/model.safetensors

The list covers every weight file written on the pod, fold and control models included; only the */final/ lines correspond to folders in this repo.

Hugging Face commits (from hf_commits.json):

folder commit pushed (UTC)
jev_grounding/ 911adab8a6139612079842c828c9524254d4b4d3 2026-11-10T22:08:59Z
jev_router/ 1e9876f4743e5f64d4c9f06c313fc62c252780be 2026-11-10T22:09:04Z
laya_grounding/ 3198209f4152089676b36cf31c5a87af1abbb1b0 2026-11-10T22:09:10Z
laya_router/ 9cd21dd11225f88cf98a4f84a636c4ea404736a8 2026-11-10T22:09:15Z

To score new rows without training: laya_train_folds.py --score-only --model-dir laya_grounding --confirm-rows ROWS --export-confirm OUT.json --bench-repo <kannaka-bench checkout> and tinyjev_train.py --score-only --model-dir jev_grounding --confirm-rows ROWS --export-confirm OUT.json (CPU is fine; both record in their export a sha256 for every weight file they loaded, so the values can be checked against WEIGHTS_SHA256SUMS; the check itself is done by the operator before scoring). The trainers and the row builder are in repro/step5/heads_text/ of the dataset repo.

Compute

One qBraid GPU session, slug gpu-rtx-4090, ended 2026-11-10T22:09:25Z, 44 fine-tunes, estimated $0.685 from wall time (cap $4.00 at $0.87/h). Pod software: torch 2.6.0+cu124, transformers 5.22.2. Session record: gpu_session.json in the dataset repo.

Deviations

  • head family: the LAYA loader reported that the base checkpoint ships temperatures outside [0.5, 5] and clamped them on load (a RuntimeWarning in every LAYA fold log); no setting was changed by us
  • head family: the first two provisioning attempts for the GPU session (2026-11-10 21:16Z and 21:20Z) failed with no capacity before any instance existed; the one session that ran is the one in gpu_session.json
  • card: on the Hub each final model sits directly under its folder (laya_router/, jev_router/backbone/ and so on); WEIGHTS_SHA256SUMS lists the pod paths, where the same files are under <folder>/final/.
  • card: LICENSE and NOTICE were added to this repo with the card on 2026-11-10; the weights were public without a card or license file from 22:09Z until then.
  • card: the cost shown is usd_estimate_from_wall from gpu_session.json (2,833 s from preflight); the run log's billing window is 2,573 s, an estimate of $0.622.

What is not here

The training rows (question text, excerpt text, clear question ids), the verdict files, any model answer, and the SELECT/CONFIRM id lists. Published ids anywhere in this campaign are sha256(question_id) only. The CONFIRM feature matrix was published with the freeze (amendment 2), keyed by sha256(question_id); the heads' CONFIRM probabilities (heads_confirm_*.json) had not been exported when this card was written.

License

Space Child License v1.0 (LICENSE and NOTICE in this repo, identical to those of flaukowski/kannaka-scientist-v1). The LAYA base checkpoint and the Qwen3-0.6B-Base backbone keep their own licenses; flaukowski/tinyjev is MIT.

AI disclosure

This card, the trainers and the run script were written by Claude Code (Anthropic) in sessions run by the maintainer, who made the decisions recorded here. The campaign is preregistered on a public ledger so that the numbers can be checked against the hashes rather than taken on trust.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for flaukowski/ks-cascade-heads

Finetuned
(774)
this model

Dataset used to train flaukowski/ks-cascade-heads