⚡ EILMELDUNG
Gigatoken: BPE-Tokenizer in Rust kodiert Text mit 24,53 GB/s, bis zu 989x schneller als HuggingFace Tokenizers
OpenAI
Hugging Face
Google/DeepMind
Meta
Alibaba/Qwen
DeepSeek
Moonshot AI
NVIDIA
Microsoft
Allen Institute for AI
Answer.AI
Mistral
Gigatoken, ein in Rust geschriebener BPE-Tokenizer von Stanford-Doktorand Marcel Rød, erreicht Textkodierungsgeschwindigkeiten von 24,53 GB/s auf einem 144-Kern-AMD-EPYC-System und übertrifft HuggingFace Tokenizers um das 989-fache und OpenAIs tiktoken um das 681-fache. Die Bibliothek unterstützt 23 Tokenizer-Familien und führt ihre Geschwindigkeit auf einen handoptimierten Pretokenizer mit SWAR-SIMD-Techniken und Pretoken-Caching zurück.
Doktorand Marcel Rød von der Stanford University hat Gigatoken veröffentlicht, einen auf Byte-Pair-Encoding (BPE) basierenden Tokenizer, der in Rust mit Python-Bindungen geschrieben wurde und unter der MIT-Lizenz steht. Auf einem Dual-Socket-System mit einem 144-Kern-AMD-EPYC-9565-Prozessor verarbeitete Gigatoken das 11,9 GB große Korpus owt_train.txt mit einer Geschwindigkeit von 24,53 GB/s, verglichen mit HuggingFace-Tokenizern mit 24,8 MB/s (989-mal langsamer) und OpenAIs tiktoken mit 36,0 MB/s (681-mal langsamer). Auf einem Apple M4 Max mit 16 Kernen erreichte es 8,79 GB/s und übertraf HuggingFace um das 1.268-fache und tiktoken um das 140-fache. Die Leistungssteigerungen resultieren aus einem handgeschriebenen Vortokenizer, der SWAR-Techniken (SIMD Within A Register) nutzt, um 8 Bytes auf einmal mit verzweigungsfreier Arithmetik zu überprüfen, und dabei 1.049 MiB/s für die GPT-2-Vortokenisierung erreicht – eine 22,3-fache Verbesserung gegenüber regex-basierten Ansätzen. Darüber hinaus vermeidet das Caching von Vortokens die Neuberechnung bereits gesehener Wörter. Der Kompatibilitätsmodus mit bestehenden HuggingFace- oder tiktoken-Tokenizern erreicht aufgrund des Python-Overheads eine 200- bis 300-fache Beschleunigung. Unabhängige Benchmarks auf KrabArena mit einer VM mit 4 vCPUs bestätigten einen medianen Durchsatz von 277,8 MB/s, was tiktoken um das 26,2-fache und Tokenizer um das 83,4-fache übertrifft. Die Bibliothek unterstützt 23 Tokenizer-Familien, darunter GPT-2, 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 und Mistral, während SentencePiece-Tokenizer nur eine 7- bis 22-fache Beschleunigung erfahren und WordPiece nicht unterstützt wird.
Quelle: MarkTechPost —
Original
