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は、Rustで記述されPythonバインディングを持つBPE(byte-pair encoding、バイトペア符号化)方式のトークナイゼーションライブラリです。スタンフォード大学の大学院生マルセル・レード(Marcel Rød)氏によってMITライセンスで公開されています。バージョン0.9.0がPyPI(pip install gigatoken)で利用可能です。2基の144コアAMD EPYC 9565を搭載したシステム上でのGPT-2ベンチマークでは、24.53GB/sのデータ処理速度を記録しました。比較対象として、OpenAI tiktokenが36.0MB/s、HuggingFace tokenizersが24.8MB/sであり、Gigatokenはそれぞれ681倍、989倍高速です。Apple M4 Max(16コア)では8.79GB/s(HuggingFace比1268倍、tiktoken比140倍)、AMD Ryzen 7 9800X3Dでは6.27GB/s(それぞれ106倍、68倍)を達成しています。この高速化は、より高速なBPEマージループによるものではなく、SWAR(SIMD Within A Register)手法を用いた手書きのプリトークナイザーとプリトークンキャッシュによるものです。従来の正規表現ベースのプリトークナイザーは約47MB/sでしたが、最適化(手動ステートマシン、SWAR、ILPを活用したダブルカーソル)により1049MB/sまで向上し、22.3倍の高速化を実現しました。サポートされるトークナイザーファミリーは23種類で、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、Mistralが含まれます。互換モード(HuggingFace/tiktokenの出力と完全に一致するが、高速化は200~300倍に留まる)とネイティブモード(最大速度)の2つの動作モードがあります。SentencePieceトークナイザーは7~22倍高速化されますが、WordPieceはサポートされていません。KrabArena(4 vCPU Intel Xeon)での独立した再現テストでは、tiktoken比26.2倍、tokenizers比83.4倍の高速化が確認されています。
出典: MarkTechPost —
原文
