Skip to content

大模型Token究竟是什么

分词器

像DeepSeek、ChatGPT这样的大语言模型LLM,都有一个“刀法精湛”的小弟——分词器

当大模型接收到一段文字,就让分词器将其切成很多个小块,切出来的每一个小块就是一个Token

切割举例

对于 我喜欢唱、跳、Rap和篮球 这句话,就可能切分为:我喜欢 R ap 和 篮球

也就是说,一个汉字可以作为一个Token;一个字符也可以作为一个Token;两个字符和汉字也可以作为一个Token;甚至三个汉字构成的常见短语也可以作为一个Token

Token可以是一个字、两个字、三个字...也可以是一个单词或者半个单词...

输出Token

大模型在输出文本的时候,也是一个一个Token进行输出,看起来就像是在打字一样(找个AI问个问题,看他输出的样子就知道了)

整体看待,节省脑力

成语例子

为了通俗的理解与说明Token,可以借助“成语”的例子

现在要求你,快速读出下面5个字

会发现我们并没有想象的那样“精通”汉字,需要反应一会甚至根本认不出来,但是如果放在词语、成语里呢?

  1. 犄角旮
  2. ​ 媒之言
  3. ​ 深
  4. ​ 奢
  5. 郸学步

这样一下就看出来了。不过为什么呢?——因为我们的大脑会偷懒,这样整体看待字符可以节省脑力

句子例子

除了上面的成语例子,还可以用一个句子看看

看一下 “今天天气不错” 这句话

我们根本不会将字符全部独立看待:①今 ②天 ③天 ④气 ⑤不 ⑥错

而是划分为三个常见的、有意义的词:①今天 ②天气 ③不错 ;大脑要处理的内容就少了也简单直观了

人工智能也可“偷懒”

人脑可以“整体”看待部分字符,大模型也可以,所以就有了分词器,将文本切成大小合适的一个个Token,而不是一刀切全部用一个字符作为一个Token。

上下文窗口

分词越合理,不仅是大模型计算越轻松,更重要的是它能“看得更长”。大模型每次能接收的信息长度是有上限的(比如限制为 8000 个 Token)。如果“苹果”占2个Token,模型能处理的信息量就少;如果打包成1个Token,模型在同样的窗口大小内就能读取更多文本。这点明了分词效率与模型能力之间的直接关联

分词器的切分方式

不同的大语言模型有不同的分词器,分词的方法和结果都不一样,分词越合理大模型就越轻松

如何分词?

一种方式是这样的:大模型在大量接受文本输入之后,发现“苹果”这两个字经常一起出现,于是将其打包为一个Token,编号19416,这样下次看到“苹果”这两个字的时候直接认出19416编号的这个Token; 然后又发现“鸡”这个字经常出现,还可以不同的搭配其他字,于是将其打包为一个Token,编号76074; 又发现“ing”这三个字符经常一起出现,于是将其打包为一个Token,编号288; 又发现“逗号,”经常出现,于是将其打包为一个Token,编号14;

经过大量的统计收集,就得到了一个关于“Token-编号”的Token表,囊括了我们日常见到的各种字、词、符号

以编号形式输入输出

在有了Token表之后,对于任务的输入和输出,都只需要将其视为数字编号的组合,再由分词器根据Token表将这些数字编号的组合转换为人类可以看懂的文字和符号

d54fd248544403b1df336d7d76d7512e_720

Tiktokenizer

网站:Tiktokenizer 可以查看不同模型分词后Token的编号

image-20260315173304865

Summary:Token词元

所以,Token就是大模型世界里面的一块块积木,大模型能够理解和生成文字,就是计算了Token之间的关系,推出下一个Token最有可能的结果

这也是为什么几乎所有大模型公司都按照Token收费,因为Token的数量代表了背后的计算量


小插曲:token在人工智能之外的其他领域也经常出现,这是计算机领域的词源共性。计算机科学中,“Token”的本意就是“记号”或“具有独立意义的最小表意单元”

基于 VitePress 搭建 | 记录生活与代码