L21 Negative Q5 · Rebuilt from the written spec
E41: the spec pins how text becomes tokens, but not how tokens become text
QuestionCould two certified programs agree on every number in a receipt yet disagree on what it says?
Run by us; no unaffiliated reproduction
01Why it matters
A receipt is read by people. If two conforming programs can print different text for the same digests, the receipt's meaning is not pinned.
02Method, step by step
- Read the spec against the tokenizers of the two named checkpoints.
- Count vocabulary entries and output indices where turning ids back into text is ambiguous.
- Probe with small Rust examples.
Method as recorded
Read CIS-2 spec v0.3b against the tokenizers of the two checkpoints it names (SmolLM2-135M and Qwen2.5-0.5B) and counted where turning ids back into text is ambiguous. Probes were Rust examples run on one host (Debian 13, x86_64 VM). Run by us.
03Results, exact and sourced
-
R1Two conforming implementations can disagree on a receipt's text.
two conforming implementations can disagree about what a receipt says while agreeing on every digest in it.
Verbatim source cis2-spec / E41_DETOKENIZATION_IS_UNSPECIFIED.md -
R2313 of SmolLM2's 49,152 vocabulary entries are not valid UTF-8 on their own.
**313** of SmolLM2's 49,152 vocab entries are not valid UTF-8 alone (0.64 %)
Verbatim source cis2-spec / E41_DETOKENIZATION_IS_UNSPECIFIED.md -
R3271 of Qwen's 151,936 output indices map to no string in the tokenizer files.
**271** of Qwen's 151,936 logit indices are in neither `model.vocab` nor `added_tokens`
Verbatim source cis2-spec / E41_DETOKENIZATION_IS_UNSPECIFIED.md -
R4All 17 of SmolLM2's special tokens decode to text that re-encodes to different ids, so a rendered control token cannot be told from text spelling it.
**17** of 17 SmolLM2 `added_tokens` decode to text that re-encodes to *different* ids
Verbatim source cis2-spec / E41_DETOKENIZATION_IS_UNSPECIFIED.md
04What it does NOT show
That any real receipt was misread, that other tokenizers behave the same, or that it affects conforming runs on Qwen.
05Scope and caveats
- A gap in our spec (v0.3b), not a defect in the checkpoints; recorded as erratum E-14.
- Two checkpoints only; the counts are properties of those artifacts, not of tokenizers in general.
- The 271 unmapped Qwen ids did not win the argmax on one prompt over 16 decode steps (untriggered on this vector, not shown impossible); no search over prompts was run.
- Qwen's tokenizer.json is refused by the spec's conforming path, so the Qwen gap does not affect conforming runs.
- No survey of other inference specifications; no claim the gap is unusual.
- Run by us on one machine; no unaffiliated reproduction.
06Outcome
The claim or approach failed, or we retracted it.
07What we learned
Matching digests is not the same as matching meaning. The missing piece is a text-level definition; whether v0.4 specifies detokenization or declares it out of scope is a spec-owner decision.
08Check it yourself
- cis2-spec / E41_DETOKENIZATION_IS_UNSPECIFIED.mdhttps://github.com/Aefinity-AI/cis2-spec/blob/main/docs/E41_DETOKENIZATION_IS_UNSPECIFIED.md
Read the page (link above).