英文原标题:tokenizers v1: encode, decode and scaling, measured
本文为英文原文的机器翻译摘要,原文见:Hugging Face Blog ↗
- tokenizers v1 将性能作为核心目标,相比 v0.23 在多种场景下提速可达数十倍,旨在避免 GPU 因等待 CPU 分词而闲置。
- v1 保持与 v0.23 相同的 token ID、API、词表和合并排名,并继续支持 BPE、WordPiece、Unigram 等多种分词模型。
- 主要优化包括:将单一 crate 拆分为工作区、无分配模型、用 SIMD 位流替代正则表达式进行预分词、重写合并循环、引入线程本地词缓存以及原生多线程并行。
- bitcannon 利用 SIMD 指令将输入字节视为位流,每次寄存器操作可处理 64 字节,但仅适用于少数常见语法模式,其他模式仍走正则路径。
- 词缓存将预分词字节映射到 token ID,重复词只需合并一次;合并循环使用调用者拥有的暂存缓冲区和扁平数组,减少内存分配和分支。
关键数据
- v1 相比 v0.23 提速可达数十倍
- bitcannon 每次寄存器操作决定 64 字节
- 八成的模型家族使用 BPE,其余使用 WordPiece 和 Unigram
为什么值得看:分词器正从非瓶颈变为影响 ML 工作流扩展的关键环节,v1 的优化能显著提升大规模训练和推理效率。