Gigatoken 发布:Rust BPE 分词器速度达 24.53 GB/s,比 HuggingFace 快 989 倍
Gigatoken 是一个 MIT 许可的 Rust BPE 分词器,在 144 核 AMD EPYC 上达到 24.53 GB/s 的编码速度,比 HuggingFace tokenizers 快 989 倍,比 tiktoken 快 681 倍。其核心优化来自手写 SWAR 预分词器和预分词缓存,而非改进 BPE 合并循环。支持 GPT-2、Llama 3/4、DeepSeek V3…
一句话看懂
Gigatoken 是一个 Rust 编写的 BPE 分词器,编码速度高达 24.53 GB/s,比 HuggingFace tokenizers 快近千倍,核心优化来自手写 SWAR 预分词器和缓存。
详细发生了什么
Gigatoken 由斯坦福博士生 Marcel Rød 发布,采用 MIT 许可,旨在解决 tokenization 这一常被忽视的性能瓶颈。在 144 核 AMD EPYC 9565 双路服务器上,Gigatoken 处理 GPT-2 分词任务达到 24.53 GB/s,而 OpenAI 的 tiktoken 为 36.0 MB/s,HuggingFace tokenizers 为 24.8 MB/s,分别快 681 倍和 989 倍。在 Apple M4 Max(16 核)上,速度达 8.79 GB/s,比 HuggingFace 快 1268 倍;在 AMD Ryzen 7 9800X3D 上为 6.27 GB/s,快 106 倍和 68 倍。
Gigatoken 支持 23 种 tokenizer 家族,包括 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。可通过 pip install gigatoken 安装,版本 0.9.0(2026 年 7 月 21 日发布)。提供两种使用模式:兼容模式可保持与 HuggingFace 或 tiktoken 输出完全一致,但速度降至约 200-300 倍;原生 API 则直接由 Rust 读取文件,实现最高性能。
中文圈视角
Gigatoken 对中文用户有直接价值。它原生支持 Qwen 2/3.6、DeepSeek V3/R1/V4、GLM 4/5、Kimi K2 等国产模型的分词器,使用这些模型进行训练或推理时,可以显著提升数据预处理速度。对于需要处理大规模中文语料的团队(如大模型训练、RAG 系统),分词往往是 pipeline 中的瓶颈,Gigatoken 的加速能直接缩短数据准备时间。
Gigatoken 的 SWAR 预分词器不依赖特定架构指令,在普通 x86 CPU 上也能获得数十倍加速,国内开发者无需高端硬件即可受益。不过,兼容模式虽然保留了输出一致性,但速度折损较大,追求极致性能时建议使用原生 API。
目前中文社区对此关注较少,一个盲点是:Gigatoken 对 SentencePiece 词汇表(如 Gemma)的加速仅为 7-22 倍,远低于 BPE 的千倍级别,且不支持 WordPiece。因此,使用 SentencePiece 分词器的模型(如部分中文 NLP 工具)收益有限。另外,Gigatoken 的缓存机制对重复词汇多的中文文本可能更有效,值得进一步测试。
几条值得记住的细节
- Gigatoken 在 144 核 EPYC 上达到 24.53 GB/s,比 HuggingFace tokenizers 快 989 倍,比 tiktoken 快 681 倍。
- 核心优化来自手写 SWAR 预分词器(22.3 倍于 regex 实现)和预分词缓存,而非改进 BPE 合并循环。
- 支持 23 种 tokenizer 家族,包括 Qwen、DeepSeek、GLM、Kimi 等国产模型。
- 兼容模式保持输出完全一致,但速度降至约 200-300 倍;原生 API 实现最高性能。
- 独立复现验证:在 4 vCPU 虚拟机上,Gigatoken 达 277.8 MB/s,比 tiktoken 快 26.2 倍,比 tokenizers 快 83.4 倍。
一句话总结
如果你的工作涉及大规模文本分词(尤其是 BPE 模型),Gigatoken 能节省数小时甚至数天的预处理时间,且对国产模型友好。