Token

生成式 AI 中,token(标记) 是一个非常关键的概念。Token 是自然语言处理(NLP)中的一个基本单位,它代表了文本中的一个最小的组成部分,可以是一个词、字符或子词。

在生成式 AI 中,token 可以理解为将文本切分成的基本单元。这些单元通过模型的编码和解码过程被处理和生成。在不同的模型中,token 的定义可能略有不同,但通常是以下几种形式的一个或多个:

  1. 单词(Word):一个完整的单词,比如 “hello” 或 “world”。

  2. 子词(Subword):一些模型使用子词而不是完整的单词,特别是像 GPT 或 BERT 这样的模型。因为很多语言中的单词是复杂的,不常见的词被分解为常见的部分(子词),例如 “unhappiness” 可能被分为 “un”, “happi”, 和 “ness”。

在生成式 AI 中,模型不会直接处理完整的句子或段落,而是将输入文本分解为 token 序列,然后对这些 token 进行处理。以下是 token 在模型中的主要作用:

  1. 输入处理:模型接收的输入是文本,但是为了处理,它需要将文本转化为 token 序列。然后,这些 token 被进一步转换为数字表示(通常是嵌入向量),以便模型能够理解和处理它们。
  2. 生成输出:当生成式 AI 模型生成文本时,它是一个 token 一个 token 地生成,而不是直接生成一个完整的句子或段落。模型会根据当前的上下文预测下一个可能的 token,然后重复这个过程,直到生成完整的输出。
  3. 上下文表示:每个 token 都有其上下文含义,模型通过理解这些 token 之间的关系来生成更自然和符合语义的文本。

Token 与计算成本

生成模型(如 GPT)使用的 token 会直接影响模型的计算成本:

  1. Token 数量:模型的处理能力通常限制在一定的 token 数量范围内,超出这个限制模型可能无法处理。例如,GPT-3 模型的上下文窗口是 4096 个 token,这意味着它一次最多可以处理或生成 4096 个 token。
  2. 计算资源消耗:模型的计算复杂度通常与 token 数量成正比。生成较长的文本(即包含更多 token)会消耗更多的计算资源和时间。因此,token 越多,计算成本越高。
  3. API 使用的计费单位:在某些生成模型的 API(例如 OpenAI 的 GPT-3)中,token 是计费的基础。生成的每个 token 和处理的每个输入 token 都会计算在内,模型会根据使用的 token 数量来收费。

测试

https://platform.openai.com/tokenizer

这个网页可以测试句子里具体有多少个token:

image-20241004194005105

可以看到OpenAI被拆成Open和AI。

大模型支持的Token数量,是评估它非常重要的一个指标:

image-20241004194144814

一般来说,75个单词对应100个token。