开源研究 🇺🇸 24.07.2026 01:03

Gigatoken:用Rust实现的BPE分词器,编码速度达24.53 GB/s,比HuggingFace Tokenizers快989倍

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
斯坦福博士生Marcel Roed发布了Gigatoken,一个用Rust编写、带有Python绑定的BPE分词器。在144核AMD EPYC上,其编码速度高达24.53 GB/s,比HuggingFace Tokenizers快989倍,比tiktoken快681倍。速度提升源于手写的SWAR预分词器和预分词缓存。
Gigatoken 是一个用 Rust 编写并带有 Python 绑定的字节对编码(BPE)分词库,由斯坦福大学博士生 Marcel Rød 开发,采用 MIT 许可协议。0.9.0 版本已在 PyPI 上发布(pip install gigatoken)。在配备双 144 核 AMD EPYC 9565 的系统上,针对 GPT-2 的基准测试中,Gigatoken 的数据处理速度达到 24.53 GB/s。相比之下,OpenAI 的 tiktoken 为 36.0 MB/s,HuggingFace tokenizers 为 24.8 MB/s,即 Gigatoken 分别快 681 倍和 989 倍。在 Apple M4 Max(16 核)上,速度为 8.79 GB/s(比 HuggingFace 快 1268 倍,比 tiktoken 快 140 倍);在 AMD Ryzen 7 9800X3D 上,速度为 6.27 GB/s(快 106 倍和 68 倍)。性能提升并非源于更快的 BPE 合并循环,而是通过手写预分词器实现,该预分词器采用了寄存器内单指令多数据(SWAR)技术和预分词缓存。最初基于正则表达式的预分词器速度约为 47 MB/s;经过优化(手动状态机、SWAR、具有指令级并行(ILP)的双指针)后,速度提升至 1049 MB/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 倍加速)和原生模式(最大速度)。SentencePiece 分词器加速 7–22 倍,不支持 WordPiece。在 KrabArena(4 个 vCPU Intel Xeon)上的独立复现显示,相比 tiktoken 加速 26.2 倍,相比 tokenizers 加速 83.4 倍。
来源: MarkTechPost — 原文
我们之前关于此话题的帖子 ↓
最新新闻