跳到正文

什么是 Token?

了解 Token 的定义、作用、计算方式和影响因素。

一、Tokenization(词元化)

第一讲,我们提到你可以将 LLM 看成一个「全自动文字接龙系统」。并且我们还使用了问天气的例子来解释。

其实上一讲描述的过程是我简化过后的版本。

所以当你将「今天广州的天气如何?」这个问题提交给 LLM 后,其实会先经过一个叫词元处理器( Tokenizer )的工具,这个工具会将文本切成一个个的词元(Token),每个词元还会映射成一个个的词元 ID (Token ID)。这个过程又称为编码。

不同的模型会使用不同的词元处理器,但它们效果大致相同,以 ChatGPT-5x 的词元处理器为例,它会将你输入的文字(包含标点),先进行切分,再映射成数字(注意:不同模型使用的 Tokenizer 的切分方式和 ID 可能不同)。

还是拿「今天广州的天气如何?」为例,这几个中文字会被切成 6 个词元,每个词元对应一个 ID。模型通过运算后,得出结果,此时结果会以 Token ID 的方式输出,这个 ID 又会被词元处理器解码成 Token ,最后呈现给用户。

今天广州的天气如何?
词元处理器 Tokenizer编码 Encoding
切分为词元(Token),再映射为词元 ID(Token ID)
  1. Token:今天
    Token ID:47256
  2. Token:广州
    Token ID:132426
  3. Token:的
    Token ID:1616
  4. Token:天气
    Token ID:167823
  5. Token:如何
    Token ID:24608
  6. Token:?
    Token ID:4802
Token ID 按原顺序送入模型[47256, 132426, 1616, 167823, 24608, 4802]
LLM
模型输出 Token ID[47256]
词元处理器 Tokenizer解码 Decoding
Token ID
47256
Token
今天
呈现给用户
今天

所以第一讲里,LLM 通过计算后返回的结果,并不一定就是一个中文字,而是有可能是一个词。

二、搞懂这个概念有什么用?

第一,它能衡量模型读了多少、生成了多少。

你给大语言模型下达的指令对应输入 Token;模型生成的内容对应输出 Token。

按 Token 收费的模型 API,会根据输入、输出等用量计算费用。如果你翻开 DeepSeek 官方 API 文档,你会看到价格表里是这么写的:截止到 2026 年 11 月,百万 tokens 空闲时段输出 4 元。换句话说,空闲时段使用 V4 flash 模型,模型输出一百万个词元花费 4 元。

另外,你还会看到一个缓存未命中的空闲时段输入价格。那大语言模型是如何定价的呢?

还是拿前面问天气的例子,用户提问「今天广州的天气如何?」,大语言模型回答「今天广州天气晴朗,温度在 28 ℃」。为了方便计算,我们假设:输入是 10 Token,输出是 20 Token。

  • 输入费 = 10 ÷ 1,000,000 × 1 = 0.00001 人民币
  • 输出费 = 20 ÷ 1,000,000 × 4 = 0.00008 人民币
  • 总费用 = 0.00001 + 0.00008 = 0.00009 人民币

假设不连续提问的情况下,问 1 万次类似的问题,那大约就是 0.9 元人民币。

第二,衡量模型一次能处理多少内容。

现在市面上的所有大语言模型,都会有一个所谓的上下文窗口(context window)。比如 DeepSeek 的 V4 模型上下文窗口就是 1M Tokens(一百万个词元),而 V3.1 模型其上下文窗口则为 128K Tokens (12 万 8 千个词元)。

简单理解就是模型一次能处理的文本量。可以理解成模型当前的工作桌大小:桌上能同时放多少文字材料(这通常用 Token 来衡量)。

换句话说,旧版本的模型能处理的文本会更少。如果想让 V3.1 一次性写一本百万字的小说基本上就不可能了。

从某种意义上来说,上下文窗口越大,模型的「能力」就越强。

三、成就挑战