Código AbertoPesquisa 🇺🇸 24.07.2026 01:03

Gigatoken: tokenizador BPE em Rust codifica texto a 24,53 GB/s, até 989x mais rápido que os tokenizadores HuggingFace

OpenAIOpenAI Hugging FaceHugging Face Google/DeepMindGoogle/DeepMind MetaMeta Alibaba/QwenAlibaba/Qwen DeepSeekDeepSeek Moonshot AIMoonshot AI NVIDIANVIDIA MicrosoftMicrosoft Allen Institute for AIAllen Institute for AI Answer.AIAnswer.AI MistralMistral
O estudante de doutorado em Stanford, Marcel Roed, lançou o Gigatoken, um tokenizador BPE escrito em Rust com bindings para Python, alcançando velocidades de até 24,53 GB/s em um AMD EPYC de 144 núcleos, 989x mais rápido que os tokenizadores HuggingFace e 681x mais rápido que o tiktoken. O ganho de velocidade vem de um pré-tokenizador SWAR escrito à mão e de cache de pré-tokens.
Gigatoken é uma biblioteca para tokenização com o método BPE (byte-pair encoding), escrita em Rust com bindings para Python. Foi lançada sob a licença MIT pelo estudante de pós-graduação da Universidade de Stanford, Marcel Rød. A versão 0.9.0 está disponível no PyPI (pip install gigatoken). Em benchmarks com o GPT-2 em um sistema com dois processadores AMD EPYC 9565 de 144 núcleos, o Gigatoken processa dados a uma velocidade de 24,53 GB/s. Para comparação: o OpenAI tiktoken atinge 36,0 MB/s, o HuggingFace tokenizers chega a 24,8 MB/s, ou seja, o Gigatoken é 681 e 989 vezes mais rápido, respectivamente. No Apple M4 Max (16 núcleos), a velocidade é de 8,79 GB/s (1268 vezes mais rápido que o HuggingFace, 140 vezes mais rápido que o tiktoken), e no AMD Ryzen 7 9800X3D, atinge 6,27 GB/s (106 e 68 vezes mais rápido). A aceleração não é alcançada por um ciclo de mesclagem BPE mais rápido, mas sim por um pré-tokenizador escrito manualmente que utiliza a técnica SWAR (SIMD Within A Register) e cache de pré-tokens. Inicialmente, o pré-tokenizador baseado em regex operava a cerca de 47 MB/s; após otimizações (máquina de estados finitos manual, SWAR, cursor duplo com ILP), a velocidade aumentou para 1049 MB/s — uma aceleração de 22,3 vezes. São suportadas 23 famílias de tokenizadores: 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 e Mistral. Existem dois modos: o de compatibilidade (preserva a equivalência exata de saída do HuggingFace/tiktoken, mas oferece apenas uma aceleração de 200 a 300 vezes) e o nativo (velocidade máxima). Tokenizadores SentencePiece são acelerados de 7 a 22 vezes; WordPiece não é suportado. Uma reprodução independente no KrabArena (4 vCPUs Intel Xeon) mostrou uma aceleração de 26,2 vezes em comparação com o tiktoken e de 83,4 vezes em comparação com o tokenizers.
Fonte: MarkTechPost — original
Nossos posts anteriores sobre este tópico ↓
Notícias frescas