philipjohnbasile commited on
Commit
fb6c6dd
Β·
verified Β·
1 Parent(s): 1fa32f7

Create the interactive Wisp Fieldbook

Browse files

Give the model card its own Mind the gap identity with botanical hover motion, responsive navigation and release-route cards, three interactive FIM prompt panels, six specimen notes, and native fold-out research sections. Use Hugging Face-supported CSS utilities and semantic details/summary controls. Preserve every original technical statement, code block, result, metadata field, link and section anchor. Verified hover styles, keyboard toggles, reduced-motion duration and mobile overflow in the complete card preview; corrected explicit repository file links.

Files changed (1) hide show
  1. README.md +143 -55
README.md CHANGED
@@ -13,24 +13,39 @@ library_name: transformers
13
  pipeline_tag: text-generation
14
  ---
15
 
16
- <!-- Wisp's floral identity, shared with the interactive Space. -->
17
- <div style="background-color:#f4f1e8;background-image:radial-gradient(#d7d7c7 0.65px,transparent 0.65px);background-size:7px 7px;color:#263f32;border:1px solid #cbd0bf;padding:clamp(22px,4vw,38px);margin:8px 0 24px;">
 
 
 
 
18
  <div style="display:flex;align-items:center;flex-wrap:wrap;gap:20px;">
19
  <div style="flex:1 1 250px;min-width:0;">
20
- <h1 id="wisp-coder-110m" style="font-family:Arial,sans-serif;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#263f32;margin:0 0 24px;line-height:1.6;">❋ Wisp Coder 110M</h1>
21
- <p style="font-family:Georgia,serif;font-size:clamp(48px,6vw,64px);font-weight:400;letter-spacing:-2.5px;line-height:0.98;color:#263f32;margin:0 0 24px;">Code,<br><em style="color:#ad3f5a;">in bloom.</em></p>
22
- <p style="font-family:Georgia,serif;font-size:19px;line-height:1.5;color:#3b5041;margin:0 0 24px;max-width:340px;">A small model. A little curiosity.<br>Room for ideas to grow.</p>
23
- <a href="https://huggingface.co/spaces/philipjohnbasile/wisp-coder-demo" style="display:inline-block;background:#263f32;color:#fffdf5;padding:13px 20px;text-decoration:none;font-size:15px;font-weight:600;border:1px solid #263f32;box-shadow:4px 4px 0 #ccd4bc;">Try Wisp Coder β†—</a>
24
- <p style="font-size:12px;line-height:1.6;color:#50614e;margin:22px 0 0;">An open research experiment<br>by Philip John Basile</p>
 
 
 
 
25
  </div>
26
- <img src="./assets/wisp-wildflowers.png" alt="Loose painted wildflowers in pink, coral, cobalt and green, the original artwork from the Wisp demo." style="flex:1 1 270px;width:45%;min-width:0;max-width:100%;height:auto;object-fit:contain;margin:0;" />
27
  </div>
28
- <div style="display:flex;flex-wrap:wrap;gap:10px 28px;border-top:1px solid #cbd0bf;margin-top:30px;padding-top:18px;font-size:12px;line-height:1.7;color:#40563e;">
29
- <span><strong style="color:#263f32;">100.7M</strong> trunk parameters</span><span><strong style="color:#263f32;">108.2M</strong> with MTP</span><span><strong style="color:#263f32;">2,048</strong> token context</span>
 
 
30
  </div>
31
  </div>
32
 
33
- <p style="font-size:13px;line-height:2;">FIELD NOTES &nbsp; / &nbsp; <a href="#start-here">Start here</a> &nbsp; Β· &nbsp; <a href="#architecture">Architecture</a> &nbsp; Β· &nbsp; <a href="#usage">Usage</a> &nbsp; Β· &nbsp; <a href="#evaluation">Evidence</a> &nbsp; Β· &nbsp; <a href="#limitations">Limits</a></p>
 
 
 
 
 
 
34
 
