Darkwood · Symfony · Flow · language
When words change both persuasion and token cost.
Words change the frame
Same offer. Different frame.
Then the tokenizer reads it
words ≠ tokens
chars ≠ tokens
encoding matters
Three axes
Improving one axis can hurt another.
o200k_base · parallel corpus
46
baseline
58
+26.09%
63
+36.96%
this corpus × this tokenizer — not a universal language tax
Same texts · two encodings
| o200k_base | cl100k_base | |
|---|---|---|
| English | 46 | 46 |
| French | 58 | 71 |
| German | 63 | 73 |
corpus × tokenizer × language
o200k_base · German persuasion
Standard
1 tokenmaßgeschneidert
5 tokens+400%
Basis 1 → unverzichtbar 4
Better sales framing can be worse BPE.
Four corners of the experiment
$1,000 → $999
4 → 2cost → investment
1 → 1Standard → maßgeschneidert
1 → 5maßgeschneidert → passend
5 → 2Regressions
all 9 were persuasion · 0 were token_opt
| Original | Replacement | Before | After |
|---|---|---|---|
| Basis | unverzichtbar | 1 | 4 |
| Standard | maßgeschneidert | 1 | 5 |
| Kosten | Investition | 1 | 2 |
| achetez maintenant | plus que trois en stock | 3 | 5 |
A benchmark that only shows green rows is a brochure.
Mixed pair aggregate
62 → 62
Zero change in the total. Huge change underneath.
36 → 45
+9 tokens
26 → 17
−9 tokens
Cancellation ≠ neutrality.
ESTIMATED · 1,000,000 requests · pair tokens
input −$1.35
output −$5.40
input +$1.35
output +$5.40
$0.00
tiny corpus · dated gpt-4o-mini snapshot · not a provider invoice
100,000-token hypothetical window · o200k_base
2,173.91
copies
1,724.14
−20.69%
1,587.30
−26.98%
The model does not get a smaller context window.
The same token budget fits less of this text.
Caveman · method, not a rerun
shorter output ≠ lower total cost
Inspected as methodology. Not a second benchmark on this corpus.
content/nolife-language
php bin/console app:language:benchmark
What I learned
Measure the actual workload before you optimize it.