灵策全能AI助手

Token 是什么?为什么 AI 按 Token 计费

大模型读写文字的最小单位,也是算力和费用的计量尺。

你可能在 AI 工具里见过这样的提示:「本次对话消耗 1,236 Token」;或者听开发者聊模型价格时说「每百万 Token 多少钱」。Token 这个词好像无处不在,可它到底是什么?为什么 AI 不按「字数」或「次数」收费,偏偏按 Token 算?

这一节我们把 Token 讲透。弄懂它,你不仅能看懂用量和账单,还能理解 AI 的一些「怪毛病」,比如为什么它曾经数不清一个单词里有几个字母。

Token:模型眼里的「积木块」

我们读文章,看到的是一个个字和词。大模型不一样:在读任何文字之前,它要先用一个叫「分词器」(Tokenizer)的工具,把文字切成一小块一小块,每一块就是一个 Token。接着,每个 Token 会被换成一个编号,模型真正处理的是这一串编号。

可以把它想象成搭乐高:一段话被拆成许多积木块,模型读的时候一块一块地「看」,写的时候也一块一块地「拼」。在「AI 通识第一课」里我们讲过,大模型说话的秘密是「根据前文预测下一个词」。更准确地说,它每次预测的是下一个 Token。

切出来的积木块有大有小:

  • 很常见的英文单词,往往整个就是一个 Token;
  • 不常见的长单词,会被拆成几段,比如「前缀 + 词根 + 后缀」;
  • 中文里,常用字或常用词可能是一个 Token,也可能几个字合成一个 Token,一些生僻字反而要占好几个 Token;
  • 空格、标点、换行、数字、emoji,也都要占 Token。

举个示意的例子(真实切法因模型而异):「我喜欢人工智能」在一个分词器里可能被切成「我」「喜欢」「人工智能」三块,在另一个分词器里可能是「我」「喜」「欢」「人工」「智能」五块。英文「I like tokenization」可能被切成「I」「 like」「 token」「ization」——注意单词前面的空格往往和单词粘在一起,算进同一个 Token。

小贴士:所谓「词表」,就是分词器认识的所有积木块的清单。词表里收录了什么,决定了一段文字会被怎么切。

为什么不直接按「字」或「词」来切?

这是一个折中。如果按单个字母或单个字来切,积木块太碎,一段话会变成很长的序列,模型处理起来又慢又费劲;如果按完整的词来切,世界上的词太多了,还不断冒出新词、网络流行语、人名地名,词表根本装不下。

所以现在的主流做法是「子词」切分:经常出现的片段合成一块,不常见的就拆小。常见方法(比如 BPE)的思路很朴素——在海量文本里统计哪些片段总是挨在一起出现,就把它们合并成一个积木块。这样既能覆盖所有文字,又不会让序列太长。

中文和英文的 Token 怎么换算?

这是大家最常问的问题,答案是:只能「大致」估算,没有固定比例。

原因很简单:每家模型用的分词器和词表都不一样。同一段话交给不同模型,数出来的 Token 数可能差不少。总体规律有这么几条:

文本类型切分特点估算时要注意
英文常见单词多为一个 Token,长词、罕见词拆成多块Token 数通常比单词数略多
中文取决于词表收录了多少中文片段,一个 Token 可能是一个字,也可能是一个词不同模型差别较大
数字长数字常被切成几段一串手机号可能占好几个 Token
代码缩进、符号、变量名都占 Token往往比看起来更「费」Token
生僻字、特殊符号、emoji可能被拆成更底层的碎片一个字符占多个 Token 很常见

一般来说,词表里收录的中文片段越多,同样一段中文切出来的 Token 就越少。早期一些主要面向英文训练的模型,处理中文时 Token 数会明显偏多;后来不少模型扩充了中文词表,这种差距在缩小。

想知道准确数字,最靠谱的办法是看平台给出的用量统计,或者用该模型官方提供的 Token 计数工具,而不是套用网上流传的某个换算比例。

一个「原来如此」的例子

曾经有不少模型答不对「strawberry 这个单词里有几个 r」。这对人来说简单得不能再简单,AI 为什么会错?

因为模型看到的不是 s-t-r-a-w-b-e-r-r-y 十个字母,而是切好的两三个积木块。字母藏在积木块内部,模型并不能直接「看见」。让它数字母,就像让你闭着眼睛摸一块拼好的乐高,说出上面有几颗凸点——不是做不到,但很容易出错。同理,倒着拼写单词、精确数字数、做长串数字的运算,都可能因为 Token 切分而变得别扭。现在的模型在这类问题上进步很大,但理解了 Token,你就知道它们为什么曾是 AI 的软肋。

为什么按 Token 计费?

答案藏在大模型的工作方式里。

模型读你的输入时,要对每一个 Token 做大量计算;写回答时,它是一个 Token 一个 Token 往外「吐」的,每吐一个都要完整地算一遍。所以 Token 数基本反映了模型干了多少活、用了多少算力。按 Token 计费,就像出租车按里程计费、用电按度数计费,用多少算多少。

计费通常分两部分:

  • 输入 Token:你发给模型的所有内容,包括问题、上传的文件、之前的聊天记录,以及产品在后台加的系统设定;
  • 输出 Token:模型生成的回答。由于输出要逐个生成,很多平台的输出单价比输入更高。

还有几个容易被忽略的「隐形消耗」:

  1. 聊天记录会反复计入。模型本身没有记忆,每一轮对话,产品都要把之前的聊天记录连同新问题一起发过去。所以同一个会话聊得越久,每一轮的输入 Token 就越多。
  2. 附件和网页内容也算。你上传的 PDF、联网搜索抓回来的网页,都要变成 Token 交给模型读。
  3. 「深度思考」的过程也算。推理模型在给出答案前写的思考过程同样要生成 Token,通常也计入消耗(本系列后面会专门讲推理模型)。

很多 AI 产品给普通用户展示的是「次数」「积分」或「会员额度」,背后大多仍按 Token 折算,所以下面这些习惯同样适用。

顺带一提,Token 不只是计费单位,也是衡量模型「一次能读多少」的单位。下一节要讲的上下文窗口,就是用 Token 来计算的。

省 Token 又不降质量的习惯

省 Token 的核心不是「少说话」,而是「不说废话、不发无关材料」。把需求说清楚,永远比省几个 Token 更重要。

场景错误示范正确示范
处理长文档把 80 页的报告全贴进去,只问其中一章只贴相关章节,说明要看什么
换话题同一个会话里从写周报聊到旅游攻略再聊到代码一个主题开一个新对话
控制篇幅「详细说说」「300 字以内,分 3 点」
反复修改每次都把整篇文章重新贴一遍只贴要改的段落,说明改哪里
简单任务翻译一句话也开着深度思考简单任务用普通模式,难题再开思考

注意:别为了省 Token 把背景和要求删光。信息不足导致 AI 答偏,你再来回追问三四轮,反而更费。

本节要点

  • Token 是分词器把文字切出来的「积木块」,模型按 Token 读、按 Token 写。
  • 中英文与 Token 之间只有大致的换算关系,随分词器和词表而变,准确数字要看平台统计。
  • 按 Token 计费,是因为 Token 数基本反映了模型的计算量;输入和输出通常分开计价。
  • 聊天记录、附件、联网内容、思考过程都会消耗 Token,会话越长,每轮越贵。
  • 省 Token 的关键是只给相关信息、控制篇幅、换话题开新会话,而不是把需求说得含糊。

「大模型核心概念」其他课程

灵策全能AI助手