SPB Git

spb/localvm-research Public License

Running LLMs larger than memory on a consumer Mac — falsification-driven research: margin-gated deferred refinement, out-of-core verification on Apple Silicon. TR-01 published.

Python 63.2% JavaScript 23.5% CSS 11.8% Shell 0.9% Makefile 0.5%
24.0 KB · 371 lines markdown
Rendered Raw Blame History
1---2project: localvm-research3document: research/LOG (append-only research log)4author: Simon-Pierre Boucher5contact: contact@spboucher.ai6created: 2026-08-117status: draft8---910# Research log (append-only)1112Format per entry: date/time (local, with timezone) · question · experiment · result · interpretation · decision.1314---1516## 2026-08-11 23:40 EDT — Project bootstrap1718- **Question:** none (administrative).19- **Experiment:** none.20- **Result:** Repository initialized (git, `main`). Skeleton per charter §3 created.21  Mandatory tooling written and functional: `tools/check_headers.py` (§0.1 enforcement),22  `tools/new_experiment.py` (experiment scaffolding with seven-field hypothesis block),23  `benchmarks/hardware_manifest.py` (macOS-native fingerprinting).24- **Host hardware discovered:** Apple M5 Max, 48 GB unified memory, macOS 27.0 (build 26A5388g)25  — within the charter's target class (16–64 GB Apple Silicon).26- **Interpretation:** n/a.27- **Decision:** Begin Phase 1 (ultra-deep literature research, charter §4) immediately,28  fanning out across the ten mandated areas (§4.1–§4.10). Deliverables: per-topic notes in29  `research/notes/`, every source logged in `research/bibliography.md` with URL and access date.3031---3233## 2026-08-12 00:15 EDT — Phase 1 complete: literature sweep across §4.1–§4.103435- **Question:** What is already known about post-training transforms + out-of-core execution36  that decouple checkpoint size from resident memory / bytes-per-token, and what is missing?37- **Experiment:** Five parallel deep literature sweeps (web, arXiv, GitHub, proceedings),38  one per theme cluster. Deliverables in `research/notes/` (5 files, ~300 sources, all with39  access dates, merged into `research/bibliography.md`).40- **Result (key facts):**41  - Nested/progressive weight encodings exist (Any-Precision LLM, MatQuant, BitStack, RRQ,42    CALDERA Q+LR) but ALL choose the operating point statically, keep everything resident,43    never page residuals from storage, and are CUDA-only.44  - 2–3-bit SOTA (QuIP#, AQLM, QTIP, GPTVQ) has zero Metal implementations; LUT-heavy decode45    is compute-bound on Apple GPUs — Apple formats must keep decode shift/mask-cheap.46  - A representational cliff sits between 2 and 3 bits (ParetoQ/EfficientQAT): a 2-bit base47    is the floor for staying in the pretrained basin.48  - Closest prior art on our hardware: Apple "LLM in a flash" (0.2 GB/token OPT-6.7B on49    M1 Max via predictors + windowing; ReLU-only, FFN-only, fp16, no code) and PowerInfer-250    (47B on a 24 GB phone; requires dReLU retraining). Nobody has built predictor/threshold-51    driven sparse weight paging on macOS/Metal/unified memory.52  - Measured decision stability: 4-bit quants agree with fp16 on ~90–91% of greedy tokens;53    the joint (cheap-pass margin × agreement) distribution is UNPUBLISHED — cheap for us to54    measure (expG) and decisive for any escalation design.55  - Precision-level self-speculation exists across tokens (QSpec, Apple QuantSpec ~2.5×,56    >90% acceptance) but nobody gates *weight loading* on per-token decision uncertainty.57  - OS/DB ideas unapplied to LLM weights: MRU/DBMIN for cyclic dense scans (LRU provably58    worst-case for our pattern), ARC ghost lists for expert caches, anti-caching's59    never-block-on-miss, purgeable MTLHeaps as an OS-cooperative cache tier.60- **Interpretation:** Independent sweeps converged on the same gap: a *progressive,61  residency-tiered weight representation* (low-bit resident base + SSD-resident residuals)62  with *decision-uncertainty-driven refinement* is unbuilt, and Apple unified memory +63  fast NVMe is the substrate where it is most plausible.64- **Decision:** Proceed to Phase 2 (state-of-the-art map synthesized from notes), then65  Phase 3 gap generation (≥20 ideas). expH (SSD envelope) running concurrently.6667---6869## 2026-08-12 00:30 EDT — expH complete: SSD substrate envelope established7071- **Question:** Can the internal Apple NVMe sustain weight-streaming rates, at which block72  sizes, and does Metal GPU load contend with it? (charter §9.H)73- **Experiment:** expH full run, 3 repeats/cell, adaptive ~3 s budgets, iostat ground truth.74  Results: `results/expH_ssd_feasibility/20260812T034359Z/`, code at commit `b4a652d`.75- **Result:** Device ceiling ~13.1 GB/s (iostat-validated). Cold random: 67 MB/s @4 KiB QD1;76  11.6 GB/s @256 KiB QD8; 13.8 GB/s @1 MiB QD8. Concurrent saturated MLX matmul costs <5%.77  Warm (unified memory) peak 136 GB/s → RAM:SSD ≈ 10:1, far gentler than discrete-GPU stacks.78  4 MiB & threaded-sequential cells cache-contaminated (> iostat ceiling) — flagged invalid.79- **Interpretation:** Storage is NOT the binding constraint: ~650 MB/token of SSD reads is80  realistic at interactive rates IF blocks are ≥256 KiB at QD≥4. The binding question moves81  to whether ≤650 MB/token of *useful* bytes preserves model behavior (expD/expG).82  Methodological: F_NOCACHE does not bypass resident pages; benchmark files must be written83  uncached; distrust any number above the concurrent iostat ceiling; 16 KiB pages.84- **Decision:** Prioritize expD (progressive reconstruction) and expG (decision stability)85  after Phases 2–4 paperwork. Sequential-read claims embargoed until a >RAM-size-file rerun.8687---8889## 2026-08-12 00:50 EDT — Phase 2 complete: state-of-the-art map9091- **Question:** How does the technique landscape organize, where do approaches overlap, and92  which seemingly-novel ideas are already known?93- **Experiment:** Synthesis of the five Phase 1 notes into `research/state_of_the_art.md`94  (356 lines, ~35 technique groups, six families, all charter §5 fields, overlap analysis,95  settled-vs-open ledger).96- **Result (load-bearing overlap findings):** (1) quantization+offload and precision×tier97  unification already exist (llama.cpp, FlexGen, M2Cache) — but always statically, never98  refining a fetched block; (2) sparsity-driven flash paging exists (LLM-in-a-flash,99  PowerInfer-2, Ripple, DIP) but ReLU-only, never macOS/Metal, always predict-and-hope with100  no correction; (3) QSpec/QuantSpec prove >90% low/full-bit agreement with exact repair but101  keep BOTH precisions resident — the unclaimed move is using agreement to avoid LOADING102  high-precision bytes; (4) the progressive/nested code family never reports bytes/token —103  the charter's central metric is literally unreported there; (5) several "obvious" ideas are104  known including failure modes (weights-as-mmap collapse at 0.025 tok/s; DFloat11 decode tax;105  i-quant LUT penalty on Metal). Seven verified open intersections listed in §7.3.106- **Interpretation:** The gap space is real, narrow, and well-bounded — enough for ≥20107  concrete gap hypotheses without inventing variants of one idea.108- **Decision:** Launch Phase 3 (research_gaps.md) now; Phase 4 ranking after review.109110---111112## 2026-08-12 09:05 EDT — Phase 3 complete: 24 research gaps113114- **Question:** Which genuinely different, falsifiable approaches exist in the open space?115- **Experiment:** `research/research_gaps.md` — 24 gaps (G01–G24), six mandated items each,116  kill-numbers sized to the expH envelope; includes 3 contrarian gaps (G22 WarmEnough,117  G23 ConfidentlyWrong, G24 BasinCollapse) that can cheaply kill whole families.118- **Result:** Highest-leverage falsification order derived from cluster analysis:119  (1) expG joint margin×agreement matrix → arbitrates G02/G17/G23/half-G24;120  (2) expA/B/C SwiGLU trace campaign → feeds G01/G06/G07/G12/G13 + cache simulator;121  (3) expD/expE ladder (recovery curves + Metal decode/gather microbench) → decides122  G01/G04/G05/G15/G16, rest of G24, gates G03.123- **Interpretation:** The experiment plan now writes itself from gap dependencies.124- **Decision:** Launch Phase 4 ranking; then implement expG first.125126---127128## 2026-08-12 11:40 EDT — Phase 4 complete: candidate ranking129130- **Question:** Which of the 24 gaps deserve prototyping effort, and in what composition?131- **Experiment:** `research/candidate_ranking.md` — all 24 gaps scored 1–10 on the ten132  charter §7 axes with per-axis written reasoning; summary table; totals span 51–78133  (top: G18 78, G02 77, G17/G23 76, G09 75, G24 74; bottom: G06 51).134- **Result:** Four candidates selected (three compositions + one falsifier battery):135  C1 Progressive-Residual Runtime (G01+G02+G04, G03 kernel, G05 gate) — criteria B/C/D/E;136  C2 Amortized Verification Sweeps (G17+G18 on G08 MRU floor) — criteria A/B, exact, also137  the honest baseline; C3 MoE Residency Engine (G09+G12+G19, G10 warm tier) — criteria A/F;138  C4 Gate Zero contrarian battery (G23+G24+G22+expN) — runs first, gates 17/24 gaps.139  Promote/kill thresholds fixed numerically per candidate (AUROC 0.8/0.65–0.85 bands;140  ≤20% residual bytes + ≥50% reuse; acceptance ≥4–5; ARC ≥5 pts; warm-fault 10%/25%).141- **Interpretation:** Totals reward safety; selection weighted Sig + cluster synergy +142  the expH substrate contract. Preferred single candidate: C1 — the only mechanism that143  turns `model size → hardware` into `working set → hardware` (charter §20).144- **Decision:** Proceed to Phase 5 infrastructure, then expG run matrix (arbitrates145  G02/G17/G23/G24) before any candidate-specific engineering.146147---148149## 2026-08-12 09:40 EDT — Phase 4 complete + public research platform deployed150151- **Question:** Which candidates should be prototyped, and how is the project made auditable publicly?152- **Experiment:** n/a (ranking synthesis + engineering).153- **Result:** `research/candidate_ranking.md` — all 24 gaps scored on 10 axes (totals 51–78,154  differentiated). Selected: C1 Progressive-Residual Runtime (G01+G02+G04, preferred),155  C2 Amortized Verification Sweeps (G17+G18, honest baseline), C3 MoE Residency Engine156  (G09+G12+G19), C4 Gate-Zero falsifier battery (G22–G24 first, gates 17/24 gaps).157  Public platform live at https://www.localvm.dev (M3U96b, PM2 + ngrok) serving the full158  paper trail: docs, notes, experiments, raw results, code. Content snapshot at commit 9b94283.159- **Interpretation:** Gate-Zero battery (expG-centric) is the rational first experiment.160- **Decision:** Next session: implement expG (joint margin×agreement matrix) on a small model.161162---163164## 2026-08-12 10:35 EDT — expG complete: margin-gated escalation PROMOTED, naive 2-bit base DEAD165166- **Question:** Does the cheap pass's top-1 margin predict disagreement with the full model167  (the unpublished joint distribution that gates G02/G23/G24 and candidate C1)?168- **Experiment:** expG on Qwen3-1.7B — 48 greedy bf16 trajectories (6 domains), teacher-forced169  MLX affine 2/3/4/8-bit variants, 6 144 positions/bit-width.170  Results: `results/expG_decision_stability/20260812T042744Z/`.171- **Result:** AUROC(margin→disagreement): 0.852 @3-bit, 0.898 @4-bit, 0.975 @8-bit — all above172  the 0.8 promote threshold; per-domain uniform (0.88–0.92 @4-bit). Escalation to reach 99%173  agreement: 60.2% / 36.6% / 5.1% of tokens. Median margin agree vs disagree: 6.5 vs 0.75174  (4-bit). Naive affine 2-bit collapsed: 3.0% agreement, KL 11.9, AUROC 0.605.175- **Interpretation:** (1) G02 MarginGate PROMOTED — decision uncertainty is a real, free,176  domain-stable gating signal. (2) G23 weakened, not dead: 36.6% escalation @4-bit exceeds the177  hoped 10–30%; viability now depends on bytes-per-escalation. (3) G24 partially resolved:178  the 2–3-bit cliff is real and brutal for affine quantization — C1's resident base must be179  ≥3-bit affine or codebook 2-bit (G05 kernel work). (4) 8-bit ceiling: 98% agreement, 5.1%180  escalation.181- **Decision:** Implement expD next (residual bytes per escalated token); plan an expG rerun182  at 3B–8B to measure the scale trend.183184---185186## 2026-08-12 11:20 EDT — expD complete: progressive residual coding validated; C1 operating point exists187188- **Question:** How fast do decisions/hidden states converge with residual stages, and does a189  margin-gated two-tier policy work? (gates G01 ResidualPager + C1 arithmetic)190- **Experiment:** expD — affine g64 residual ladders (3/3+3/3+3+3, 4/4+4 bits) on Qwen3-1.7B,191  48 trajectories, hidden states at 4 depths, two-tier policy grid.192  Results: `results/expD_progressive_reconstruction/20260812T043508Z/`.193- **Result:** Monotone, fast convergence (hidden err ÷5 per stage; KL ÷30–60). 3+3 bits: 95.7%194  agreement; 4+4: 98.4%. Two-tier policy (4-bit base, τ=3): 97.6% agreement escalating 35% of195  tokens. AUROC stays 0.85–0.98 at every stage. Sanity: stage0 rows reproduce expG flat rows.196  Caveat: at equal static bytes, flat quantization mildly beats ladders (98.0% @9.0 vs 95.7%197  @8.0 bits) — the ladder's value is runtime-variable quality, not compression.198- **Interpretation:** G01+G02 compose; C1's operating point exists mechanically. The binding199  unknown is bytes-per-escalation: full-residual escalation (~20 GB at 32B) breaks the expH200  budget; last-layer error concentration (0.83 vs 0.34 at 4-bit) suggests layer-restricted201  escalation could cut it ~4×.202- **Decision:** expF (layer sensitivity) next; then expB (temporal locality of escalated set).203204---205206## 2026-08-12 12:05 EDT — expF complete: NEGATIVE — layer-restricted escalation gives no leverage207208- **Question:** Is quantization damage concentrated in a subset of layers, so escalation can209  be layer-restricted and bytes-per-escalation cut proportionally?210- **Experiment:** expF — 7 depth-groups × degrade-one/repair-one + repair-top-k, 4-bit affine211  vs bf16, Qwen3-1.7B, 48 trajectories, 17 configs.212  Results: `results/expF_error_accumulation/20260812T043945Z/`.213- **Result:** REFUTED. Sensitivity spread 1.5× (kill: <2×). Top-29% of layers repair 24% of214  lost agreement (sub-proportional). Degrade-one drops sum to 33 pts vs 12.5 joint (masking);215  repair-one values sum to 7.4 of 12.5 (cooperation). Last layers: largest hidden-state error216  (expD) but LEAST decision-sensitive — norms ≠ decisions.217- **Interpretation:** Damage is diffuse across depth. C1's escalation-byte problem must be218  solved by temporal locality (expB), block-level selection (expA/expE), or batch amortization219  — the last converging with C2 (amortized verification). Negative result recorded per §10/§17.220- **Decision:** Next: expA (block-granularity concentration) and expB (temporal stability) —221  the trace campaign that also feeds G06/G07/G12/G13 per the Phase 3 cluster analysis.222223---224225## 2026-08-12 13:10 EDT — expA + expB complete: NEGATIVE — dynamic sparsity paging dead on dense SwiGLU; evidence selects the C1→C2 merge226227- **Question:** Is per-token FFN importance concentrated at pageable block granularity (expA),228  and is the important set temporally/domain reusable (expB)?229- **Experiment:** One instrumented trace (SwiGLU intermediate energy, 16-neuron blocks × 28230  layers × 6 144 positions) feeding both analyses.231  Results: `results/expA_weight_concentration/20260812T044829Z/`,232  `results/expB_token_stability/20260812T045224Z/`.233- **Result:** expA: 95% energy needs 77% of 64-neuron blocks (kill >70%); neuron-level234  concentration real (20%) but scattered — bundling destroys it; strong depth gradient235  (L27: 11%, early layers: ~80%). expB: Jaccard(t,t+1)=0.69 vs matched random null 0.64236  (stickiness = set-size artifact); union working set 98% after 8 tokens, 99.9% after 128237  (kill ≥95%); domain locality nil.238- **Interpretation:** All three fine-grained routes for per-token escalation bytes are now239  closed by measurement: layers (expF), blocks (expA), temporal/domain caching (expB). The240  DejaVu/LLM-in-a-flash paradigm measurably does not transfer to dense SwiGLU models.241  G06/G12/G13 dead on this family; G07 survives only as static tiering. Remaining route is242  batch amortization, which expH's sequential numbers make attractive (full 1 GB residual243  streams in ~80 ms at 13 GB/s, shared across a queue of deferred low-margin tokens).244  **C1 converges into C2: margin-gated deferred refinement with periodic sequential sweeps.**245- **Decision:** (1) Rerun expG at 8B to confirm margin-signal scaling; (2) then prototype246  candidate_01: 4-bit resident base + margin-gated deferral queue + periodic residual sweep247  with rollback, measured in bytes/token, tok/s, agreement, on this Mac.248249---250251## 2026-08-12 14:30 EDT — expG@8B (favorable scaling) + candidate_01 first run (mixed; metric insight)252253- **Question:** Does the margin signal hold at 8B, and does the selected architecture254  (margin-gated deferred refinement) work end-to-end on this Mac?255- **Experiment:** expG rerun on Qwen3-8B (`results/expG_decision_stability/20260812T051129Z/`);256  candidate_01 prototype: q4 resident + windowed q8 sweeps + rollback via KV trim257  (`results/candidate_01/20260812T051501Z/`), 24 prompts × 128 tokens, W=32.258- **Result:** 8B scaling favorable on every metric (4-bit: agree 87.4→92.1%, AUROC 0.90→0.92,259  esc@99% 36.6→22.6%). Candidate: bytes/token 154–231 MB logical (9–14× under q8 checkpoint,260  within expH budget) — PASSED; verify-all fidelity 0.883 = measured hardware ceiling (q8261  self-agreement 1.56%/token prefill/decode flips ⇒ ~0.88 seq-ratio at 128 tokens); margin-mode262  seq-fidelity 0.55–0.65 — FAILED as registered, caused by divergence compounding of ~2%263  unchecked per-token error; throughput: margin τ=1.0 passed 1/3-of-q4, verify-all failed264  (full-context re-prefill per sweep — fixable via incremental verify-cache).265- **Interpretation:** (1) Token-exact sequence reproduction is not a coherent target on Metal —266  the reference model cannot reproduce itself; quality-level metrics are now mandatory (§4.10267  empirically forced). (2) The architecture's byte economics hold and improve with scale.268  (3) Sweep cost is an implementation artifact with a known fix.269- **Decision:** Next cycle: quality-metric evaluation (bf16-judged logprobs, task checks),270  incremental verify-cache, then scale to a q8>RAM model — the regime this architecture is for.271272---273274## 2026-08-12 15:20 EDT — candidate_01 v2: quality claim CONFIRMED — q8-equivalent output with q4 resident275276- **Question:** Does quality-level evaluation vindicate the architecture, and does the277  incremental verify-cache fix sweep cost?278- **Experiment:** candidate_01 v2 (`results/candidate_01/20260812T052415Z/`): persistent q8279  verify KV cache (O(window) sweeps); all outputs judged by bf16 mean logprob.280- **Result:** Judge scores — q4 floor -0.387; margin τ=1.0 -0.267 (47% of gap, 150 MB/token);281  τ=2.0 -0.176 (83%, 211 MB/token); verify-all -0.130 ≈ q8's -0.133 (indistinguishable,282  237 MB/token, 9× under checkpoint). Throughput 69–110 tok/s at 1.7B.283- **Interpretation:** The charter §16.D/§16.E criteria are now met at 1.7B scale: a284  progressive/conditional mechanism preserving quality while avoiding most weight loading,285  with a runtime quality↔bytes knob (τ) no static quantization offers. v1's fidelity failure286  confirmed as metric artifact. Remaining lever: rollback regeneration (accept q8 token runs287  from sweep logits — free speculative continuation).288- **Decision:** Scale run at 32B (q4 17 GB resident, q8 35 GB streamed — q8 does not fit289  wired on 48 GB): the regime the architecture exists for. Artifacts downloading.290291---292293## 2026-08-12 16:40 EDT — 32B scale run: charter §16.A/B demonstrated in prototype form294295- **Question:** Does the architecture deliver in its target regime — a model configuration296  that does not fit in unified memory?297- **Experiment:** Qwen3-32B on the 48 GB M5 Max: q4 resident (17.5 GB) + q8 (34.8 GB)298  layer-streamed per sweep via StreamingVerifier (materialize→compute→re-lazify; sequential299  SSD reads at ~11.6 GB/s ≈ expH ceiling). 12 prompts × 96 tokens.300  Results: `results/candidate_01_scale32b/20260812T055506Z/` (smoke: 20260812T053042Z).301- **Result:** verify-all: judge (8B bf16) -0.4667 vs pure-q4 -0.7506 (+0.28 nats, 38% rel.);302  1.69 tok/s; 3.72 GB/token logical (9.4× under streamed checkpoint); sweeps 3.0 s. Margin303  τ=2.0 intermediate (-0.546, 1.62 tok/s). q8 cannot run resident on this machine at all.304- **Interpretation:** Total representation (52 GB) exceeds unified memory (48 GB) yet its305  quality is usable locally — bytes-per-token decoupled from checkpoint size with a strictly306  sequential access pattern. Below interactive (1.65 tok/s): measured headroom = larger307  windows, speculative acceptance of q8 runs from sweep logits, I/O-compute overlap (<5%308  contention per expH). Limits recorded: no q8 ceiling measurable here; 8B judge is a proxy;309  no window tuning.310- **Decision:** Phase 11 novelty check on the assembled architecture next; then throughput311  levers or additional scale points.312313---314315## 2026-08-12 — Phase 11 novelty verification: composition survives narrowly; three components anticipated316317- **Question:** Charter §19 — is the candidate_01 architecture (resident q4 + margin-gated318  deferral + periodically streamed q8 verifier, bytes/token objective) already in the319  literature? Adversarial stance: assumed NOT novel.320- **Experiment:** Targeted web/arXiv/GitHub search per component and for the composition321  (~45 sources verified, key papers read from full PDFs). Deliverable:322  `research/novelty_check.md`.323- **Result:** Three 2025–2026 systems missed by the Phase 1 sweep materially shrink the324  claim: **Lever** (2605.16786 — DRAM-resident draft + flash-streamed target verifier,325  amortized per window, smartphones), **CATS** (2605.11186 — self-speculative shallow draft326  + verifier layers streamed from flash once per cycle, edge), **U-HLM/UGSD**327  (2412.12687 / 2603.11397 — draft-side uncertainty gates whether verification happens at328  all, cloud tier, incl. lossy top-R acceptance + rollback). QSpec/QuantSpec/ML-SpecQD own329  the shared-weights precision pair; mlx-flash owns MLX layer streaming330  (materialize→compute→release, every token).331- **Interpretation:** "Resident draft + streamed verifier" and "uncertainty-gated332  verification skipping" are ANTICIPATED as categories. Surviving as not-found: (N1)333  margin-gating the **weight-streaming bytes** of the same model's higher-precision variant334  on one machine; (N2) bytes-streamed-per-token vs checkpoint size as explicit objective,335  with τ as a runtime bytes↔quality knob; (N3) the training-free same-checkpoint q4/q8 pair336  as the draft/verify split of an out-of-core runtime; (N4, engineering) the unified-memory337  Metal instantiation with incremental verify-KV-cache. All public claims must use the338  attribution table and README language in novelty_check.md §3–§4.339- **Decision:** Proceed with narrowed claims only. Positioning for any writeup: extend340  Lever/CATS's regime with (a) precision-cast drafts (no training), (b) margin-priced341  verification I/O, (c) bytes/token accounting. Re-run this check before publication —342  prior-art density in this exact area is rising quarter over quarter.343344---345346## 2026-08-12 18:05 EDT — W=64 lever test: NEGATIVE — rollback rate, not window size, bounds amortization347348- **Question:** Does doubling the sweep window halve bytes/token?349- **Experiment:** 32B verify-all, W=64 vs W=32 (`results/candidate_01_scale32b/20260812T061115Z/`).350- **Result:** GB/token 3.72→3.53 (−5%, not −50%); tok/s 1.69→1.59; judge −0.467→−0.514 (n=12, noise).351- **Interpretation:** Effective inter-sweep distance is bounded by ~1/rollback-rate (≈8–15 tokens352  at 12%/token), so W beyond that is dead weight. Real levers: τ-calibrated margin mode353  (fewer checked positions → fewer rollback triggers) and sweep-I/O/generation overlap.354- **Decision:** Session milestone reached; next cycle: honest baselines (resident q5/q6 at 32B),355  τ calibration on the real q4-32B margin distribution, task-level benchmarks, 70B point.356357---358359## 2026-08-12 20:10 EDT — TR-01 published: first official technical report360361- **Question:** n/a (dissemination).362- **Experiment:** n/a.363- **Result:** `docs/publications/TR-01-margin-gated-deferred-refinement.md` — full write-up of364  results to date (substrate, decision stability, three refutations, architecture, 1.7B365  continuum, 32B out-of-core run), with 4 SVG figures regenerated from committed results by366  `tools/make_pub_figures.py`. Prior-art attribution follows novelty_check.md; limitations367  section names the missing baselines (resident q5/q6 at 32B, task benchmarks, 70B).368  Published on the platform under the new Publications tab.369- **Interpretation:** n/a.370- **Decision:** TR-02 planned once the honest-baseline campaign (q5/q6, tasks, 70B) completes.371