tokenizers v1:编码、解码与扩展性实测
📌 One-Sentence Summary Hugging Face 的 tokenizers v1 候选版本重写了编码路径,采用手写 SIMD 分词器、词缓存、无分配合并循环和原生并行,编码速度比 v0.23 快 3–30 倍,同时产出完全相同的 token ID。 📝 Summary 本文宣布 tokenizers v1 候选版本发布,这是 Hugging Face tokenizer 库以性能为核心的重写版本,保留了 v0.23 的 API、词表、合并排名和输出 token ID,同时单线程编码速度提升 3 到 30 倍,八线程扩展效率达到线性的 76%。作者认为,随着模型加速和工作负载扩展,长期被视为可忽略的 tokenization 正成为瓶颈,导致 GPU 数据饥饿。核心改动包括:将工作区拆分为 tk-encode、tk-serialize、tk-convert 和 tk-train;用 bitcannon 替代正则分词器,针对常见字节级 BPE 语法使用 SIMD 位流操作;线程本地词缓存,对重复的预 token 进行记忆化;合并循环使用调用方拥有的暂存缓冲区、侵入式双向链表和 64 位打包候选对,避免分配和分支;以及原生并行,每个线程从自己的子池中获取暂存缓冲区和缓存。来自 tokbench 仓库的基准测试涵盖单线程和多线程吞吐量、按模型和按语言的对比、延迟、解码吞吐量、内存堆和 crate 大小,并遵循严格的方法论规则,如单一计时循环、排除加载时间、验证 ID 哈希和物理核心绑定。文章还列出了 1.0.0 版本剩余的工作,包括训练和推理使用单一编码实现、可选的偏移量和掩码、重做的规范化器、更简单的 Python 绑定和仅推理的 C/C++ 绑定,并勾勒了 1.0.0 之后关于 GPU 编码的工作。 💡 Main Points 随着模型和工作负载扩展,tokenization 正从可忽略的步骤转变为真正的瓶颈。 在超大规模数据集上训练、服务大量并发请求或反复处理长输入时,CPU 完成 tokenization 的过程中模型可能数据饥饿,因此 v1 重点聚焦性能。 v1 保留了 v0.23 的输出、API、词表和合并排名,同时改进了所有可以改进的地方。 该库保持跨 tokenizer 家族的通用性,而非专门针对 BPE,且 v1 加载 v0.23 能加载的一切,因此用户唯一的变化是安装哪个构建版本。 分词阶段被 bitcannon 取代,这是一个手写的 SIMD 位流分词器,而非通用正则引擎。 由于分割模式是模型的固定参数,可以编写一次等效函数,并使用 SIMD 每次寄存器操作决定 64 字节;模式不在覆盖语法中的 tokenizer 保留正则路径,也就没有速度提升。 合并循环被重写以避免分配和分支。 调用方拥有的暂存缓冲区消除了重复分配,符号存储在按位置链接的扁平数组中,预 token 分批处理,候选对打包为 64 位值,使比较变为整数比较,而「此处不合并」即为最大值。 线程本地词缓存和原生并行让重复词跳过合并,多个线程可同时编码。 缓存将预 token 字节映射到最终 ID,使重复词只合并一次;同时每个线程从自己的子池中获取暂存缓冲区和词缓存,线程不再在单一锁上排队。 基准测试方法论被视为首要关注点,因为微小的设计差异可能主导结果。 规则包括每个引擎使用单一计时循环、编码排除加载时间、对输出 ID 与基线进行 FNV-1a 验证、对常见单元格取中位数、每个进程完整扫描、物理核心绑定和独立 Jobs;文章还警告,反复编码同一文档和编码不同文档是两种不同的工作负载,有时都被称为「热」。 v1 在 Apple M4 Max 上单线程编码速度比 v0.23 快 3 到 30 倍,八线程扩展效率达到线性的 76%。 低端是 t5-base,高端是 gpt2;提升来自管道不同位置多项改动的协同作用,且 v1 产出的 token ID 与已发布库完全相同。 💬 Key Quotes 你的 GPU 绝不应闲置等待 CPU 完成 tokenization。 v1 将产出与 v0.23 相同的 token ID。目标是保留输出、API、词表和合并排名,并改进所有**可以**改进的地方。 在 Apple M4 Max 上单线程编码文本比 v0.23 **快 3 到 30 倍**。 八线程扩展效率达到线性的 **76%**。 Tokenizer 基准测试应标明使用哪种工作负载,因为选择可能主导结果。 📊 Article Meta AI Screening: 90 Source: Hugging Face - Blog Author: Arthur Zucker, Simon Brandeis, Luc Georges, Lysandre Category: 人工智能 Language: 英文 Read Time: 9 min Word Count: 2152 Tags: AI 与智能应用 , 性能优化 , 模型训练与推理 , AI 工程 , 开源项目 Read Full Article
暂无评论,快来抢沙发~