nickypro commited on
Commit
7fdd13e
·
verified ·
1 Parent(s): 9972fff

Upload TAEBENCH_V2_DESIGN.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. TAEBENCH_V2_DESIGN.md +509 -0
TAEBENCH_V2_DESIGN.md ADDED
@@ -0,0 +1,509 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TAE-BENCH v2 — What it would mean to FULLY UNDERSTAND a text autoencoder
2
+ *Design doc, 2026-06-12. Successor to TAE-Bench v1 (`parascopes/layerwise/src/taebench.py`:
3
+ recon/causal/manifold/sparsity). Grounded in INTERP_RESULTS.md §10–14, QUESTIONS.md Q1–Q5,
4
+ PLANS_SCORED.md. Adversarially refereed (sub-agent critique integrated throughout).*
5
+
6
+ ---
7
+
8
+ ## 0. The framing: understanding as a CERTIFICATE, not a vibe
9
+
10
+ v1 measures *dictionary quality*. v2 measures *our understanding of SONAR itself*. The
11
+ difference: v1 asks "how good is this SAE?"; v2 asks "could we pass the exams that only
12
+ someone who understands the codec can pass?" Each criterion below guards against a specific,
13
+ already-observed failure mode of pseudo-understanding (the FVU lie, the read/write gap, the
14
+ DAS template artifact, seed-disjoint dictionaries). The capstone — not a suite, but the
15
+ north star — is the **clean-room test**: a team given only our written account (no weights)
16
+ should be able to predict, edit, construct, and re-implement a functionally matching codec.
17
+ Weights are not transmissible through prose, so this is the one test distillation can't game.
18
+
19
+ **Cross-cutting anti-gaming rules** (apply to every suite):
20
+ 1. **Compression budget.** Any learned predictor/constructor used to pass a suite has a hard
21
+ parameter budget (default ≤1% of the component it explains; "laws" ≤10 named parameters).
22
+ Otherwise "the weights themselves" pass everything. Report params alongside every score.
23
+ 2. **Frozen eval families.** Perturbation families, edit types, transfer targets are fixed
24
+ (or adversary-chosen) AFTER the interpretive account is written, never tuned against.
25
+ 3. **Honest ceilings/baselines everywhere.** Decoder-prior baseline (shuffled-z), corpus-prior
26
+ baseline, LLM-rewrite+re-encode ceiling, encoder round-trip ceiling — the battery's audits
27
+ showed every headline needs these (belief-state, DAS, steering all moved under them).
28
+ 4. **Impossibility clause.** A criterion can be passed by a *demonstrated structural
29
+ impossibility* (e.g. "no low-rank wording subspace exists — margin collapse 0.000 at every
30
+ rank, §14"). Understanding that the object LACKS asked-for structure is understanding —
31
+ the deepest kind. Without this clause, weakest-link scoring is hostage to category errors
32
+ about a holographic code.
33
+ 5. **Read/write separation.** Every claim is tagged READ (decodable from z) or WRITE
34
+ (controllable via z). The battery's single most replicated law is read ≫ write; a suite
35
+ that conflates them measures nothing.
36
+
37
+ **Aggregation.** Understanding Index = the full 7-vector, headline = min over criteria
38
+ (conjunctive: you don't understand a codec you can't edit), with the impossibility clause as
39
+ the escape valve. Mean is reported but never headlined — a mean lets the easy reading half
40
+ (probes ≈ .99) launder the failing writing half.
41
+
42
+ ---
43
+
44
+ ## PART 1 — THE SEVEN CRITERIA
45
+
46
+ Scores are 0–1: (current best − baseline)/(ceiling − baseline), my calibrated judgment from
47
+ §10–14 evidence cited inline.
48
+
49
+ ### (A) PREDICT — simulate the decoder from z without running it. **Current ≈ 0.35**
50
+ **What:** given z (plus our interpretive features: probes, SAE codes, spectral coords), and
51
+ optionally a perturbation δ, predict what the decoder will emit — attributes, fidelity,
52
+ degeneracy, per-token reliance on z, collapse behavior — under a parameter-budgeted
53
+ predictor, better than corpus priors, approaching decode-then-measure.
54
+ **Why it matters:** prediction-without-simulation is the canonical operationalization of
55
+ having a *causal model* rather than a copy. An interpretation that doesn't constrain the
56
+ decoder's behavior is post-hoc storytelling. The budget clause is essential: an unbounded
57
+ predictor is just a distilled second decoder (refereed objection #1).
58
+ **Have:** qualitative laws — decoder fills function words (AtP 1.37×, §10), n_sentences is
59
+ THE lossy attribute (§10), language fingerprint decode-inert (§12), dose→grapheme-attractor
60
+ census with per-feature collapse doses (§10), noise robustness curves, attr probes ~.99 READ.
61
+ **Gap:** all of it is retrodictive. Nobody has forecast a decode outcome ex ante; no
62
+ quantitative simulator; perturbation responses only catalogued, never predicted on held-out
63
+ directions.
64
+ **Closes it:** a ≤10-param law per phenomenon + a budgeted forecaster hitting ≥80% of
65
+ explainable variance on FROZEN held-out perturbation families.
66
+
67
+ ### (B) DECOMPOSE — z as interpretable parts; reassembly lossless; parts dual-use. **Current ≈ 0.45**
68
+ **What:** an inventory z = Σ parts + characterized residual, where parts are (i) labeled and
69
+ detection-validated, (ii) canonical across seeds, (iii) aligned with what the decoder
70
+ actually reads (Jacobian coverage), (iv) reassembly reproduces the TEXT (CE/exact-match, not
71
+ just SBERT), and (i)–(iv) hold for the SAME inventory — each is separately purchasable and
72
+ separately worthless (refereed objection: identity map is lossless+canonical; L2 dial buys
73
+ canonicity without coverage).
74
+ **Have:** behavioral recon .89 SBERT / .92 attr (text-loss SAE, §10–11); canonicity is now a
75
+ recipe (l2≈1e-3, k256 → 96.7% aligned at FVU .435, §12); dark matter is structured (error
76
+ term recovers 64% of decode gap, §10); detection-scored labels .66–.78.
77
+ **Gap:** the *same* dictionary never has all four: Jacobian coverage stuck at 18.5% ≈ random
78
+ (triple-confirmed, §10); features aren't compositional atoms (17% survival under composition,
79
+ §12); no losslessness standard exists — everything scored in SBERT, never in nats/exact text.
80
+ **Closes it:** one dictionary passing canonicity ≥.9 AND coverage ≥2.5× random AND reassembly
81
+ within 0.15 nats of the encode→decode ceiling AND labels ≥.7 detection — or an impossibility
82
+ argument for whichever conjunct the hologram forbids.
83
+
84
+ ### (C) EDIT — any specified text edit via in-z operations, bounded collateral. **Current ≈ 0.40**
85
+ **What:** an edit calculus: spec → Δz built from documented parts (NO re-encoding the target
86
+ text — that's the rewrite pipeline, which passes with zero understanding), scoring both
87
+ edit-success and collateral damage to everything else, on WILD text, generalizing to held-out
88
+ edit types.
89
+ **Why:** edit is where read/write conflation dies or survives. Reading is solved; if our
90
+ parts can't be used as levers with predictable side effects, we've labeled the code without
91
+ understanding its causal grammar. Caveat honestly: edit failure can be a fact about the
92
+ channel (decoder error-correction regenerates erased attributes, §10) — that's what the
93
+ impossibility clause + regeneration tests are for.
94
+ **Have:** word-swap arithmetic verified (88% global / 67% position-matched, §12); gradient
95
+ surgery 100% success at ‖Δz‖≈0.2 RMS but directions are LOCAL (cos .17–.35 across bases,
96
+ §10); steering 0/6 vs rewrite Pareto (§10); rank-1 DAS dead in the wild (0%, §14); erasure
97
+ incomplete for nonlinearly-stored attrs (§10).
98
+ **Gap:** no standardized edit suite, no collateral metric at all (v1's biggest hole), no
99
+ transport rule for local edit directions, no held-out-edit-type generalization test.
100
+ **Closes it:** an in-z method matching the rewrite Pareto frontier on ≥5/10 frozen edit types
101
+ at collateral ≤ rewrite's, including ≥2 edit types never seen during method development.
102
+
103
+ ### (D) CONSTRUCT — synthesize z from a spec at encoder quality, white-box. **Current ≈ 0.30**
104
+ **What:** spec (word sequence / attribute set + content words / parts inventory) → ẑ whose
105
+ decode satisfies the spec at ≥0.9× the encoder's own round-trip quality — with the
106
+ constructor assembled from the *documented* operators (role rotations, size-adder PC0 law,
107
+ scaffold + retraction), under a near-zero learned-capacity budget, extrapolating to longer
108
+ and unseen-combination specs. A black-box GRU at encoder quality only proves the encoding is
109
+ learnable — known — not that we know what it is (refereed objection #4).
110
+ **Why:** Feynman's criterion. Construction is the only test that catches one-way
111
+ understanding: every holographic claim, order-code claim, and content-mass claim becomes
112
+ load-bearing when you must BUILD the vector.
113
+ **Have:** GRU constructor recall .31 / order τ .75 / cos .655 vs ceiling .96 (§14) — order is
114
+ SOLVED (shuffled-input control dissociates), content mass is the wall; normalized bag .31
115
+ SBERT .44; composition operator fully characterized and invertible (§12–13); word-folding
116
+ through the composer transmits order τ .92 but attenuates content (§14).
117
+ **Gap:** 3× below ceiling on content; no white-box constructor exists; no spec-bandwidth
118
+ accounting (how much structure must the spec supply — Q5's core question).
119
+ **Closes it:** a constructor from documented parts at recall/SBERT ≥0.9× ceiling, plus the
120
+ measured bits-of-structure curve.
121
+
122
+ ### (E) MECHANISM — how the encoder builds and the decoder reads each part. **Current ≈ 0.45**
123
+ **What:** a causal account of (i) pooling: which token-state properties determine pooled-z
124
+ behavior, predicting ablation outcomes ex ante; (ii) the decoder's readout: which
125
+ layers/heads read which z-subspaces for which token types, validated by targeted ablation
126
+ matching prediction; (iii) replaceability: modules rebuilt from the account (transcoders)
127
+ swap in with bounded behavioral loss; (iv) where the order/position code arises in the
128
+ encoder stack. Validation must be causal-scrubbing-grade on the natural distribution, not
129
+ cherry-picked templates (the DAS lesson).
130
+ **Why:** input-output laws without internals break OOD silently; mechanism is what makes
131
+ PREDICT extrapolate and EDIT transportable. "Understood = replaceable" is the strongest
132
+ mechanical standard available.
133
+ **Have:** pooling = masked mean, verified cos>0.999 (`sonar_prepool`); token states = lexical
134
+ ID 75% + position R² .88 (§14); pooling holographic (1-token ablation deletes the word only
135
+ 4–6%, §14); content = first ~256 spectral dims (§14); decoder cross-attn = near-full-rank
136
+ readers off the PCs (§12, weight-SVD, confirming AtP); mid-layer transcoders FVU .32–.33,
137
+ layers 0/23 near-linear (§10); attractor census (descriptive).
138
+ **Gap:** no account predicts WHICH ablation case occurs; transcoders never tested as
139
+ replacements (behavioral retention unknown); no per-head readout map; no story for how
140
+ encoder attention assembles the order rotation; attractor basins unexplained.
141
+ **Closes it:** ablation-outcome prediction ≫ base rate, a per-head map validated by
142
+ intervention, ≥1 decoder layer behaviorally replaced by its transcoder at ≤5% SBERT loss.
143
+
144
+ ### (F) TRANSFER — everything above survives language/domain/seed/template shift. **Current ≈ 0.55**
145
+ **What:** the other six criteria re-scored under shift: languages (incl. non-Latin),
146
+ domains/registers (code, dialogue, markup, long text), dictionary seeds, and — the killer —
147
+ template-vs-wild. Targets chosen after methods are frozen.
148
+ **Why:** the battery's audits show distribution shift is THE claim-killer (multiclass DAS
149
+ reversed under held-out values; rank-1 tense dial 0% wild; seed-disjoint dictionaries). A
150
+ result that holds only on its training template is a description of the template.
151
+ **Have:** strongest result in the program — 18/18 feature×language transfers, 10 languages,
152
+ 4 scripts (§10); composer language-robust (96% of monolingual, §12); soft-pivot decode
153
+ mechanics (§10); canonicity dial makes seed transfer purchasable (§12).
154
+ **Gap:** the BENCH itself is English-paragraph-shard-40 only; edits/construction/prediction
155
+ never scored under any shift; no adversarial/off-manifold z family.
156
+ **Closes it:** the v2 core suites run on ≥3 languages + 2 domains + 2 seeds with ≤20%
157
+ degradation, template-vs-wild gap reported on every causal number.
158
+
159
+ ### (G) CALIBRATE — know what we don't know, and predict failures ex ante. **Current ≈ 0.25**
160
+ *(New criterion, from the adversarial review: the hexad let us pass while the dark matter is
161
+ load-bearing — the 81.5% of the decoder's sensitivity subspace our dictionaries miss IS what
162
+ the decoder reads.)*
163
+ **What:** (i) a signed dark-matter ledger: % of behavioral (decoder-CE) variance attributed
164
+ per named part, with the residual located (spectral region, MELBO directions) and tracked
165
+ release-over-release; (ii) ex-ante failure forecasting: before each new suite runs, written
166
+ predictions of outcomes with confidences, Brier-scored.
167
+ **Why:** a claimed understanding with unaccounted residual is exactly how the FVU lie
168
+ happened. And predicting successes is cheap — predicting the .31 recall wall *before*
169
+ measuring it is what understanding feels like from the inside.
170
+ **Have:** dark-matter accounting exists (24.5% of SAE error linearly predictable; structured
171
+ term recovers 64% of decode gap, §10); MELBO finds dictionary holes (§10); dose census. All
172
+ retrodictive.
173
+ **Gap:** no ledger is maintained; no forecast has ever been registered and scored.
174
+ **Closes it:** ledger ≥80% of decoder-CE variance attributed to named parts; forecast Brier
175
+ beating an uninformed-prior forecaster on a season of suites.
176
+
177
+ ---
178
+
179
+ ## PART 2 — THE v2 SUITES (criterion → aspects → protocols)
180
+
181
+ Format per aspect: WHY (certification argument) · HOW (protocol ≤5 sentences) · metric /
182
+ baseline / ceiling / pass · cost · **[TONIGHT]** = implementable now with `sonar_prepool.py`,
183
+ `sonar_grad.py` (SonarDecoderCE: text_to_ids, differentiable ce_loss), `taebench.py` harness,
184
+ `tae_probe` attributes, dose-response census artifacts, data_v2 (834k sentences + fr/de/zh
185
+ parallel), trained transcoders, GRU constructor.
186
+
187
+ Shared fixtures: eval shard 40 + data_v2 held-out chunk, seeds {0,1}, N=150–500 texts,
188
+ SBERT all-MiniLM-L6-v2, attr battery from `tae_probe`, leaderboard row schema extended with
189
+ `suite_version: 2`.
190
+
191
+ ### A. PREDICT suite
192
+
193
+ **P1 — Blind decode forecasting. [TONIGHT]**
194
+ WHY: the minimal honest version of "simulate the decoder": if our reading of z (probes +
195
+ SAE code + spectral stats) can't say what text properties come out, the reading is
196
+ decorative. The budget cap (linear/GBM ≤50k params over interpretive features, never raw-z
197
+ MLPs) blocks the distillation exploit; the frozen split blocks tuning-to-eval.
198
+ HOW: for 500 held-out z, compute interpretive features (12 attr probes, SAE acts, spectral
199
+ band energies, ‖z‖, fingerprint). Fit budgeted predictors of the DECODE's properties:
200
+ each attribute, SBERT-to-source, degeneracy, length. Evaluate on a frozen 500-z test split;
201
+ compare per-target against corpus-prior baseline and against decode-then-measure (ceiling).
202
+ METRIC: mean fraction-of-explainable-variance (FEV) captured. BASELINE: corpus prior (~0).
203
+ CEILING: 1.0. PASS: FEV ≥ .8. COST: ~1 A40-h (decodes) + CPU.
204
+
205
+ **P2 — Perturbation-response forecasting. [TONIGHT]**
206
+ WHY: counterfactual depth — predicting what the decoder does to z+δ *without decoding* is
207
+ the difference between a catalogue and a theory; the dose-response census (64 features, 3
208
+ regimes, per-feature letter attractors) is sitting there as training data and has never been
209
+ asked to generalize. Held-out DIRECTION FAMILIES (not just held-out features) are the
210
+ anti-gaming constraint.
211
+ HOW: from census + direction-zoo artifacts, fit a budgeted classifier {no-change /
212
+ semantic-edit / attractor-collapse} + regressors (collapse dose, decode-SBERT drop) from
213
+ direction features only (norm, spectral profile, SAE/PC/grad-family alignment, manifold
214
+ survival). Evaluate on held-out feature directions AND two unseen families (fresh MELBO
215
+ directions, random tail-band directions); decode to verify. Report acc/MAE vs base-rate and
216
+ family-permuted baselines.
217
+ METRIC: 3-class acc + dose MAE. BASELINE: base rate (~.55 acc). CEILING: test-retest of the
218
+ census itself. PASS: acc ≥ .75 AND beats base rate on unseen families. COST: ~2 A40-h.
219
+
220
+ **P3 — z-reliance law (per-token).**
221
+ WHY: "the decoder reads content words 1.37× harder" is a correlation; understanding means a
222
+ stated ≤10-parameter formula (token frequency, POS class, position, length) that predicts
223
+ the per-token gradient attribution profile of UNSEEN sentences — a law, not a learned blob.
224
+ HOW: compute AtP per-token attributions (`sonar_grad`) on 300 sentences; fit the ≤10-param
225
+ formula on 150, test rank-correlation per sentence on the rest; ablation-validate on 20
226
+ sentences by checking that high-law tokens are the ones whose z-information (Q3-020 style
227
+ prepool deletion) moves decode CE most.
228
+ METRIC: mean Spearman ρ. BASELINE: uniform/length-only (~.2). CEILING: attribution
229
+ test-retest (~.9). PASS: ρ ≥ .7. COST: ~2 A40-h. [partial tonight — AtP exists, deletion arm new]
230
+
231
+ ### B. DECOMPOSE suite
232
+
233
+ **D1 — Lossless reassembly round-trip. [TONIGHT]**
234
+ WHY: v1 scores reconstruction in SBERT — meaning-similarity — but §14 proved z is a
235
+ transcript; the honest losslessness unit is nats of teacher-forced CE / exact text. This is
236
+ the round-trip test of whether our parts inventory IS the vector or merely gestures at it,
237
+ with the residual term forced into the open (ledger input for G).
238
+ HOW: decompose each held-out z as SAE reconstruction + structured-error term (darkmatter
239
+ predictor) + documented residual; reassemble at each truncation level (SAE only / +error /
240
+ +residual). Score teacher-forced CE to the ORIGINAL text (`SonarDecoderCE`), exact-match and
241
+ charF of greedy decodes, vs the encode→decode ceiling (CE ≈ .22, §14) and a
242
+ paraphrase-of-source floor (CE ≈ 1.25).
243
+ METRIC: ΔCE-to-ceiling (nats/token). BASELINE: paraphrase floor (≥1.0 over ceiling).
244
+ CEILING: 0. PASS: ≤ .15 nats with all named parts. COST: ~1 A40-h.
245
+
246
+ **D2 — Dual-use parts (canonicity × coverage × labels, one dictionary). [TONIGHT]**
247
+ WHY: each sub-virtue is independently purchasable and independently worthless (L2 buys
248
+ canonicity, k buys recon, text-loss buys behavior — and coverage stayed at chance through all
249
+ of it). Only the conjunction on a single inventory certifies "these are the parts." This is
250
+ also where the impossibility clause may legitimately fire — the hologram might forbid the
251
+ conjunction, and proving that is a pass.
252
+ HOW: for each benched dictionary run the existing three measurements as ONE row: PW-MCC
253
+ across 2 seeds (no shared data, no post-hoc rotation), Jacobian sensitivity coverage
254
+ (`tae_jacobian_audit`) vs random-feature control, detection-scored labels (flipbook, α=20)
255
+ on the SAME features. Score = min of the three normalized sub-scores.
256
+ METRIC: min(canonicity, coverage/2.5×random, detection/.7). PASS: min ≥ 1, i.e. ≥.9 / ≥2.5×
257
+ / ≥.7. BASELINE: current best joint ≈ (.97, 1.0×, .66) — fails on coverage. COST: ~3 A40-h.
258
+
259
+ **D3 — Part compositionality. [TONIGHT]**
260
+ WHY: parts that don't survive composition aren't parts of the CODE, they're features of one
261
+ distribution slice — and §12 measured exactly this (17% survival, additivity R² .38–.60,
262
+ Matryoshka best). v2 promotes it from a finding to a standing score so dictionary training
263
+ can optimize for it.
264
+ HOW: for 500 (A,B) pairs, compose via the trained operator and via real encode of "A then
265
+ B"; measure feature survival, union Jaccard, and held-out activation additivity R² for the
266
+ benched dictionary; report against the Matryoshka-k128 reference (.60) and flat-k128 (.38).
267
+ METRIC: additivity R². PASS: ≥ .8. COST: <1 A40-h (embeds cached).
268
+
269
+ **D4 — Decomposition of the WORDING code (or its impossibility certificate).**
270
+ WHY: §14's deepest result — wording is in z at 1.2–1.5 nats but in NO low-rank subspace —
271
+ is currently a negative; the criterion needs it as a scored boundary: either some nonlinear/
272
+ local-frame decomposition isolates wording from meaning, or we certify the impossibility
273
+ with a tight bound (the escape-clause pass).
274
+ HOW: take length-matched paraphrase pairs (Q3-009 hygiene); attempt wording/meaning split
275
+ with the best available tools (local PCA frames, SSAE shift dictionaries, gradient
276
+ subspaces); score the CE wording-margin retained after removing the candidate wording
277
+ component while SBERT meaning stays ≥.9. Sweep rank/locality; the impossibility certificate
278
+ is the measured margin-retention curve pinned at ~0 across all methods.
279
+ METRIC: margin removed at meaning ≥.9. PASS: ≥80% removed, OR certified flat curve across ≥3
280
+ method families. COST: ~3 A40-h. [partial tonight]
281
+
282
+ ### C. EDIT suite
283
+
284
+ **E1 — Edit precision with collateral (flagship; v1's biggest hole). [TONIGHT]**
285
+ WHY: v1's causal suite scores potency×coherence — it literally cannot see side effects, and
286
+ read≫write means side effects are where understanding fails. A standardized edit-spec suite
287
+ with a collateral score and the rewrite Pareto ceiling turns "can we edit" into one number,
288
+ and the held-out-edit-type split tests the calculus, not the memorized direction.
289
+ HOW: 10 frozen edit types (word-swap, tense, person, negation, number-change, entity-swap,
290
+ register, insert-clause, delete-clause, reorder) × 50 WILD bases each; methods = arithmetic
291
+ delta, diff-of-means, gradient surgery (`sonar_grad`), feature steering — in-z only, no
292
+ re-encoding of any target text. Edit-success = LLM-judge + regex on the specified change;
293
+ collateral = 1 − (token-F1 on unchanged spans) combined with drift on the 11 untargeted
294
+ attributes. Report exact-edit@collateral≤.1 per type and the Pareto AUC vs LLM-rewrite+
295
+ re-encode; 2 of the 10 types are held out from all method development.
296
+ METRIC: mean exact-edit@collateral≤.1. BASELINE: random-direction edit (~0). CEILING:
297
+ rewrite pipeline (~.85). PASS: ≥.6 incl. held-out types. COST: ~4 A40-h + LLM-judge calls.
298
+
299
+ **E2 — Erasure completeness with regeneration audit. [TONIGHT]**
300
+ WHY: "erasure ≠ removal" (§10) is the cleanest demonstration that probe-space success can be
301
+ behaviorally void — the decoder regenerates attributes from nonlinear traces. A standing
302
+ score with the re-encode→re-decode regeneration test certifies WRITE-removal, not READ-removal,
303
+ and bounds what the channel's error-correction allows (impossibility clause eligible).
304
+ HOW: for each erasable attribute, apply best-known erasure (LEACE + iterated variant);
305
+ measure attribute presence in the decode, then re-encode the decode and decode again
306
+ (regeneration probe), with content-SBERT ≥.9 required throughout. Score = post-regeneration
307
+ absence rate, against the do-nothing baseline and a rewrite-erasure ceiling.
308
+ METRIC: regeneration-proof removal rate at content ≥.9. PASS: ≥.8 per attribute or certified
309
+ channel-regeneration bound. COST: ~1.5 A40-h.
310
+
311
+ **E3 — Edit transport across bases.**
312
+ WHY: gradient surgery succeeds per-instance but its directions are local (cos .17–.35) —
313
+ so we currently possess edit *instances*, not an edit *calculus*. A transport rule (local
314
+ frame map / parallel transport along the manifold) recovering most of per-base success is
315
+ exactly what upgrades the local-frames picture from descriptive to operational (Q4-003).
316
+ HOW: compute minimal edit Δz at 30 source bases per edit type; transport each to 10 target
317
+ bases via (i) naive copy, (ii) local-PCA frame alignment, (iii) learned budgeted transport
318
+ map; score edit-success and collateral at targets vs per-base recomputation (ceiling).
319
+ METRIC: transported/recomputed success ratio. BASELINE: naive copy (low). PASS: ≥.7.
320
+ COST: ~3 A40-h. [not tonight — transport machinery is new]
321
+
322
+ ### D. CONSTRUCT suite
323
+
324
+ **C1 — Construction vs spec. [TONIGHT]**
325
+ WHY: certifies the Feynman criterion at the system level: a spec→z→text pipeline scored
326
+ against what the encoder itself achieves makes every claimed piece of knowledge (order code,
327
+ content mass, scaffold) load-bearing. v1 has no construction suite at all; the GRU
328
+ constructor and the bag ladder already exist as the first two leaderboard rows.
329
+ HOW: 300 frozen specs in three formats (word sequence; attribute-set + content words; parts
330
+ inventory). Run each registered constructor; decode; score word recall, order τ,
331
+ attr-satisfaction, SBERT to a reference rendering, degeneracy. Ceiling = encode(reference
332
+ text) round-trip; baseline = normalized bag-of-word-vectors (.31/.44).
333
+ METRIC: composite (recall, τ, attr, SBERT) vs ceiling ratio. PASS: ≥.9× ceiling. CURRENT:
334
+ GRU ≈ .4–.5×. COST: ~1 A40-h per constructor.
335
+
336
+ **C2 — Spec bandwidth (minimal structure curve). [TONIGHT]**
337
+ WHY: Q5's actual question is not "can a net do it" but "HOW MUCH structure must be
338
+ supplied" — the bits-of-structure curve is the quantitative form of the transcript thesis
339
+ (if z is a transcript, order+length scaffolding should be worth more than better word
340
+ vectors, which §14 already hints at).
341
+ HOW: re-run C1 with spec ablations: shuffled order, dropped function words, no length,
342
+ quantized word vectors; measure degradation per ablation; express as marginal value per
343
+ structure channel. Deliverable = the curve + the single number "minimum spec achieving .8×
344
+ ceiling".
345
+ METRIC: the curve (descriptive) + min-spec point. PASS: n/a (measurement aspect). COST:
346
+ ~1.5 A40-h.
347
+
348
+ **C3 — White-box constructor from documented operators.**
349
+ WHY: the anti-gaming heart of CONSTRUCT — assemble z using only the account's published
350
+ machinery (role-rotation composer, PC0 size-adder, scaffold templates, retraction onto local
351
+ frames; learned glue ≤100k params) and require extrapolation (longer specs, unseen attribute
352
+ combinations) where a memorizing constructor fails. Passing this approaches the clean-room
353
+ capstone for the encoder side.
354
+ HOW: implement spec→z as: embed words, fold via the trained composition operator with
355
+ documented depth-decay compensation, add size/attr offsets from the documented dials,
356
+ retract onto the local manifold frame (Q5-021 recipe); evaluate on C1's frozen specs PLUS an
357
+ extrapolation split (1.5× length, novel attr pairs). Compare to the black-box GRU at matched
358
+ score.
359
+ METRIC: C1 composite + extrapolation ratio (extrap/in-dist ≥ .8). PASS: ≥ GRU at ≤1/10 its
360
+ learned params, extrapolation holds. COST: ~4 A40-h. [not tonight — research]
361
+
362
+ ### E. MECHANISM suite
363
+
364
+ **M1 — Pooling accounting. [TONIGHT]**
365
+ WHY: we know the pooling op exactly (masked mean, verified) and know ablation outcomes are
366
+ trimodal (4–6% clean delete / 78% no-change / global perturbation, §14) — but no account
367
+ predicts WHICH outcome a given token yields. A predictive accounting of the hologram's
368
+ entry point is the first mechanism number the bench can hold us to, using machinery
369
+ (`pool_ablate`) that already exists.
370
+ HOW: for 200 sentences × all tokens, run `pool_ablate` + decode, label each token's outcome
371
+ class; fit a budgeted (≤10-feature) predictor from token-state properties (norm, ID
372
+ frequency, position, content/function class, state–z cosine); test on 100 held-out
373
+ sentences; report confusion vs base rate.
374
+ METRIC: 3-class balanced acc. BASELINE: base rate (~.33 balanced). CEILING: label
375
+ test-retest. PASS: ≥.6 balanced. COST: ~2 A40-h.
376
+
377
+ **M2 — Decoder readout map (per-head cross-attention accounting).**
378
+ WHY: "the decoder reads broadly, off the PCs" (§12 weight-SVD + AtP) is an aggregate; a
379
+ mechanism account must say WHICH heads read WHICH z-subspaces for WHICH token classes, and
380
+ be validated by intervention — predicted head importance must match ablation-measured
381
+ importance, the causal-scrubbing standard the referee demanded.
382
+ HOW: per-head AtP attribution of z-gradient flow across decoder cross-attn (extend
383
+ `sonar_grad` hooks); build the head×subspace×token-class map; pick the top-k and bottom-k
384
+ heads per claim and ablate them, measuring CE/SBERT damage; score rank-correlation of
385
+ predicted vs measured damage across heads.
386
+ METRIC: Spearman ρ predicted-vs-ablated. BASELINE: 0. PASS: ≥.7. COST: ~4 A40-h.
387
+ [partial tonight — hooks are new code]
388
+
389
+ **M3 — Replacement test (transcoder swap). [TONIGHT]**
390
+ WHY: "understood = replaceable" is the strongest mechanical certificate that survives the
391
+ narrative objection — a module rebuilt from the account either carries the behavior or it
392
+ doesn't. The transcoders are TRAINED (FVU .32–.33 mid, .005–.015 ends) but have never been
393
+ behaviorally swapped in; this is free signal sitting on disk.
394
+ HOW: replace decoder FFN layers with their transcoders, one layer at a time then cumulative
395
+ {0,23} / {6} / {6,12,18} / all-5; decode 300 held-out texts; score SBERT, attr preservation,
396
+ degeneracy vs the intact decoder; report behavioral-retention per layer against an
397
+ FVU-matched random-projection control.
398
+ METRIC: SBERT retention. BASELINE: random-proj control. CEILING: 1.0. PASS: ≥.95 single
399
+ mid-layer, ≥.85 all-5. COST: ~2 A40-h.
400
+
401
+ **M4 — Encoder assembly account (where the order code arises).**
402
+ WHY: everything so far reads the encoder's OUTPUT; mechanism requires knowing where in the
403
+ stack the position/order code (R² .88 at the top) is assembled and verifying causally by
404
+ cross-layer patching — without it, CONSTRUCT-side claims about scaffolds are unanchored
405
+ (Q3-033 + patch arm).
406
+ HOW: capture encoder hidden states at every layer (extend `sonar_prepool` hooks); probe
407
+ token-ID/position/order per layer to find the assembly depth profile; then patch order-
408
+ carrying components from a scrambled sentence's layer-l states into the original and test
409
+ whether the decode follows the donor order (the §14 scramble readout as the behavioral
410
+ verdict).
411
+ METRIC: layer profile + patch flip rate. PASS: identified layer band with patch flip ≥.6.
412
+ COST: ~4 A40-h. [not tonight — capture is new]
413
+
414
+ ### F. TRANSFER suite
415
+
416
+ **T1 — Language battery. [TONIGHT]**
417
+ WHY: the bench is English-only while the program's strongest claim (18/18 feature-language
418
+ transfers) is multilingual — and the soft-pivot + re-encode-tax findings (§10) predict
419
+ WHERE degradation should appear (re-encode-heavy suites suffer in ja/zh), making this a
420
+ prediction test too (feeds G2).
421
+ HOW: run the v2 core (D1 reassembly, E1 edits on 3 edit types, P1 forecasting, C1
422
+ construction) on the fr/de/zh parallel chunks in data_v2; score the per-suite degradation
423
+ ratio vs English; compare against the re-encode-tax prediction.
424
+ METRIC: mean degradation ratio. PASS: ≤20% drop (fr/de), documented + predicted gap for zh.
425
+ COST: ~3 A40-h.
426
+
427
+ **T2 — Domain & wild-shift battery + template-vs-wild gap. [partial TONIGHT]**
428
+ WHY: every reversed claim in the program died at this boundary (multiclass DAS, rank-1 tense
429
+ dial) — so v2 makes the template-vs-wild GAP a first-class reported number on every causal
430
+ score, and adds code/dialogue/markup/long-text domains where the length-PC0 and markup-PC1
431
+ structure predict specific failures.
432
+ HOW: mint 4 domain eval sets (200 texts each); run D1/E1/P1; additionally re-score every E1
433
+ edit type on its development templates vs wild bases and report the paired gap. Adversary
434
+ (or a held-out collaborator) picks one extra domain after methods freeze.
435
+ METRIC: degradation ratios + per-claim template-wild gap. PASS: gap ≤.15 on passing claims.
436
+ COST: ~3 A40-h.
437
+
438
+ **T3 — Seed & dictionary transfer. [TONIGHT]**
439
+ WHY: seed-disjointness (match cos .149) means any dictionary-dependent score might be a fact
440
+ about one draw; v2 requires every dictionary-dependent row to carry its cross-seed spread,
441
+ and tests whether EDITS and PARTS transport across seeds (attribute-level rescue, Q2-007) —
442
+ cheap, and it operationalizes "frames, not atoms" as a measured penalty.
443
+ HOW: run D2/D3/E1-feature-steering with both seeds of the benched dictionary (canonical
444
+ recipe + unregularized control); report per-score spread; for 20 labeled features, test
445
+ whether the cross-seed matched feature performs the same edit.
446
+ METRIC: cross-seed score spread + edit-transport rate. PASS: spread ≤10%, transport ≥.7 for
447
+ canonical-recipe dictionaries. COST: ~2 A40-h.
448
+
449
+ ### G. CALIBRATE suite
450
+
451
+ **G1 — Dark-matter ledger. [TONIGHT]**
452
+ WHY: the review's sharpest point — the hexad could be passed while the unexplained 81.5% of
453
+ the decoder's sensitivity subspace does the real work. A signed, versioned ledger (% of
454
+ decoder-CE variance attributed per named part; residual located by spectral region and
455
+ MELBO-direction overlap) makes ignorance a tracked quantity that must shrink release over
456
+ release, like a test-coverage number.
457
+ HOW: on 500 held-out z, attribute decoder-CE variance to: SAE part, structured-error part,
458
+ fingerprint, scaffold/length, residual (via nested-ablation deltas with the D1 machinery);
459
+ locate the residual (band energies, cos to MELBO set); publish as a leaderboard artifact
460
+ with version + date.
461
+ METRIC: % behavioral variance attributed. BASELINE: SAE-only (~64% of decode gap, §10).
462
+ PASS: ≥80% attributed, residual located. COST: ~1.5 A40-h (rides on D1).
463
+
464
+ **G2 — Registered failure forecasts.** [process, free]
465
+ WHY: predicting the .31 recall wall before measuring it is what understanding feels like;
466
+ Brier-scoring our own pre-registered forecasts on each new suite is the cheapest possible
467
+ test of whether the account has counterfactual depth — and it generates the frozen-eval
468
+ discipline rule 2 requires.
469
+ HOW: before each v2 suite first runs, write 5–10 quantitative predictions with confidence
470
+ intervals into a FORECASTS.md (e.g. "M3 single-mid-layer retention .93±.03", "T1 ja
471
+ re-encode-tax suites drop ≥30%"); score Brier/coverage after; the running score is a
472
+ leaderboard row of the ACCOUNT itself.
473
+ METRIC: Brier vs uninformed-prior forecaster. PASS: beat it over a season. COST: ~0.
474
+
475
+ ---
476
+
477
+ ## 3. Scoring & leaderboard schema
478
+
479
+ - Each aspect → normalized 0–1: (score − baseline)/(ceiling − baseline), clamped.
480
+ - Criterion score = min over its aspects (impossibility certificate ⇒ that aspect = 1.0 with
481
+ flag `certified_impossible`).
482
+ - **Understanding Index = the 7-vector; headline = min.** Current estimated vector:
483
+ PREDICT .35 · DECOMPOSE .45 · EDIT .40 · CONSTRUCT .30 · MECHANISM .45 · TRANSFER .55 ·
484
+ CALIBRATE .25 → **headline ≈ 0.25 (CALIBRATE-bound), honest "we ~quarter-understand SONAR."**
485
+ - Leaderboard: extend `taebench_leaderboard.json` rows with `suite_version: 2`, per-aspect
486
+ fields, params-budget fields, and the forecast Brier row. v1 suites keep running unchanged
487
+ (they remain the dictionary-quality lane; v2 is the understanding lane).
488
+
489
+ ## 4. Implementation order
490
+
491
+ **Tonight (existing tools, ~12 A40-h total, all [TONIGHT]-flagged):**
492
+ 1. **E1 edit-precision+collateral** — the single biggest v1 hole; word-swap/diff-means/
493
+ gradient-surgery code all exist; new code = collateral scorer + spec runner.
494
+ 2. **D1 lossless reassembly (CE units)** — `SonarDecoderCE` + darkmatter predictor exist;
495
+ establishes the nats-based losslessness standard and feeds G1 directly.
496
+ 3. **P2 perturbation forecasting** — census artifacts are training data on disk; pure CPU
497
+ fit + ~2h decode verification; first-ever ex-ante prediction number.
498
+ 4. **C1+C2 construction-vs-spec + bandwidth** — GRU + bag baselines become leaderboard rows;
499
+ spec ablations are config, not code.
500
+ 5. **M1 pooling accounting / M3 transcoder swap** — `pool_ablate` and trained transcoders
501
+ are idle capability; both are ≤2 A40-h each.
502
+ Then G1 (rides on D1), T3, T1, P1, D2, D3, E2, G2 (free), T2.
503
+ **Next wave (new machinery):** P3, D4, E3 (transport), M2 (per-head hooks), M4 (encoder
504
+ capture), C3 (white-box constructor), T2 adversarial domain.
505
+ **Capstone (quarter-scale):** the clean-room test — freeze the written account, hand it to
506
+ an independent agent team without weights, score their P/E/C performance using only the doc.
507
+
508
+ *Dependencies: D1→G1; C1→C2/C3; E1→E3/T2-gap; M1 capture reusable for M4; P2 needs census
509
+ JSONs (HF: tae_dose_response, direction-zoo).*