35
  [Explore the model guide](https://huggingface.co/spaces/philipjohnbasile/local-ai-guide) Β· [All public work](https://huggingface.co/philipjohnbasile)
36
 
@@ -43,52 +58,91 @@ pipeline_tag: text-generation
43
  [Short-hole evaluation](./fim-competitive-v1/FIM_RESULTS.md) Β·
44
  [Selected work](https://huggingface.co/collections/philipjohnbasile/start-here-selected-work-6aa309b179b2a196db52a12b)
45
 
46
- <div style="background:#263f32;color:#f7f2e6;padding:24px;margin:26px 0;border:1px solid #46614a;">
47
- <p style="font-size:11px;letter-spacing:1.6px;color:#e8bcd0;margin:0 0 9px;">FILL IN THE MIDDLE</p>
48
- <h3 style="font-family:Georgia,serif;font-weight:400;font-size:32px;line-height:1.2;color:#f7f2e6;margin:0 0 22px;">A little room <em style="color:#f3a4b8;">for possibility.</em></h3>
49
- <div style="display:flex;flex-wrap:wrap;gap:10px;">
50
- <div style="flex:1 1 150px;border:1px solid #80917a;padding:16px;min-width:0;"><p style="font-size:10px;letter-spacing:1px;color:#c6d0b8;margin:0 0 10px;">YOU PROVIDE</p><p style="font-family:Georgia,serif;font-size:24px;color:#f7f2e6;margin:0 0 6px;">Prefix</p><p style="font-size:13px;color:#dae1cd;line-height:1.6;margin:0;">Code before the gap</p></div>
51
- <div style="flex:1 1 150px;background:#f1aec0;border:1px dashed #8e3049;padding:16px;min-width:0;"><p style="font-size:10px;letter-spacing:1px;color:#69263a;margin:0 0 10px;">WISP SUGGESTS</p><p style="font-family:Georgia,serif;font-size:24px;color:#49252e;margin:0 0 6px;">Middle ❋</p><p style="font-size:13px;color:#592d39;line-height:1.6;margin:0;">The missing span</p></div>
52
- <div style="flex:1 1 150px;border:1px solid #80917a;padding:16px;min-width:0;"><p style="font-size:10px;letter-spacing:1px;color:#c6d0b8;margin:0 0 10px;">YOU PROVIDE</p><p style="font-family:Georgia,serif;font-size:24px;color:#f7f2e6;margin:0 0 6px;">Suffix</p><p style="font-size:13px;color:#dae1cd;line-height:1.6;margin:0;">Code after the gap</p></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  </div>
54
  <p style="font-size:13px;line-height:1.7;color:#dae1cd;margin:18px 0 0;">Provide the code on both sides of a gap. Wisp predicts the middle. <a href="https://huggingface.co/spaces/philipjohnbasile/wisp-coder-demo" style="color:#f3b7ca;text-decoration:underline;">Explore it in the playground β†—</a></p>
55
  </div>
56
 
57
- <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px;margin:24px 0 30px;">
58
- <div style="background:#f4f1e8;border:1px solid #cbd0bf;padding:22px;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
59
- <p style="font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 10px;">PURPOSE</p>
60
- <h3 style="font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.2;color:#263f32;margin:0 0 12px;">What is it for?</h3>
61
- <p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;">Research on code completion, fill-in-the-middle (FIM), and native multi-token prediction (MTP).</p>
62
- </div>
63
- <div style="background:#ecefdf;border:1px solid #cbd0bf;padding:22px;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
64
- <p style="font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 10px;">FROM STEP ZERO</p>
65
- <h3 style="font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.2;color:#263f32;margin:0 0 12px;">What did I build?</h3>
66
- <p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;">Philip John Basile&#x27;s model trained from step zero: 100.7M trunk parameters, 108.2M including the MTP module.</p>
67
- </div>
68
- <div style="background:#f4f1e8;border:1px solid #cbd0bf;padding:22px;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
69
- <p style="font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 10px;">RUNTIME</p>
70
- <h3 style="font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.2;color:#263f32;margin:0 0 12px;">What runs it?</h3>
71
- <p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;">The trunk uses standard Transformers or MLX-LM. MTP requires the explicit packaged MLX reference runtime; generic loaders do not activate the sidecar.</p>
72
- </div>
73
- <div style="background:#f4f1e8;border:1px solid #cbd0bf;padding:22px;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
74
- <p style="font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 10px;">RECENT CHECK</p>
75
- <h3 style="font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.2;color:#263f32;margin:0 0 12px;">What was checked recently?</h3>
76
- <p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;">CPU float32 completions with PyTorch 2.13.0 and Transformers 5.14.1 on 2026-09-10. These are functional smokes, not a coding-quality or latency benchmark.</p>
77
- </div>
78
- <div style="background:#ecefdf;border:1px solid #cbd0bf;padding:22px;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
79
- <p style="font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 10px;">WEIGHT SIZE</p>
80
- <h3 style="font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.2;color:#263f32;margin:0 0 12px;">How much memory?</h3>
81
- <p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;">Trunk weight file: about 201 MB in BF16, or about 403 MB as FP32 tensors. Runtime overhead and the KV cache require additional RAM; these are weight sizes, not total-memory requirements.</p>
82
- </div>
83
- <div style="background:#f6e8e8;border:1px solid #cbd0bf;padding:22px;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
84
- <p style="font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 10px;">RESEARCH SCOPE</p>
85
- <h3 style="font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.2;color:#263f32;margin:0 0 12px;">What are the limits?</h3>
86
- <p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;">2,048-token context; limited completion quality; no chat tuning. The registered short-hole comparison established no superiority, and no production MTP speedup is claimed.</p>
87
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  </div>
89
 
90
  ### Quick start β€” ordinary completion on CPU
91
 
 
 
 
 
92
  ```bash
93
  pip install "torch==2.13.0" "transformers==5.14.1"
94
  ```
@@ -110,6 +164,9 @@ with torch.inference_mode():
110
  print(tokenizer.decode(output[0], skip_special_tokens=True))
111
  ```
112
 
 
 
 
113
  Review generated code before using it. The demo also provides FIM prompts and displays raw suggestions without executing them. The full training, data-provenance, and evaluation disclosures follow.
114
 
115
  ### The idea
@@ -161,6 +218,16 @@ speculative drafting on Apple Silicon, or how those two interact.
161
  <h2 id="architecture" style="font-family:Georgia,serif;font-size:30px;line-height:1.2;font-weight:400;letter-spacing:-0.6px;color:#263f32;margin:0;padding:0;border:0;">Architecture</h2>
162
  </div>
163
 
 
 
 
 
 
 
 
 
 
 
164
  | | |
165
  |---|---|
166
  | Parameters | 108.2M total, 100.7M trunk |
@@ -198,6 +265,10 @@ clauses remain applicable. FineWeb-Edu is ODC-By 1.0 and remains subject to
198
  Common Crawl terms. Run 1 retained no row-level source manifest, so no per-file
199
  licensing or attribution guarantee is made.
200
 
 
 
 
 
201
  Every run 1 document received structural size, line-length, and character
202
  distribution filters. Because the loader expected `path` instead of
203
  StarCoderData's `max_stars_repo_path`, Python AST and JSON extension filtering
@@ -211,6 +282,9 @@ the eleven source entries, not according to the later token-budget weights.
211
  Current shard bytes are fully attested after the build, but the receipt is not a
212
  raw-row manifest and cannot prove exact original example boundaries.
213
 
 
 
 
214
  The Apache 2.0 metadata describes the released Wisp artifact. It does not
215
  override training-source terms or licenses applicable to generated code.
216
 
@@ -271,13 +345,17 @@ sub-100 ms claim.
271
  </div>
272
 
273
  <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin:0 0 24px;">
274
- <div style="padding:18px;background:#ecefdf;border-top:3px solid #74845c;color:#263f32;"><p style="font-size:10px;letter-spacing:1px;color:#4a603d;margin:0 0 9px;">FUNCTIONAL CHECKS</p><p style="font-family:Georgia,serif;font-size:23px;line-height:1.2;color:#263f32;margin:0 0 10px;">Can it run?</p><p style="font-size:13px;line-height:1.7;color:#354b3b;margin:0;">CPU completion smokes are documented above. They do not measure coding quality or latency.</p></div>
275
- <div style="padding:18px;background:#f4f1e8;border-top:3px solid #ad3f5a;color:#263f32;"><p style="font-size:10px;letter-spacing:1px;color:#8e3049;margin:0 0 9px;">SHORT-HOLE COMPARISON</p><p style="font-family:Georgia,serif;font-size:23px;line-height:1.2;color:#263f32;margin:0 0 10px;">What held up?</p><p style="font-size:13px;line-height:1.7;color:#354b3b;margin:0;">No superiority was established. <a href="./fim-competitive-v1/FIM_RESULTS.md" style="color:#8e3049;">Read the comparison β†—</a></p></div>
276
- <div style="padding:18px;background:#f6e8e8;border-top:3px solid #ad3f5a;color:#263f32;"><p style="font-size:10px;letter-spacing:1px;color:#8e3049;margin:0 0 9px;">MTP RUNTIME</p><p style="font-family:Georgia,serif;font-size:23px;line-height:1.2;color:#263f32;margin:0 0 10px;">What is open?</p><p style="font-size:13px;line-height:1.7;color:#354b3b;margin:0;">No production MTP speedup is claimed. The packaged MLX runtime checks correctness.</p></div>
277
  </div>
278
 
279
  ### Registered final results
280
 
 
 
 
 
281
  | Measurement | Result |
282
  |---|---|
283
  | Final validation main NLL | 1.3873 [1.3428, 1.4335], perplexity 4.00 |
@@ -296,8 +374,15 @@ sub-100 ms claim.
296
  | Branch-local greedy replay | Exact argmax for all 38400 emitted tokens across 600 scored policy-document rollouts |
297
  | Cross-policy output identity | Identical realized output branches for all 100 calibration/test documents across compared policies |
298
 
 
 
 
299
  Validation intervals measure Monte Carlo uncertainty from the frozen random-window sampler. Acceptance and rollout intervals resample paired target documents. They do not measure training-run or model uncertainty. Null and negative outcomes are retained rather than filtered from the release.
300
 
 
 
 
 
301
  Rollout endpoint scope: The primary endpoint measures accepted drafts per verification. It does not establish verification-width cost or deployment latency. Draft recursions per output token is the registered drafter-work companion; issued drafts per output token is retained only as an issuance proxy. Target forwards exclude the added post-hoc branch-replay forward and independent verification pass.
302
 
303
  Independent replay provenance scope: Unsigned local attestation bound to a pushed pre-execution receipt commit and the registered source, inputs, checkpoint, and argv; it is not a signed external or trusted-execution witness.
@@ -306,6 +391,9 @@ Format-ablation provenance limitation: This is repository-revision evidence, not
306
 
307
  Format-ablation runtime limitation: Run 1 did not record source-file hashes or sampler state in its pre-fix checkpoints. A post-build receipt now hashes all 52 current shard files and binds deterministic visible-grammar normalization, but it does not prove that the bytes were unchanged since training began or recover exact original units. The step-300 process recovery reset the legacy sampler, causing 78,643,200 scheduled token positions, 1.57 percent of the training budget, to replay earlier random windows. sampler_reset_steps [300] matches that reset timing in both arms. Later checkpoints preserve exact sampler RNG state. Exact sampled-example equivalence still cannot be proven.
308
 
 
 
 
309
  One control worth repeating here, because acceptance rate is easy to report
310
  dishonestly: **an initialized model scored higher acceptance than a trained one
311
  in the E0 instrument pilot** (0.482 against 0.331 for a model deliberately
@@ -356,8 +444,8 @@ without its exact initialized floor beside it is uninterpretable.
356
  ```
357
 
358
 
359
- <div style="background:#f4f1e8;border-top:1px solid #cbd0bf;margin-top:36px;padding:24px;display:flex;align-items:center;flex-wrap:wrap;gap:18px;color:#263f32;">
360
- <img src="./assets/wisp-wildflowers.png" alt="" style="flex:0 1 180px;width:180px;max-width:100%;height:auto;object-fit:contain;margin:0;" />
361
  <div style="flex:1 1 210px;min-width:0;">
362
  <p style="font-size:11px;letter-spacing:1.5px;color:#50614e;margin:0 0 8px;">SMALL MODEL. OPEN QUESTIONS.</p>
363
  <p style="font-family:Georgia,serif;font-size:42px;letter-spacing:-2px;line-height:1.15;color:#263f32;margin:0 0 12px;">Stay <em style="color:#ad3f5a;">curious.</em></p>
@@ -365,4 +453,4 @@ without its exact initialized floor beside it is uninterpretable.
365
  </div>
366
  </div>
367
 
368
- <sub>Original AI-generated floral artwork shared with the Wisp demo. [Artwork notes](./assets/ARTWORK.md).</sub>
 
13
  pipeline_tag: text-generation
14
  ---
15
 
16
+ <!-- The Wisp Fieldbook: a native Hugging Face model card. -->
17
+ <div id="wisp-cover" class="group" style="background-color:#f4f1e8;background-image:radial-gradient(#d7d7c7 0.65px,transparent 0.65px);background-size:7px 7px;color:#263f32;border:1px solid #cbd0bf;padding:clamp(22px,4vw,38px);margin:8px 0 24px;">
18
+ <div style="display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;border-bottom:1px solid #aebaa0;padding-bottom:16px;margin-bottom:28px;">
19
+ <h1 id="wisp-coder-110m" style="font-family:Arial,sans-serif;font-size:13px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:#263f32;margin:0;line-height:1.6;">Wisp Coder 110M</h1>
20
+ <span style="font-family:Georgia,serif;font-size:13px;font-style:italic;color:#8e3049;">The Fieldbook / No. 001</span>
21
+ </div>
22
  <div style="display:flex;align-items:center;flex-wrap:wrap;gap:20px;">
23
  <div style="flex:1 1 250px;min-width:0;">
24
+ <p style="font-size:10px;letter-spacing:1.5px;color:#5d704f;margin:0 0 18px;">CODE Β· CONTEXT Β· CURIOSITY</p>
25
+ <p style="font-family:Georgia,serif;font-size:clamp(52px,6vw,72px);font-weight:400;letter-spacing:-3px;line-height:1;color:#263f32;margin:0 0 24px;">Mind<br><em style="color:#ad3f5a;">the gap.</em></p>
26
+ <p style="font-family:Georgia,serif;font-size:18px;line-height:1.6;color:#3b5041;margin:0 0 24px;">A fieldbook for a small code model.<br>Explore what happens between<br>the lines.</p>
27
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="https://huggingface.co/spaces/philipjohnbasile/wisp-coder-demo" style="display:inline-block;background:#263f32;color:#fffdf5;padding:13px 19px;text-decoration:none;font-size:14px;font-weight:600;border:1px solid #263f32;box-shadow:4px 4px 0 #ccd4bc;">Enter the playground <span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-hover:translate-x-0.5" style="display:inline-block;">β†—</span></a>
28
+ <p style="font-size:11px;line-height:1.7;color:#50614e;margin:22px 0 0;">An open research experiment<br>by Philip John Basile</p>
29
+ </div>
30
+ <div style="flex:1 1 270px;min-width:0;max-width:100%;padding:12px 8px;">
31
+ <img class="wisp-botanical motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-hover:scale-105 group-hover:rotate-6" src="./assets/wisp-wildflowers.png" alt="Original painted wildflowers in pink, coral, cobalt and green. They gently turn when you hover over the cover." style="width:100%;max-width:100%;height:auto;object-fit:contain;margin:0;" />
32
+ <p style="font-family:Georgia,serif;font-style:italic;color:#5d704f;font-size:14px;text-align:right;margin:20px 5px 0;">Small model. Open questions.</p>
33
  </div>
 
34
  </div>
35
+ <div style="display:flex;flex-wrap:wrap;gap:14px 25px;border-top:1px solid #aebaa0;margin-top:28px;padding-top:18px;">
36
+ <div><span style="font-family:Georgia,serif;font-size:26px;color:#263f32;">100.7M</span><br><span style="font-size:10px;letter-spacing:1px;color:#50614e;">TRUNK PARAMETERS</span></div>
37
+ <div><span style="font-family:Georgia,serif;font-size:26px;color:#ad3f5a;">108.2M</span><br><span style="font-size:10px;letter-spacing:1px;color:#50614e;">INCLUDING MTP</span></div>
38
+ <div><span style="font-family:Georgia,serif;font-size:26px;color:#263f32;">2,048</span><br><span style="font-size:10px;letter-spacing:1px;color:#50614e;">TOKEN CONTEXT</span></div>
39
  </div>
40
  </div>
41
 
42
+ <div style="display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 24px;">
43
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="#start-here" style="display:inline-block;padding:8px 12px;border:1px solid #aebaa0;background:#f4f1e8;color:#263f32;font-size:12px;text-decoration:none;"><span style="color:#ad3f5a;">01</span> &nbsp; Start here</a>
44
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="#architecture" style="display:inline-block;padding:8px 12px;border:1px solid #aebaa0;background:#f4f1e8;color:#263f32;font-size:12px;text-decoration:none;"><span style="color:#ad3f5a;">02</span> &nbsp; Architecture</a>
45
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="#usage" style="display:inline-block;padding:8px 12px;border:1px solid #aebaa0;background:#f4f1e8;color:#263f32;font-size:12px;text-decoration:none;"><span style="color:#ad3f5a;">03</span> &nbsp; Usage</a>
46
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="#evaluation" style="display:inline-block;padding:8px 12px;border:1px solid #aebaa0;background:#f4f1e8;color:#263f32;font-size:12px;text-decoration:none;"><span style="color:#ad3f5a;">04</span> &nbsp; Evidence</a>
47
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="#limitations" style="display:inline-block;padding:8px 12px;border:1px solid #aebaa0;background:#f4f1e8;color:#263f32;font-size:12px;text-decoration:none;"><span style="color:#ad3f5a;">05</span> &nbsp; Limits</a>
48
+ </div>
49
 
50
  [Explore the model guide](https://huggingface.co/spaces/philipjohnbasile/local-ai-guide) Β· [All public work](https://huggingface.co/philipjohnbasile)
51
 
 
58
  [Short-hole evaluation](./fim-competitive-v1/FIM_RESULTS.md) Β·
59
  [Selected work](https://huggingface.co/collections/philipjohnbasile/start-here-selected-work-6aa309b179b2a196db52a12b)
60
 
61
+ <div id="wisp-cursor" style="background:#263f32;color:#f7f2e6;padding:24px;margin:26px 0;border:1px solid #46614a;">
62
+ <p style="font-size:11px;letter-spacing:1.6px;color:#e8bcd0;margin:0 0 9px;">ANATOMY OF A GAP</p>
63
+ <h3 style="font-family:Georgia,serif;font-weight:400;font-size:32px;line-height:1.2;color:#f7f2e6;margin:0 0 12px;">A little room <em style="color:#f3a4b8;">for possibility.</em></h3>
64
+ <p style="font-size:13px;line-height:1.7;color:#dae1cd;margin:0 0 20px;">Open a piece of the prompt to look inside.</p>
65
+ <div style="display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;">
66
+ <details id="wisp-prefix" name="wisp-prompt" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="flex:1 1 150px;min-width:0;border:1px solid #80917a;background:#2b4436;color:#f7f2e6;">
67
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:16px;">
68
+ <span style="display:block;font-size:10px;letter-spacing:1px;color:#dae1cd;margin:0 0 10px;">YOU PROVIDE</span>
69
+ <span style="display:flex;align-items:center;justify-content:space-between;font-family:Georgia,serif;font-size:24px;color:#f7f2e6;margin:0 0 6px;">Prefix<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="display:inline-block;font-family:Arial,sans-serif;font-size:18px;">βŒ„</span></span>
70
+ <span style="display:block;font-size:13px;line-height:1.6;color:#dae1cd;">Code before the gap</span>
71
+ </summary>
72
+ <div style="border-top:1px dashed #80917a;padding:16px;"><p style="font-size:13px;line-height:1.7;color:#f7f2e6;margin:0 0 12px;">The source context before the missing span.</p><code style="display:block;overflow-wrap:anywhere;white-space:normal;background:#203328;color:#f7f2e6;font-size:11px;padding:7px;">&lt;|fim_prefix|&gt;</code></div>
73
+ </details>
74
+ <details id="wisp-middle" name="wisp-prompt" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="flex:1 1 150px;min-width:0;border:1px solid #ad6d80;background:#f1aec0;color:#49252e;">
75
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:16px;">
76
+ <span style="display:block;font-size:10px;letter-spacing:1px;color:#592d39;margin:0 0 10px;">WISP SUGGESTS</span>
77
+ <span style="display:flex;align-items:center;justify-content:space-between;font-family:Georgia,serif;font-size:24px;color:#49252e;margin:0 0 6px;">Middle<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="display:inline-block;font-family:Arial,sans-serif;font-size:18px;">βŒ„</span></span>
78
+ <span style="display:block;font-size:13px;line-height:1.6;color:#592d39;">The missing span</span>
79
+ </summary>
80
+ <div style="border-top:1px dashed #ad6d80;padding:16px;"><p style="font-size:13px;line-height:1.7;color:#49252e;margin:0 0 12px;">The model predicts this span using both sides of the gap. Review its suggestion before use.</p><code style="display:block;overflow-wrap:anywhere;white-space:normal;background:#f8d5df;color:#49252e;font-size:11px;padding:7px;">&lt;|fim_middle|&gt;</code></div>
81
+ </details>
82
+ <details id="wisp-suffix" name="wisp-prompt" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="flex:1 1 150px;min-width:0;border:1px solid #80917a;background:#2b4436;color:#f7f2e6;">
83
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:16px;">
84
+ <span style="display:block;font-size:10px;letter-spacing:1px;color:#dae1cd;margin:0 0 10px;">YOU PROVIDE</span>
85
+ <span style="display:flex;align-items:center;justify-content:space-between;font-family:Georgia,serif;font-size:24px;color:#f7f2e6;margin:0 0 6px;">Suffix<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="display:inline-block;font-family:Arial,sans-serif;font-size:18px;">βŒ„</span></span>
86
+ <span style="display:block;font-size:13px;line-height:1.6;color:#dae1cd;">Code after the gap</span>
87
+ </summary>
88
+ <div style="border-top:1px dashed #80917a;padding:16px;"><p style="font-size:13px;line-height:1.7;color:#f7f2e6;margin:0 0 12px;">The source context after the missing span. In PSM prompt order, this comes before the generated middle.</p><code style="display:block;overflow-wrap:anywhere;white-space:normal;background:#203328;color:#f7f2e6;font-size:11px;padding:7px;">&lt;|fim_suffix|&gt;</code></div>
89
+ </details>
90
  </div>
91
  <p style="font-size:13px;line-height:1.7;color:#dae1cd;margin:18px 0 0;">Provide the code on both sides of a gap. Wisp predicts the middle. <a href="https://huggingface.co/spaces/philipjohnbasile/wisp-coder-demo" style="color:#f3b7ca;text-decoration:underline;">Explore it in the playground β†—</a></p>
92
  </div>
93
 
94
+ <p style="font-size:12px;letter-spacing:1px;margin:26px 0 14px;">THE SPECIMEN NOTES &nbsp; / &nbsp; OPEN A CARD TO EXPLORE</p>
95
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));align-items:start;gap:14px;margin:0 0 30px;">
96
+ <details id="wisp-note-1" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="background:#f4f1e8;border:1px solid #cbd0bf;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
97
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:22px;">
98
+ <span style="display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 12px;">PURPOSE<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="font-size:17px;display:inline-block;">βŒ„</span></span>
99
+ <span style="display:block;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;color:#263f32;">What is it for?</span>
100
+ </summary>
101
+ <div style="padding:0 22px 22px;"><p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;border-top:1px dashed #aebaa0;padding-top:15px;">Research on code completion, fill-in-the-middle (FIM), and native multi-token prediction (MTP).</p></div>
102
+ </details>
103
+ <details id="wisp-note-2" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="background:#ecefdf;border:1px solid #cbd0bf;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
104
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:22px;">
105
+ <span style="display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 12px;">FROM STEP ZERO<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="font-size:17px;display:inline-block;">βŒ„</span></span>
106
+ <span style="display:block;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;color:#263f32;">What did I build?</span>
107
+ </summary>
108
+ <div style="padding:0 22px 22px;"><p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;border-top:1px dashed #aebaa0;padding-top:15px;">Philip John Basile&#x27;s model trained from step zero: 100.7M trunk parameters, 108.2M including the MTP module.</p></div>
109
+ </details>
110
+ <details id="wisp-note-3" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="background:#f4f1e8;border:1px solid #cbd0bf;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
111
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:22px;">
112
+ <span style="display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 12px;">RUNTIME<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="font-size:17px;display:inline-block;">βŒ„</span></span>
113
+ <span style="display:block;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;color:#263f32;">What runs it?</span>
114
+ </summary>
115
+ <div style="padding:0 22px 22px;"><p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;border-top:1px dashed #aebaa0;padding-top:15px;">The trunk uses standard Transformers or MLX-LM. MTP requires the explicit packaged MLX reference runtime; generic loaders do not activate the sidecar.</p></div>
116
+ </details>
117
+ <details id="wisp-note-4" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="background:#f4f1e8;border:1px solid #cbd0bf;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
118
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:22px;">
119
+ <span style="display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 12px;">RECENT CHECK<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="font-size:17px;display:inline-block;">βŒ„</span></span>
120
+ <span style="display:block;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;color:#263f32;">What was checked recently?</span>
121
+ </summary>
122
+ <div style="padding:0 22px 22px;"><p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;border-top:1px dashed #aebaa0;padding-top:15px;">CPU float32 completions with PyTorch 2.13.0 and Transformers 5.14.1 on 2026-09-10. These are functional smokes, not a coding-quality or latency benchmark.</p></div>
123
+ </details>
124
+ <details id="wisp-note-5" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="background:#ecefdf;border:1px solid #cbd0bf;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
125
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:22px;">
126
+ <span style="display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 12px;">WEIGHT SIZE<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="font-size:17px;display:inline-block;">βŒ„</span></span>
127
+ <span style="display:block;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;color:#263f32;">How much memory?</span>
128
+ </summary>
129
+ <div style="padding:0 22px 22px;"><p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;border-top:1px dashed #aebaa0;padding-top:15px;">Trunk weight file: about 201 MB in BF16, or about 403 MB as FP32 tensors. Runtime overhead and the KV cache require additional RAM; these are weight sizes, not total-memory requirements.</p></div>
130
+ </details>
131
+ <details id="wisp-note-6" class="group motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" open style="background:#f6e8e8;border:1px solid #cbd0bf;color:#263f32;box-shadow:3px 3px 0 rgba(132,150,111,0.16);">
132
+ <summary class="focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;list-style:none;padding:22px;">
133
+ <span style="display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;color:#8e3049;margin:0 0 12px;">RESEARCH SCOPE<span class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-open:rotate-180" style="font-size:17px;display:inline-block;">βŒ„</span></span>
134
+ <span style="display:block;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.2;color:#263f32;">What are the limits?</span>
135
+ </summary>
136
+ <div style="padding:0 22px 22px;"><p style="font-size:14px;line-height:1.7;color:#354b3b;margin:0;border-top:1px dashed #aebaa0;padding-top:15px;">2,048-token context; limited completion quality; no chat tuning. The registered short-hole comparison established no superiority, and no production MTP speedup is claimed.</p></div>
137
+ </details>
138
  </div>
139
 
140
  ### Quick start β€” ordinary completion on CPU
141
 
142
+ <details class="group" open style="border:1px solid #829471;margin:20px 0;padding:0;">
143
+ <summary class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;padding:16px 20px;background:#ecefdf;color:#263f32;font-family:Georgia,serif;font-size:20px;">Run an ordinary completion on CPU</summary>
144
+ <div style="padding:4px 20px 16px;">
145
+
146
  ```bash
147
  pip install "torch==2.13.0" "transformers==5.14.1"
148
  ```
 
164
  print(tokenizer.decode(output[0], skip_special_tokens=True))
165
  ```
166
 
167
+ </div>
168
+ </details>
169
+
170
  Review generated code before using it. The demo also provides FIM prompts and displays raw suggestions without executing them. The full training, data-provenance, and evaluation disclosures follow.
171
 
172
  ### The idea
 
218
  <h2 id="architecture" style="font-family:Georgia,serif;font-size:30px;line-height:1.2;font-weight:400;letter-spacing:-0.6px;color:#263f32;margin:0;padding:0;border:0;">Architecture</h2>
219
  </div>
220
 
221
+ <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px;margin:24px 0;">
222
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="https://huggingface.co/philipjohnbasile/wisp-coder-110m/blob/main/config.json" style="display:block;background:#ecefdf;border:1px solid #aebaa0;padding:22px;color:#263f32;text-decoration:none;">
223
+ <span style="display:block;font-size:10px;letter-spacing:1.4px;color:#50614e;margin-bottom:12px;">ROUTE A / THE TRUNK</span><span style="display:block;font-family:Georgia,serif;font-size:27px;line-height:1.2;color:#263f32;margin-bottom:12px;">An ordinary Llama decoder.</span><span style="display:block;font-size:13px;line-height:1.7;color:#354b3b;">100.7M parameters. Standard Transformers and MLX-LM loading.</span><span style="display:block;font-size:12px;color:#8e3049;margin-top:16px;">Inspect the configuration β†—</span>
224
+ </a>
225
+ <a class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" href="https://huggingface.co/philipjohnbasile/wisp-coder-110m/blob/main/wisp_mtp_reference.py" style="display:block;background:#f6e8e8;border:1px solid #c79eaa;padding:22px;color:#263f32;text-decoration:none;">
226
+ <span style="display:block;font-size:10px;letter-spacing:1.4px;color:#8e3049;margin-bottom:12px;">ROUTE B / NATIVE MTP</span><span style="display:block;font-family:Georgia,serif;font-size:27px;line-height:1.2;color:#263f32;margin-bottom:12px;">A shared drafting module.</span><span style="display:block;font-size:13px;line-height:1.7;color:#354b3b;">108.2M parameters with the sidecar. Use the explicit MLX correctness runtime.</span><span style="display:block;font-size:12px;color:#8e3049;margin-top:16px;">Read the reference runtime β†—</span>
227
+ </a>
228
+ </div>
229
+ <p style="font-size:13px;"><a href="https://huggingface.co/philipjohnbasile/wisp-coder-110m/blob/main/export_manifest.json">Export manifest β†—</a> &nbsp; Β· &nbsp; <a href="https://huggingface.co/philipjohnbasile/wisp-coder-110m/blob/main/mtp_config.json">MTP configuration β†—</a></p>
230
+
231
  | | |
232
  |---|---|
233
  | Parameters | 108.2M total, 100.7M trunk |
 
265
  Common Crawl terms. Run 1 retained no row-level source manifest, so no per-file
266
  licensing or attribution guarantee is made.
267
 
268
+ <details class="group" style="border:1px solid #829471;margin:20px 0;padding:0;">
269
+ <summary class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;padding:16px 20px;background:#ecefdf;color:#263f32;font-family:Georgia,serif;font-size:20px;">Open the training-data provenance notes</summary>
270
+ <div style="padding:4px 20px 16px;">
271
+
272
  Every run 1 document received structural size, line-length, and character
273
  distribution filters. Because the loader expected `path` instead of
274
  StarCoderData's `max_stars_repo_path`, Python AST and JSON extension filtering
 
282
  Current shard bytes are fully attested after the build, but the receipt is not a
283
  raw-row manifest and cannot prove exact original example boundaries.
284
 
285
+ </div>
286
+ </details>
287
+
288
  The Apache 2.0 metadata describes the released Wisp artifact. It does not
289
  override training-source terms or licenses applicable to generated code.
290
 
 
345
  </div>
346
 
347
  <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin:0 0 24px;">
348
+ <div class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="padding:18px;background:#ecefdf;border-top:3px solid #74845c;color:#263f32;"><p style="font-size:10px;letter-spacing:1px;color:#4a603d;margin:0 0 9px;">FUNCTIONAL CHECKS</p><p style="font-family:Georgia,serif;font-size:23px;line-height:1.2;color:#263f32;margin:0 0 10px;">CPU completions.</p><p style="font-size:13px;line-height:1.7;color:#354b3b;margin:0;">CPU completion smokes are documented above. They do not measure coding quality or latency.</p></div>
349
+ <div class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="padding:18px;background:#f4f1e8;border-top:3px solid #ad3f5a;color:#263f32;"><p style="font-size:10px;letter-spacing:1px;color:#8e3049;margin:0 0 9px;">SHORT-HOLE COMPARISON</p><p style="font-family:Georgia,serif;font-size:23px;line-height:1.2;color:#263f32;margin:0 0 10px;">No superiority.</p><p style="font-size:13px;line-height:1.7;color:#354b3b;margin:0;">No superiority was established. <a href="https://huggingface.co/philipjohnbasile/wisp-coder-110m/blob/main/fim-competitive-v1/FIM_RESULTS.md" style="color:#8e3049;">Read the comparison β†—</a></p></div>
350
+ <div class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%]" style="padding:18px;background:#f6e8e8;border-top:3px solid #ad3f5a;color:#263f32;"><p style="font-size:10px;letter-spacing:1px;color:#8e3049;margin:0 0 9px;">MTP RUNTIME</p><p style="font-family:Georgia,serif;font-size:23px;line-height:1.2;color:#263f32;margin:0 0 10px;">Speed is open.</p><p style="font-size:13px;line-height:1.7;color:#354b3b;margin:0;">No production MTP speedup is claimed. The packaged MLX runtime checks correctness.</p></div>
351
  </div>
352
 
353
  ### Registered final results
354
 
355
+ <details class="group" open style="border:1px solid #829471;margin:20px 0;padding:0;">
356
+ <summary class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;padding:16px 20px;background:#ecefdf;color:#263f32;font-family:Georgia,serif;font-size:20px;">Open the complete registered results</summary>
357
+ <div style="padding:4px 20px 16px;">
358
+
359
  | Measurement | Result |
360
  |---|---|
361
  | Final validation main NLL | 1.3873 [1.3428, 1.4335], perplexity 4.00 |
 
374
  | Branch-local greedy replay | Exact argmax for all 38400 emitted tokens across 600 scored policy-document rollouts |
375
  | Cross-policy output identity | Identical realized output branches for all 100 calibration/test documents across compared policies |
376
 
377
+ </div>
378
+ </details>
379
+
380
  Validation intervals measure Monte Carlo uncertainty from the frozen random-window sampler. Acceptance and rollout intervals resample paired target documents. They do not measure training-run or model uncertainty. Null and negative outcomes are retained rather than filtered from the release.
381
 
382
+ <details class="group" style="border:1px solid #829471;margin:20px 0;padding:0;">
383
+ <summary class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] hover:scale-[1.01] hover:brightness-[102%] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-500" style="cursor:pointer;padding:16px 20px;background:#ecefdf;color:#263f32;font-family:Georgia,serif;font-size:20px;">Read the sampler, replay and provenance notes</summary>
384
+ <div style="padding:4px 20px 16px;">
385
+
386
  Rollout endpoint scope: The primary endpoint measures accepted drafts per verification. It does not establish verification-width cost or deployment latency. Draft recursions per output token is the registered drafter-work companion; issued drafts per output token is retained only as an issuance proxy. Target forwards exclude the added post-hoc branch-replay forward and independent verification pass.
387
 
388
  Independent replay provenance scope: Unsigned local attestation bound to a pushed pre-execution receipt commit and the registered source, inputs, checkpoint, and argv; it is not a signed external or trusted-execution witness.
 
391
 
392
  Format-ablation runtime limitation: Run 1 did not record source-file hashes or sampler state in its pre-fix checkpoints. A post-build receipt now hashes all 52 current shard files and binds deterministic visible-grammar normalization, but it does not prove that the bytes were unchanged since training began or recover exact original units. The step-300 process recovery reset the legacy sampler, causing 78,643,200 scheduled token positions, 1.57 percent of the training budget, to replay earlier random windows. sampler_reset_steps [300] matches that reset timing in both arms. Later checkpoints preserve exact sampler RNG state. Exact sampled-example equivalence still cannot be proven.
393
 
394
+ </div>
395
+ </details>
396
+
397
  One control worth repeating here, because acceptance rate is easy to report
398
  dishonestly: **an initialized model scored higher acceptance than a trained one
399
  in the E0 instrument pilot** (0.482 against 0.331 for a model deliberately
 
444
  ```
445
 
446
 
447
+ <div class="group" style="background:#f4f1e8;border-top:1px solid #cbd0bf;margin-top:36px;padding:24px;display:flex;align-items:center;flex-wrap:wrap;gap:18px;color:#263f32;">
448
+ <img class="motion-safe:transition-transform motion-safe:duration-[400ms] motion-safe:[transition-timing-function:ease] group-hover:scale-105 group-hover:-rotate-6" src="./assets/wisp-wildflowers.png" alt="" style="flex:0 1 180px;width:180px;max-width:100%;height:auto;object-fit:contain;margin:0;" />
449
  <div style="flex:1 1 210px;min-width:0;">
450
  <p style="font-size:11px;letter-spacing:1.5px;color:#50614e;margin:0 0 8px;">SMALL MODEL. OPEN QUESTIONS.</p>
451
  <p style="font-family:Georgia,serif;font-size:42px;letter-spacing:-2px;line-height:1.15;color:#263f32;margin:0 0 12px;">Stay <em style="color:#ad3f5a;">curious.</em></p>
 
453
  </div>
454
  </div>
455
 
456
+ <sub>The Wisp Fieldbook. Original AI-generated floral artwork shared with the Wisp demo. [Artwork notes](./assets/ARTWORK.md).</sub>