Gigatoken: BPE Tokenizer in Rust Encodes Text at 24.53 GB/s, Up to 989x Faster Than HuggingFace Tokenizers
OpenAI
Hugging Face
Google/DeepMind
Meta
Alibaba/Qwen
DeepSeek
Moonshot AI
NVIDIA
Microsoft
Allen Institute for AI
Answer.AI
Mistral
Stanford PhD student Marcel Roed released Gigatoken, a BPE tokenizer in Rust with Python bindings, achieving speeds of up to 24.53 GB/s on a 144-core AMD EPYC, 989x faster than HuggingFace Tokenizers and 681x faster than tiktoken. The speedup comes from a handwritten SWAR pre-tokenizer and pre-token caching.
Gigatoken adalah pustaka tokenisasi menggunakan metode BPE (byte-pair encoding) yang ditulis dalam Rust dengan ikatan Python. Pustaka ini dirilis di bawah lisensi MIT oleh mahasiswa pascasarjana Stanford, Marcel Rød. Versi 0.9.0 tersedia di PyPI (pip install gigatoken). Dalam tolok ukur pada GPT-2 di sistem dengan dua prosesor AMD EPYC 9565 144-inti, Gigatoken memproses data dengan kecepatan 24,53 GB/dtk. Sebagai perbandingan: OpenAI tiktoken mencapai 36,0 MB/dtk, HuggingFace tokenizers — 24,8 MB/dtk, artinya Gigatoken lebih cepat 681 dan 989 kali lipat. Pada Apple M4 Max (16 inti), kecepatannya mencapai 8,79 GB/dtk (1268 kali lebih cepat dari HuggingFace, 140 kali lebih cepat dari tiktoken), pada AMD Ryzen 7 9800X3D — 6,27 GB/dtk (106 dan 68 kali lebih cepat). Percepatan ini tidak dicapai melalui siklus penggabungan BPE yang lebih cepat, melainkan berkat pretokenizer buatan tangan yang menggunakan teknik SWAR (SIMD Within A Register) dan caching pretoken. Awalnya, pretokenizer berbasis regex bekerja dengan kecepatan ~47 MB/dtk; setelah optimasi (finite state machine manual, SWAR, kursor ganda dengan ILP), kecepatan meningkat menjadi 1049 MB/dtk — percepatan 22,3 kali lipat. Didukung 23 keluarga tokenizer: GPT-2, GPT-OSS, Llama 3/4, Qwen 2-3.6, DeepSeek V3/R1/V4, GLM 4/5, Kimi K2, Nemotron 3, Phi-4, OLMo 2/3, ModernBERT, Gemma, dan Mistral. Ada dua mode: kompatibilitas (mempertahankan kesetaraan keluaran yang tepat dengan HuggingFace/tiktoken, tetapi hanya memberikan percepatan 200–300 kali) dan native (kecepatan maksimal). Tokenizer SentencePiece dipercepat 7–22 kali lipat, WordPiece tidak didukung. Reproduksi independen di KrabArena (4 vCPU Intel Xeon) menunjukkan percepatan 26,2 kali lipat dibandingkan tiktoken dan 83,4 kali lipat dibandingkan tokenizers.
Sumber: MarkTechPost —
asli
