註冊並分享邀請連結,可獲得影片播放與邀請獎勵。

meng shao
@shao__meng
追踪 AI 前沿,精选解读一手技术资料 分享 Agent 构建与 AI Coding 实践,拆解 Agent 工程架构和细节、技术选型与企业应用案例 前 CTO|AI 技术顾问 · 企业培训 公众号 / 小红书:AI 启蒙小伙伴 合作请私信 📮
加入 November 2023
1.1K 正在關注    34.4K 粉絲
Hugging Face 推出的新 SOTA 分词库「tokenizers v1」:在 token IDs 与 API 完全不变的前提下,面向全语言将编码提速 3–30 倍、解码提速 5.4–8.8 倍,八线程保持 76% 线性扩展,并借 crate 拆分做到更小的包体积与内存占用 tokenizers v1: 前置知识:四阶段流水线 tokenizers v1 没有改变分词的算法框架,仍是四段式: 规范化(如小写化、Unicode 归一) → 预切分(切成 pre-token) → 模型层(pre-token 映射为 ID; BPE 反复合并相邻的最高优先级 pair, 且合并永不跨越 pre-token 边界) → 后处理(special tokens) # 本次重构的三项核心技术 1. bitcannon 用 SIMD 位流替代正则引擎(2.1 the split) 预切分用的正则是模型的固定参数,既然模式已知,就没必要在运行时跑一个通用正则引擎。bitcannon 把输入字节视作并行位流,每条寄存器操作处理 64 字节(SIMD),思想承自 Parabix 和 simdjson。它覆盖 GPT-2、cl100k、o200k、Tekken、DeepSeek 五种切分模式;不认识的模式自动回退到正则,这也是各家族提速幅度差异较大的原因。 2. word cache 利用 BPE 的确定性(2.2) BPE 对同一 pre-token 的结果是确定的,因此用线程本地缓存把 pre-token 字节映射到 token IDs,重复出现的词完全跳过合并计算。代价是:输入中重复很少时,查表开销得不到回报。它对 Agent 场景尤其有效,真实 agent trace 中大量请求共享相同前缀,缓存命中率天然高。 3. merge loop 零分配 + 无分支(2.3) 四个手段叠加:复用调用方提供的 scratch 缓冲区(消除每次调用的堆分配);符号存于按位置链接的扁平数组(替代链表);多个 pre-token 打包进一次模型调用;每个候选 pair 连同 merge 优先级打包进单个 64 位整数(优先级占高位),使“找下一个该合并谁”变成无分支的整数比较。 这三项技术分别对应三个不同层面的成本:控制流(byte cannon 消灭正则回溯)、重复计算(word cache 消灭冗余合并)、内存与分支(merge loop 消灭分配和分支预测失败)。组合起来才是“几十倍”的来源,单独任何一项都做不到。
顯示更多
Happy to officially bring you the new SOTA `tokenization` library. We focused on all languages, multi-thread scaling, minimal package size and memory usage. We're thankful for the players of this ecosystem that have pushed us to give the best we could!
顯示更多