chore: first round of cleanup in preparation for 1.0.0rc0 - #2328
Merged
Conversation
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
SBrandeis
force-pushed
the
chore/cleanup
branch
2 times, most recently
from
August 10, 2026 12:47
5ad9a2b to
da313a2
Compare
SBrandeis
force-pushed
the
chore/cleanup
branch
from
August 10, 2026 13:44
47e0968 to
6d64f78
Compare
SBrandeis
marked this pull request as ready for review
August 11, 2026 08:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PipelineTokenizer benchmark
10 / 10 models supported — PipelineTokenizer vs
tokenizersv0.23.1 (latest release) · pipeline: whole corpus · release: ~2 MB/fixture sample · ~10 kB chunks · cold caches · add_special_tokens on · 2/4-thread sweep per groupf82130ba4 · 2026-08-10 16:03 UTC· Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz · 48 coresDecode — the release encodes each fixture's decode sample (
add_special_tokens=true) and both implementations decode those SAME ids withskip_special_tokens=false, so the comparison is decode alone. MB/s counts the input bytes the ids came from, the same denominator as the encode charts.vs base branch (
89c9377f4) — per-model geomean ×speedup of this PR's PipelineTokenizer against the base branch's; regressions in red.base numbers measured in this run's jobs, on the same runners as the PR's
Work vs base (
89c9377f4, allocation lane):allocation lane measured on: Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz · glibc 2.39
bert-base-uncased — normalizer-heavy WordPiece · ×5.04 vs v0.23.1 · ×1.04 vs base · decode ×0.99
Memory (RSS MB, load+encode+decode): v0.23.1 7+11+0 (peak 37) · Pipeline 4+4+1 (peak 42)
Allocations (encode pass, whole corpus): v0.23.1: 159.5M allocs, 52.04 GB allocated, peak live 37 MB; Pipeline: 37.1k allocs, 0.32 GB allocated, peak live 45 MB
Allocations (decode pass, decode sample): v0.23.1: 98.5M allocs, 1.26 GB allocated; Pipeline: 98.5M allocs, 1.26 GB allocated
deepseek-v4 — deepseek 3-regex split-heavy byte-level BPE · ×14.95 vs v0.23.1 · ×1.01 vs base · decode ×13.28
Memory (RSS MB, load+encode+decode): v0.23.1 56+0+0 (peak 75) · Pipeline 16+0+0 (peak 56)
Allocations (encode pass, whole corpus): v0.23.1: 153.2M allocs, 38.67 GB allocated, peak live 66 MB; Pipeline: 28.0k allocs, 0.23 GB allocated, peak live 57 MB
Allocations (decode pass, decode sample): v0.23.1: 15.3M allocs, 0.77 GB allocated; Pipeline: 7.4k allocs, 0.06 GB allocated
gemma-4 — byte-fallback BPE, Metaspace-style split (gemma-4) · ×3.02 vs v0.23.1 · ×1.05 vs base · decode ×1.55
Memory (RSS MB, load+encode+decode): v0.23.1 285+0+0 (peak 365) · Pipeline 0+0+0 (peak 365)
Allocations (encode pass, whole corpus): v0.23.1: 29.1M allocs, 23.69 GB allocated, peak live 310 MB; Pipeline: 65.2k allocs, 2.35 GB allocated, peak live 310 MB
Allocations (decode pass, decode sample): v0.23.1: 18.9M allocs, 1.79 GB allocated; Pipeline: 18.9M allocs, 1.79 GB allocated
gpt2 — gpt2 ByteLevel regex · ×22.35 vs v0.23.1 · ×1.00 vs base · decode ×29.87
Memory (RSS MB, load+encode+decode): v0.23.1 21+12+0 (peak 82) · Pipeline 2+1+0 (peak 75)
Allocations (encode pass, whole corpus): v0.23.1: 243.3M allocs, 38.17 GB allocated, peak live 79 MB; Pipeline: 34.6k allocs, 0.43 GB allocated, peak live 76 MB
Allocations (decode pass, decode sample): v0.23.1: 30.9M allocs, 1.36 GB allocated; Pipeline: 6.0k allocs, 0.07 GB allocated
gpt-oss — o200k-regex byte-level BPE (gpt-oss) · ×9.96 vs v0.23.1 · ×0.87 vs base · decode ×14.01
Memory (RSS MB, load+encode+decode): v0.23.1 236+0+0 (peak 309) · Pipeline 0+0+0 (peak 311)
Allocations (encode pass, whole corpus): v0.23.1: 127.8M allocs, 29.89 GB allocated, peak live 272 MB; Pipeline: 28.4k allocs, 0.23 GB allocated, peak live 272 MB
Allocations (decode pass, decode sample): v0.23.1: 14.5M allocs, 0.71 GB allocated; Pipeline: 7.4k allocs, 0.05 GB allocated
glm-5.2 — cl100k-variant regex byte-level BPE (glm-5.2) · ×14.33 vs v0.23.1 · ×0.95 vs base · decode ×20.96
Memory (RSS MB, load+encode+decode): v0.23.1 163+0+0 (peak 225) · Pipeline 0+0+0 (peak 226)
Allocations (encode pass, whole corpus): v0.23.1: 154.7M allocs, 33.00 GB allocated, peak live 212 MB; Pipeline: 29.5k allocs, 0.25 GB allocated, peak live 212 MB
Allocations (decode pass, decode sample): v0.23.1: 18.3M allocs, 0.90 GB allocated; Pipeline: 6.8k allocs, 0.05 GB allocated
llama-2 — model-bounded BPE, no pre-tokenizer · ×4.95 vs v0.23.1 · ×1.03 vs base · decode ×1.52
Memory (RSS MB, load+encode+decode): v0.23.1 20+6+0 (peak 62) · Pipeline 0+3+1 (peak 63)
Allocations (encode pass, whole corpus): v0.23.1: 63.0M allocs, 28.31 GB allocated, peak live 61 MB; Pipeline: 67.7k allocs, 0.56 GB allocated, peak live 68 MB
Allocations (decode pass, decode sample): v0.23.1: 35.7M allocs, 3.03 GB allocated; Pipeline: 35.7M allocs, 3.03 GB allocated
llama-3 — cl100k-regex byte-level BPE (llama-3), single regex · ×16.24 vs v0.23.1 · ×0.97 vs base · decode ×18.95
Memory (RSS MB, load+encode+decode): v0.23.1 67+2+0 (peak 89) · Pipeline 7+0+0 (peak 90)
Allocations (encode pass, whole corpus): v0.23.1: 152.3M allocs, 33.83 GB allocated, peak live 91 MB; Pipeline: 28.7k allocs, 0.24 GB allocated, peak live 92 MB
Allocations (decode pass, decode sample): v0.23.1: 17.3M allocs, 0.88 GB allocated; Pipeline: 9.6k allocs, 0.06 GB allocated
mistral-small-4 — tekken byte-level BPE, 1k added specials (mistral-small-4) · ×11.25 vs v0.23.1 · ×0.99 vs base · decode ×14.38
Memory (RSS MB, load+encode+decode): v0.23.1 151+0+0 (peak 188) · Pipeline 0+0+0 (peak 189)
Allocations (encode pass, whole corpus): v0.23.1: 135.2M allocs, 31.26 GB allocated, peak live 185 MB; Pipeline: 28.7k allocs, 0.24 GB allocated, peak live 185 MB
Allocations (decode pass, decode sample): v0.23.1: 16.6M allocs, 0.81 GB allocated; Pipeline: 7.1k allocs, 0.05 GB allocated
t5-base — Unigram + Metaspace · ×3.16 vs v0.23.1 · ×1.09 vs base · decode ×0.95
Memory (RSS MB, load+encode+decode): v0.23.1 31+10+0 (peak 56) · Pipeline 19+11+1 (peak 80)
Allocations (encode pass, whole corpus): v0.23.1: 260.7M allocs, 35.16 GB allocated, peak live 53 MB; Pipeline: 50.7M allocs, 4.68 GB allocated, peak live 98 MB
Allocations (decode pass, decode sample): v0.23.1: 12.0M allocs, 0.64 GB allocated; Pipeline: 12.0M allocs, 0.64 GB allocated