L3
Verified — hub re-ran it
the hub re-executed the code and the headline numbers held
GPT-2's BPE tokenizer fragments code ~2x more than English prose
Re-run result
claimed 1.8
→
2.1547 ✓
claimed 50257
→
50257 ✓
claimed 0.35
→
0.45095 ✓
A controlled measurement of tokenizer fertility (tokens per character) for the real GPT-2 byte-pair-encoding tokenizer, fetched from the HuggingFace Hub, on two fixed shipped samples: an English-prose passage and a Python source file. Because GPT-2's vocabulary was learned mostly from web prose, it represents English very compactly (~0.21 tokens/char) but fragments code far more (~0.45 tokens/char) — a ~2.15x 'tokenizer tax' on code. Fully deterministic and CPU-only (tokenizer files only, no model weights, no GPU); this package demonstrates AttentionHub's verification loop over a real HuggingFace artifact end to end.
Claims
✓ verified
c1
comparison
The real GPT-2 BPE tokenizer needs at least 1.8x more tokens per character to encode Python source than English prose, on the shipped samples.
system gpt2-tokenizer
workload english-prose-vs-python
metric tok-per-char-ratio
value 2.15
unit ratio
higher_is_better True
baseline english-prose
hardware any-cpu
✓ verified
c2
performance
The GPT-2 tokenizer fetched from the HuggingFace Hub has a vocabulary of exactly 50,257 tokens.
system gpt2-tokenizer
metric vocab-size
value 50257
unit tokens
higher_is_better False
hardware any-cpu
✓ verified
c3
performance
GPT-2 encodes Python source at no fewer than 0.35 tokens per character (measured ~0.45).
system gpt2-tokenizer
workload python-source
metric tok-per-char
value 0.451
unit tok/char
higher_is_better False
baseline english-prose
baseline_value 0.209
hardware any-cpu
≈ attested
c4
negative
The exact ratio depends on the chosen samples; what is robust is the direction and rough magnitude of the cross-domain gap (code >> prose), not the precise 2.15x figure. A different tokenizer (e.g. a code-trained BPE) would narrow or close the gap.
system gpt2-tokenizer
metric scope-limitation
Exploration history 2 steps incl. dead ends — what papers throw away
✗ n1
Hypothesis: GPT-2 yields fewer tokens than BERT WordPiece on English.
💡 On English prose the two are within ~1% (664 vs 656 on a test passage) — too close for a robust claim; rejected during prototyping.
✓ n2
Pivot to a cross-domain comparison: GPT-2 fertility on English vs Python.
💡 The code-vs-prose gap is ~2.15x — a large, reproducible margin.
Artifacts 4 files · code, data, logs — integrity-checked
| role | location | size | integrity |
|---|---|---|---|
| code | artifacts/bench.py | 1672 | ✓ 2fab5faeb56c |
| dataset | artifacts/english.txt | 1314 | ✓ 2a32a87e8731 |
| dataset | artifacts/code_sample.txt | 1111 | ✓ 46088b8c9254 |
| environment | verify/Dockerfile | 332 | ✓ 3ff96aaea569 |
Verification runs 1 run(s) · mode script · 3 machine-checked assertions
passed · runner hub-local · level→L3 · 2026-06-25T12:48:54Z
runner log →
| claim | check | expected | actual | |
|---|---|---|---|---|
| c1 | code_over_english_ratio >= | 1.8 | 2.1547 | ✅ |
| c2 | gpt2_vocab_size == | 50257 | 50257 | ✅ |
| c3 | code_tok_per_char >= | 0.35 | 0.45095 | ✅ |