使用大模型 API 时,账单、上下文上限、速率限制几乎都以 Token 为单位。简单说,Token 是模型处理文本的最小单元,它可能是一个完整的词、一个词的一部分、一个汉字,甚至只是一个字节片段。把文本切分成 Token 的组件叫做分词器(Tokenizer)。理解它,能帮你更准确地估算成本,也能解释模型一些“奇怪”的错误。

分词器是怎么切分文本的

主流大模型大多使用基于子词(subword)的分词方法,例如 BPE(字节对编码)及其变体。它的基本思路是:从单个字符或字节开始,统计训练语料中最常一起出现的片段,把它们合并成新的词表条目,反复迭代直到词表达到预设大小。

结果是:高频词往往被整体保留,比如英文的 “the”“model”;低频词会被拆成几块,比如一个生僻的专业术语可能被切成三四个 Token。词表大小通常在数万到十几万之间,不同模型的分词器并不通用。

中文为什么常常“更贵”

早期以英文为主训练的分词器,对中文覆盖不足,一个汉字可能被拆成两到三个字节级 Token,导致同样的意思用中文表达要消耗更多 Token。近年很多模型扩充了中文词表,常用汉字甚至常见词组能被整体编码,中文效率明显改善。

但不同模型之间差别仍然存在。因此在做成本测算时,不要套用“一个 Token 约等于几个字”的固定比例,而应该用目标模型的分词器实际测一批你的业务文本。很多厂商提供在线的 Token 计数工具或开源的分词库,几分钟就能得到可靠数据。

Token 如何影响成本与上下文

API 费用

大部分商业 API 对输入和输出分别计价,且输出通常更贵。一个包含长篇系统提示、检索资料和对话历史的请求,输入 Token 可能是输出的十几倍。优化成本时,首先要看清钱花在哪里,相关方法可以参考大模型 API 成本优化。

上下文窗口

模型的上下文上限同样按 Token 计算,并且输入与输出共享这一额度。如果你塞进了大量文档,留给回答的空间就会变少,甚至被截断。

速度

生成速度通常以每秒输出多少 Token 衡量。同一段中文,用分词效率更高的模型生成,用户感受到的速度也会更快。

分词带来的能力盲点

模型看到的是 Token 序列而不是字符序列,这解释了几类常见错误:

  1. 数字母和字数:问“strawberry 里有几个 r”,模型需要从 Token 中推断字符构成,容易出错。中文的“这段话有多少字”也类似。
  2. 精确计算:一个长数字可能被切成不规则的几段,影响算术表现。需要精确结果时,更好的做法是让模型调用计算工具,见 Function Calling 详解。
  3. 拼写与字形任务:比如押韵、拆字、藏头诗等,模型的表现往往不如语义任务稳定。

实用建议

  • 估算成本时用目标模型的分词器实测真实样本,而不是凭经验换算;
  • 精简系统提示词中重复和冗余的说明,它们会在每次请求中重复计费;
  • 需要字符级精确操作(计数、截断、校验)时,交给代码而不是模型;
  • 比较不同模型价格时,要结合各自的分词效率,单价低不一定总成本低。

小结

Token 是连接大模型能力、成本与限制的基础单位。理解分词器的工作方式,能让你在设计提示词、估算预算、排查奇怪输出时少走弯路。想进一步了解模型如何处理这些 Token,可以阅读 Transformer 架构通俗讲解。