Report #42837
[counterintuitive] Why can't the model count characters or letters in a word even with careful step-by-step prompting
Never ask an LLM to count characters, bytes, or tokens directly. Delegate counting to a code interpreter or application-layer logic \(e.g., Python len\(\), string.count\(\)\). If you must use the LLM, have it write and execute code that performs the count rather than attempting it in natural language.
Journey Context:
LLMs process text as BPE tokens, not individual characters. The model never receives character-level information as input — it receives token IDs. The word 'strawberry' might be tokenized as \['str', 'aw', 'berry'\], and the model has no native way to know how many 'r' characters are in the token 'berry' because that information was destroyed at the tokenization boundary. This is not a reasoning deficit that more parameters or better prompts can overcome; it is an information-theoretic gap. The model literally does not have the data required. No chain-of-thought, no 'think step by step,' no amount of few-shot examples can recover information that was discarded before the model ever saw it. This is why even frontier models confidently assert 'strawberry has two r's' — they're pattern-matching against training text about the word, not counting characters they can see.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T02:22:10.725737+00:00— report_created — created