Token 到底是什么?

Token到底是什么?为什么大模型按Token理解文本?
你有没有想过,每次和豆包、千问对话时,它们是怎么"看"你说的话的?
你打了100个字,它是怎么计费的?你充值的人民币,到底换算成了什么单位?
这背后,有个东西叫 Token。它就是大模型世界的"度量衡"。
搞懂它,你就能搞清楚:为什么同样一句话,英文比中文便宜?为什么有时候多说两句话,账单就涨了一大截?
Token不是字,也不是词,而是大模型的"基本食材"
那Token到底是什么?
一句话:Token是大模型处理文本时的最小计量单位。
但这个"最小"有点反直觉——它不是按字数算的。
举个例子,"阿里云"三个字,在大模型眼里大概是4个Token。"今天天气真好"六个字呢?大约是7到8个Token。
为什么会这样?
因为Token是按语义边界划分的。大模型不是从左到右一个字一个字读的,它是在"拿"有意义的语义模块。
你可以把Token想象成乐高积木。大模型在拼的不是散落的砖块,而是一个个有意义的小组件。
所以"阿里"是一个积木,"云"是一个积木,"阿"单独出来又是一个积木。
这就像你去超市买菜,你会说"买一斤西红柿",不会说"买37颗番茄"。
Token,就是大模型语境下的"份"。
这个"份"可能是一个字,可能是一个词,也可能是半个词。完全取决于这个词在实际使用中的出现频率。

为什么大模型按Token而不是按字符理解文本?
好,知道了Token是什么,接下来一个问题:为什么要按语义模块来处理,而不是直接按字处理?
原因有三个。
第一个原因,大模型本质上是在理解语义,而不是在匹配字面。
"今天天气真好"和"今天天气不错",意思差不多吧?但如果按字拆,两句话完全不一样。按Token拆,两句话的核心模块是一样的:大、天气、真好/不错。语义相近的句子,Token序列也相近。这让大模型能"理解"你在说什么。
第二个原因,跨语言统一处理。
不管是中文、英文还是日文,大模型内部都在用Token序列来表示。这样,不管你用什么语言提问,模型都能用同一种方式处理。
第三个原因,按Token计费更合理。
一个英文单词平均1到2个Token,一个中文字符平均1.3个Token。但语义含量呢?中文的信息密度更高。一个"电"字,可能包含了electricity、power、lightning等多个英文词的意思。按语义来计量,才真正反映了计算资源的消耗。
所以Token的设计,本质上是让大模型能"理解"人类语言的一种折中方案。太细了,比如按字处理,模型就丢失了语义信息。太粗了,比如按整句处理,又没法处理灵活多变的表达。Token,刚好是一个平衡点。

Token的中文命名之争:词元还是符元?
说到这里,不知道你有没有注意到一个有趣的现象:Token这个词,在中文里有两种译法。
一种是"词元",一种是"符元"。
哪个更准确?
说实话,学术界也没统一。
"词元"的好处是朗朗上口,而且"词"这个字确实抓住了Token的部分本质——它经常对应一个词。但问题也在这里:Token有时候不是词。"阿"在"阿里云"里是一个Token,但它不是词,只是词的一部分。"2024"是四个数字,但可能只是一个Token。
所以从严格意义上说,"符元"更准确——它强调的是"符号"这个属性,而不是"词"这个语义。"符元"就是"符号的基本单元",这个定义更通用。
但现实是,"词元"这个词已经在业界形成了惯性。大部分人听到Token,第一反应是"词元"。
这就像"车厘子"和"樱桃",本质是同一样东西,只是叫法不同。你用哪个都不算错。
Token怎么计费?一张表看懂主流模型价格差异
好了,聊完概念,来点实际的。
Token是怎么计费的?
你打开任何一个大模型平台的定价页面,会发现价格都是按"每千Token"来算的。
以阿里云百炼为例,我给你看张表:
| 模型 | 输入价格(元/千Token) | 输出价格(元/千Token) |
|---|---|---|
| qwen-max | 0.04 | 0.12 |
| qwen-plus | 0.004 | 0.012 |
| qwen-turbo | 0.0015 | 0.004 |
| qwen-flash | 0.0005 | 0.001 |
看到什么规律?
输出比输入贵,一般是2到3倍。为什么?因为生成内容比读取内容消耗更多计算资源。模型要"想"下一句话,比"看"你输入的话难得多。
模型越强越贵。qwen-max是旗舰模型,处理复杂任务更强,但价格也更高。qwen-flash是轻量模型,适合简单任务,速度快还便宜。这就像坐飞机:公务舱贵但服务好,经济舱便宜但够用。选哪个,取决于你的实际需求。
用量越大,单价越低。大批量使用的时候,平台会给出阶梯价。这体现了规模效应——用的人越多,摊薄到每个人的成本越低。

