Token这个词听着有点专业拗口,其实很好理解,你直接把它当成大模型读取、理解我们输入文字时,用到的一种基础最小单位就行。
1. 它是一种计量标准
模型不会按我们常规说的字数来统计,只会按有多少个Token来计算。就像去食堂打饭,没人会说给我几粒米,都是直接说要几两饭,Token就是大模型专属的计量方式。
2. 它是计费的通用筹码
现在绝大多数大模型,都是按照Token的数量来计费收费的。不光我们发给模型的提问内容要算Token,模型给我们生成的回复答案同样也要算Token,两者加起来才是一次对话总共消耗的Token量。
3. 它是处理能力的上限门槛
平时看到模型标注能一次处理128K,意思就是它单次最多承载这么多Token。粗略换算下来,差不多对应10万字左右,常规可以按1个汉字约等于1–2个Token来估算。你也可以换个通俗思路理解,一句话被模型拆分成一小段一小段的碎片,拆分后的每一个小碎片,就是一个Token。那具体是怎么拆分的呢?主要就分三种方式:
1. 按词语拆分,也是最常用的方式
拿这句话举例:我爱吃苹果。模型大概率会拆分成:我,爱,吃,苹果,一共4个Token。每一个独立完整的词语,单独算作一个Token。
2. 按单个文字拆分,多用于生僻词和英文内容
比如这句话:ChatGPT 真牛。ChatGPT属于英文组合新词,不算常用固定词汇,模型可能会拆分成Chat,G,PT 或者 Chat,GPT;而真牛就会拆成真,牛。所以像英文这类词汇,经常会被拆成好几段零散碎片,每一块碎片都单独算一个Token。
3. 按子词或标点符号拆分
就连标点符号也会单独算作Token。比如:你好! 会被拆分成你好,! 两个Token,就连句子里的空格,有时候也会单独算作一个独立Token。另外很多人只知道输入内容会产生Token,其实大模型输出回复的过程,同样会消耗Token。输入端Token是我们发给模型的提问、指令、文案这类内容,是模型用来读取和理解需求的基础;输出端Token是模型根据我们的需求,自主生成文字、答案内容时产生的,拆分逻辑和输入端完全一样,同样会按照词、字、子词和符号的规则拆分统计。而且大部分平台,输入端和输出端的Token收费标准还不一样,输出端单价通常会稍高一些。给大家举个直白的实例方便理解:原始句子: 今天天气真好啊,我想出去玩!按照某款大模型的常规拆分方式来看:
- 今天 → 1个Token
- 天气 → 1个Token
- 真 → 1个Token
- 好啊 → 1个Token
- , → 1个Token
- 我 → 1个Token
- 想 → 1个Token
- 出去 → 1个Token
- 玩 → 1个Token
- ! → 1个Token
最终结论: 这句话不管是作为输入提问,还是模型作为回复输出,统一核算下来,一共占用10个Tokens。