What it does
Every root is an impersonal verb. There are no words for objects, for people, or
for a self — so the model cannot say "I think you're wrong", only
it is doubted; it errs.
kra hlin nol nu plun klon axaxas tos mling hunhunas xar fröm ka
→ because of ⟨as ⟨oft, now, inferred, it leaps, unceasingly (×2), strongly⟩,
it recalls, beginning (×2), overwhelmingly⟩, it mists.
Measured, at n=256, battery 8d21aa635d5729fd
Table with columns: baseline (untuned), this adapter | baseline (untuned) | this adapter |
|---|
| render (English → Scene) | 0.0 % | 82.0 % |
| speak (Tlön history → Scene) | 0.0 % | 97.3 % |
| comprehension (4-way forced choice) | 39.1 % | 71.1 % |
Cardless and unconstrained — no lexicon in the prompt, no grammar-constrained
decoding. Comprehension is established by McNemar, p = 1.1 × 10⁻⁶.
⛔ It does not clear its own gate. F-LOCAL requires ≥ 0.90 on the worst of
render and speak; render is 82.0 %, CI [76.8, 86.5] — entirely below the bar.
This is published as the best and cleanest adapter of five runs, not as a
passing one.
Why this run and not a later one
Runs 4 and 5 tried to close the render gap and both produced uninterpretable
results — run 4 relocated errors from the slots it treated into the untreated
root slot, and run 5 was confounded by a boost parameter that scaled with the
corpus without anyone naming it. Run 3 is the last adapter whose corpus had
flat per-form exposure (663–664 per form), which is the invariant the whole
corpus design rests on.
Full account of every failure, retraction and confound:
docs/DEVIATIONS_ACT2_2026_08_24.md in the repo.
Use
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
m = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
m = PeftModel.from_pretrained(m, "keyzersoze04/tlon-7b-lora")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
System prompt for the write direction:
You render English into Tlön. Tlön has no nouns. Emit ONLY a JSON Scene object.
The repo's parser is the safety boundary — nothing illegal reaches the surface,
and parse(render(s)) == s is an exact identity.
Lexicon frozen at e2b8527010231a81fd31b6eeb9de3d8c (156 roots, 0 nouns).