跳转到主要内容

破坏生产级 LLM 系统的分词器盲点

阅读需 3 分钟Tian PanTian Pan

大多数构建 LLM 的工程师最终都会学到一个粗略的换算比例:1 个 Token 大约等于 0.75 个英文单词,因此 4,000 个 Token 的上下文窗口大约可以容纳 3,000 个单词。当你的输入是日常英文文本时,这个数字用于粗略估算还可以。但在其他任何地方,它都是悄无声息地错误——而事实证明,“其他任何地方”涵盖了大多数有趣的生产环境负载。

Token 计算错误不会大声报错。它们表现为与任何账单项目都不匹配的成本超支、上下文窗口悄悄截断了文档的最后几段,或者是多语言流水线在英文测试中表现良好,但在遇到真实流量的第一周就超出了 4 倍预算。当你追溯到 Tokenizer 分词问题时,损失已经造成。

这篇文章将探讨那些会坑害生产系统的特定故障模式——不是为了研究 Tokenizer 内部原理本身,而是为了揭示将 Tokenizer 视为黑盒会让你在金钱、可靠性或两者上付出代价的地方。

“每 1000 个 Token 换算 750 个单词”的迷思及其破灭

0.75 的比例是使用 OpenAI 的 cl100k_base Tokenizer 针对英文散文进行校准的。对于干净的英文新闻文章和博客文章,它保持得相当好。但在以下四种常见情况下,它会失效。

不同模型的分词方式不同。 句子 "Artificial intelligence is transforming industries" 在 GPT-4 中产生 6 个 Token,在 Claude 3 中产生 7 个,在 Llama 2 中产生 8 个。如果你针对一个模型估算 Token 数量并在另一个模型上运行,你已经错了。当模型更新发布新的 Tokenizer 时,相同的工作负载每字符成本可能会在一夜之间增加 2 倍以上——这是一个让工程团队措手不及的真实案例。

代码的 Token 密度比散文高 1.5–2.5 倍。 语法字符(括号、分号、方括号)每个都会消耗 Token。驼峰式 (CamelCase) 和蛇形 (snake_case) 标识符不像重复的自然语言模式那样可以高效压缩。在许多 Tokenizer 中,缩进也被计为 Token。一个提取 20 个代码片段的 RAG 系统平均比等量的文档散文多消耗大约 40% 的 Token——这足以让调优良好的上下文预算超出限制。

JSON 和结构化格式带来了沉重的开销。 每个大括号、引号、冒号和逗号都是一个 Token 或其一部分。与相同表格数据的 CSV 编码相比,JSON 使用的 Token 多 30–60%。如果你的流水线检索结构化数据并在注入上下文之前将其格式化为 JSON,那么你在为每次请求支付高额溢价。数字的碎片化也很严重:"3.14159" 经常被拆分为多个 Token,使得数值密集型格式的成本高得不成比例。

输出 Token 的成本高于输入 Token。 大多数供应商对输出 Token 的收费是输入 Token 的 2–3 倍。生成 1,000 个输出 Token 的成本不是 1,000 个输入 Token 的 2 倍——通常是 3 倍或更多。基于单一 Token 费率建立的成本模型,其低估程度会随着输出字数的增加而扩大。

多语言 Token 膨胀不容忽视

英语与非拉丁语系语言在 Token 效率上的巨大差异,已经大到足以成为产品层面的关注点,而不仅仅是一个奇闻。

以下是主要语系相对于英语的近似 Token 倍数:

语言近似倍数
西班牙语、法语1.0–1.2x
俄语、希伯来语~1.5x
简体中文~1.8x
日语~2.1x
韩语~2.4x
阿拉伯语~2.5x
印地语~4.7x
泰米尔语~7.2x

这些数字来自于主要针对英文文本(在网络爬虫数据集中占主导地位)训练的 Tokenizer。像“猫”这样的汉字在 cl100k_base 中需要 2–3 个 Token,因为 BPE 词汇表是基于一个中日韩(CJK)字符代表性不足的语料库构建的。英语受益于高效的子词压缩;而非拉丁语系通常按字符或以小的字节级分块进行分词。

生产环境的影响是巨大的。一家为全球用户构建 AI 功能的 SaaS 公司,其英文流量的经济效益可能尚可,但在泰米尔语的同等交互中成本会激增 7 倍。由于这种成本并不对应于可见的功能或服务,它往往表现为基础设施支出中的异常账单,而不是产品漏洞——这意味着它通常会被忽视数月之久。

对于多语言工作负载,唯一可靠的方法是在发布前测量真实流量样本中每种语言的 Token 数量。根据你的语言组合,0.75 规则会导致你的容量规划出现 2–7 倍的偏差。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 10 分钟

Tokenizer 算术:生产环境中悄然作祟的隐藏层

BPE 分词会产生可预测的故障模式,破坏结构化输出解析器、损坏缓存策略,并导致成本估算在真实流量下崩溃——在责怪模型之前,先检查 tokenizer。

insider
llm
阅读需 8 分钟

从开发到生产的成本冲击:为什么你的 AI 功能在测试环境仅需几分钱,而在生产环境却要花费数美元

测试环境系统性地隐藏了生产环境中的关键成本驱动因素。本文探讨了开发支付与规模化生产账单之间的差距,以及如何诚实地建立成本模型。

insider
ai
阅读需 10 分钟

LLM 系统中的软约束与硬约束:为什么失配会导致真正的失败

将系统提示词(System Prompt)视为安全控制是一种会导致泄露的架构错误。本文将详细解析生产环境 LLM 系统中的约束层级,以及如何将执行强度与实际风险相匹配。

insider
llm
阅读需 9 分钟

Staging 环境的谎言:为什么预生产阶段对 AI 系统失效了

Staging 环境给了 AI 系统虚假的安全感。本文将探讨为什么它们在架构上误导了团队,并介绍真正有效的生产优先(production-first)架构。

insider
llm
阅读需 10 分钟

LLM 分类器的生产实践:为什么准确率是错误的指标

准确率本身并不能预测基于 LLM 的分类器能否在生产环境中存活。真正的约束在于校准性、分类别指标、延迟 SLO,以及揭示生产就绪性的测试模式。

insider
llm