7000万免费Token能做什么?
说到这,你可能会问:我怎么才能体验一下?
好消息是,现在很多平台都有免费额度。比如阿里云百炼,新用户直接送7000万Token。
7000万,这个数字听起来很大。
我第一次看到的时候也觉得挺吓人的。但后来仔细算了一下,发现其实也就那么回事:
按我自己平时用的经验,7000万Token大约可以:
- 写350篇中等长度的文章(我现在每周写两三篇,这个额度够用好几个月)
- 进行700次深度对话(平时工作一天用个三四次,算下来够用大半年)
- 处理100份PDF文档(如果你要做长文本分析,消耗会快很多)
- 生成5万行代码(程序员可能觉得不够用,但一般人应该用不完)
我的建议是:先从简单任务开始试试手感,比如对话和写作。等熟悉了,再去处理复杂任务。7000万Token就像一笔零花钱,用对地方能解决不少问题,用错了地方可能刷两下就没了。

中文为什么比英文消耗更多Token?
最后,聊一个很多人关心的问题:为什么同样一段话,中文比英文消耗的Token少,但价格反而可能更贵?
听起来矛盾是吧?让我解释一下。
先说消耗量。 英文的平均Token消耗其实更高。一个英文单词通常对应1到2个Token,一个中文字符平均对应1.3个Token。所以,同样表达一个意思,英文的Token数往往更多。
但问题在于计费方式。Token的定价不是按语言来的,而是按模型来的。同一个模型,中英文的Token单价是一样的。
那为什么有人说"中文比英文贵"?
因为中文的信息密度更高。中文像压缩饼干——看起来少,但"干货"多。一个字可能顶英文好几个词。英文像散装零食——同样重量的"内容",体积更大,Token更多。
所以,同样一个想法,用中文表达可能只需要100个Token,用英文表达可能需要150个Token。中文反而更省。
但如果你反过来想:模型处理中文时,要在更少的Token里提取更多语义。这对模型的理解能力要求更高。这可能就是为什么在某些高端模型上,中文的处理成本会略高一些。
另外还有一些例外:专有名词、数字、标点,它们的Token消耗可能偏离平均值。比如"2024"这四个数字,可能就是一个Token。比如"http://"这串字符,可能也是一个Token。这些"反常识"的地方,就涉及到Tokenizer的具体实现了。

理解Token,掌握大模型世界的"度量衡"
好了,到这里你应该对Token有了基本的了解。
Token是大模型处理文本时的基本计量单位。它按语义边界划分,而不是按字面字数。
大模型按Token理解文本,是因为Token能更好地捕捉语义信息,同时保持跨语言的一致性。
计费按Token来算,更符合实际计算资源的消耗。输出比输入贵,旗舰模型比轻量模型贵,用量越大单价越低。
中文的信息密度更高,所以同样内容消耗的Token可能更少。
理解了Token,你就掌握了大模型世界的"度量衡"。下次和AI对话时,你可以心里有数:这句话大概消耗多少Token?换用更简洁的表达能不能省钱?
说到这,我想起一个问题:Token是怎么切分的?大模型怎么知道哪些字该放在一起,哪些字该拆开?
这就是Tokenizer的工作了。
你可能已经注意到,我整篇文章一直在用"Token"这个词,没怎么翻译。因为它的"出生证明"——Tokenizer,中文叫"分词器"。
等等,分词器?中文分词不是早就有了吗?
这两者是一回事吗?
为什么大模型要用自己的Tokenizer,而不是直接用现成的中文分词工具?
下篇文章,我们来聊聊Tokenizer的内部世界。
