Gigatoken: tokenizador BPE en Rust codifica texto a 24,53 GB/s, hasta 989 veces más rápido que HuggingFace Tokenizers
OpenAI
Hugging Face
Google/DeepMind
Meta
Alibaba/Qwen
DeepSeek
Moonshot AI
NVIDIA
Microsoft
Allen Institute for AI
Answer.AI
Mistral
Marcel Roed, estudiante de doctorado en Stanford, lanzó Gigatoken, un tokenizador BPE en Rust con enlaces a Python, que alcanza velocidades de hasta 24,53 GB/s en un AMD EPYC de 144 núcleos, 989 veces más rápido que HuggingFace Tokenizers y 681 veces más rápido que tiktoken. La aceleración proviene de un pre-tokenizador SWAR escrito a mano y del almacenamiento en caché de pre-tokens.
Gigatoken — это библиотека для токенизации методом BPE (byte-pair encoding), написанная на Rust с Python-привязками. Она выпущена под лицензией MIT аспирантом Стэнфорда Марселем Рёдом (Marcel Rød). Версия 0.9.0 доступна на PyPI (pip install gigatoken). В бенчмарках на GPT-2 на системе с двумя 144‑ядерными AMD EPYC 9565 Gigatoken обрабатывает данные со скоростью 24,53 ГБ/с. Для сравнения: OpenAI tiktoken достигает 36,0 МБ/с, HuggingFace tokenizers — 24,8 МБ/с, то есть Gigatoken быстрее в 681 и 989 раз соответственно. На Apple M4 Max (16 ядер) скорость составляет 8,79 ГБ/с (в 1268 раз быстрее HuggingFace, в 140 раз быстрее tiktoken), на AMD Ryzen 7 9800X3D — 6,27 ГБ/с (в 106 и 68 раз). Ускорение достигается не за счёт более быстрого цикла слияния BPE, а благодаря рукописному претокенизатору с использованием техники SWAR (SIMD Within A Register) и кэшированию претокенов. Изначально претокенизатор на базе regex работал со скоростью ~47 МБ/с; после оптимизаций (ручной конечный автомат, SWAR, двойной курсор с ILP) скорость выросла до 1049 МБ/с — ускорение в 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-кратное ускорение) и нативный (максимальная скорость). SentencePiece-токенизаторы ускоряются в 7–22 раза, WordPiece не поддерживается. Независимое воспроизведение на KrabArena (4 vCPU Intel Xeon) показало ускорение в 26,2 раза по сравнению с tiktoken и в 83,4 раза по сравнению с tokenizers.
Fuente: MarkTechPost —
original
