glassbox-lm the floor, readable

Tsetlin Machine research · the count floor

Every next word,
a sum of votes you can read.

Before a language model made of logical clauses can matter, it has to beat a model that only counts. This page builds that model in your tab: it reads ten public-domain books, counts every pattern of up to five words, and predicts the next word as an exact sum of clause votes, each one traced back to the pages it was counted from.

Open the glass box

Reading ten books…

 

 

1 · the glass box

Write, and read why it guesses what it guesses

Each guess is a vote. A pattern it counted in the books, like “the last two words were best of”, is a clause: it fires when your text ends that way and votes for the words that came next. Your own text is a second source: a memory of what you have written so far.

1Your text

2The next word

    counted in the booksremembered from your text

    3Why

    2 · where the words come from

    A glass box shows how much it copies

    Let the model write on its own, sampling each word from its votes. Every word is shaded by the longest stretch of the books it continues, so you can see at a glance which parts are new and which are copied.

    seed 1 · temperature 0.8

    continues 5 words of a book432new herefrom memory

    3 · the floor, measured in this tab

    How surprised is it by chapters it never counted?

    Nineteen chapters were held out and never counted. The page scores every word of them, once with each amount of context and once with the memory of the chapter so far. Lower is better: perplexity is the number of words it is, on average, choosing between.

    4 · what the programme measured

    Ninety-one claims, written down before the runs

    The first study of glassbox-lm wrote down 91 hypotheses with thresholds before the runs they govern, and reports each one as it came out: 12 met, 11 not met, 7 not judged, 61 never run. Writing them down first is what makes a negative result count.

    12 met11 not met7 not judged61 not run

    Point at a square to read the hypothesis.

    H1.1 not met · kill criterion KB7 triggered

    2.2193 vs 1.3719

    bits per byte on the WikiText-103 test split: the Tsetlin Machine language model against the Kneser-Ney 5-gram on the same tokens. One seed; seeds 2 and 3 were not run.

    run 20260923T042350Z_CP_anchor

    H8.2 met

    5.3 × 10−15

    largest difference in ln P between Kneser-Ney and its clause-vote form over 282,587 validation positions. Kneser-Ney is exactly a clause-vote machine; this page repeats the check above.

    run 20260924T102203Z_cvtm_a3_H8_2

    H8.1 met, against its own signed votes

    1.8280 vs 2.1749

    bits per byte when the learned clauses vote by counts instead of their trained votes: counting beat the trained votes, and still sat at the level of a bigram model (1.8073).

    run 20260924T062704Z_cvtm_H8_1_causal_cp20M

    H8.7 met · validation

    1.3501 → 1.2409

    bits per byte when document clauses add a memory of the article so far, at constant cost per word. The same memory runs on this page.

    run 20260924T102454Z_cvtm_a3_H8_7

    The second study, hierarchical_tm, ended mostly negative as well: its single final test scored AUC 0.735 on same-article pairs, below 0.817 for plain word overlap. Every id, qualifier and run is in the results overview.

    Read this before quoting a number