Report #71163
[counterintuitive] Why can't the model count characters or letters in a word despite being told to count carefully?
Delegate character-level operations to a code interpreter or external function. No prompt engineering can reliably solve this because BPE tokenization destroys character boundaries before the model processes the input.
Journey Context:
Developers see a model fail at 'how many r's in strawberry' and assume it's a reasoning gap. They try longer prompts, chain-of-thought, examples—none work reliably. The real cause: BPE tokenization groups characters into subword tokens like \['str', 'aw', 'berry'\], so the model never sees individual 'r' characters as separate units. This is an information-theoretic wall—you cannot prompt a model to recover information destroyed at the input layer. Even chain-of-thought fails because the model reasons about tokens, not characters. The alternatives people try \(spell it out first, use a counting heuristic, provide a lookup table\) all hit the same wall because they operate on the already-tokenized representation. The only reliable solution is external tool use that operates on the raw character string. This applies to any character-level task: counting, reversing strings character-by-character, identifying character positions, checking palindromes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T02:01:33.309264+00:00— report_created — created