大模型中“Token”的详细解释。

1. 一句话概括

Token是大模型用来理解和生成文本的基本单位。 它不是简单的“单词”或“汉字”,而是一个文本片段


2. 更详细的解释

Token是什么?

你可以把Token想象成模型所使用的“词典”或“词汇表”中的条目。当大模型(如GPT、LLaMA、文心一言等)看到或生成文本时,它并不是直接处理我们看到的字符,而是处理这些字符映射成的Token序列。

  • 对于英文:一个Token可能是一个单词(如 "apple")、一个词根(如 "un""undo" 中)、一个标点符号(如 "!"),甚至是单个字母(如 "a")。
  • 对于中文:由于中文是象形文字,没有空格分隔,情况更复杂。一个Token通常是一个汉字(如 "我""你"),但也可能是一个词(如 "葡萄")或一个常见的词组片段。
Token是如何产生的?—— Tokenization(分词)

将原始文本转换成Token序列的过程叫做分词

  • 过程:模型有一个预设的词表,里面包含了所有它认识的Token。分词器会尝试将输入文本与词表进行匹配,找到最长可能的Token序列。
  • 例子
    • 英文句子:"I don't like apples."
      • 分词后可能是:["I", " don", "'t", " like", " apples", "."]
      • 注意:"don't" 被拆分成了 " don""'t",空格有时也会被保留为Token的一部分。
    • 中文句子:"我喜欢吃葡萄。"
      • 分词后可能是:["我", "喜欢", "吃", "葡萄", "。"]
为什么使用Token而不是直接使用字符?
  1. 效率

    • 计算效率:处理一个由几千个Token组成的序列,远比处理一个由几万个字符组成的序列要高效。
    • 信息密度:一个Token可以携带比单个字符更多的信息。例如,Token "人工智能" 比四个独立的字符 "人", "工", "智", "能" 包含更丰富的语义。
  2. 处理未知词汇

    • 如果模型只认识字符,那么遇到一个从未见过的长单词(如专业术语 "Floccinaucinihilipilification")时,它会完全无法理解。
    • 通过分词,这个长单词可以被拆分成已知的子词Token(如 "Floc", "cin", "au", ...),模型就能根据这些部分来推测其含义。
  3. 跨语言统一

    • 使用统一的分词策略,可以让一个模型同时处理多种语言(如中英文混合文本),因为所有语言最终都被映射到了同一个Token空间中。

3. Token与大模型的关键关联

1. 输入与输出的限制

我们常听到的“上下文长度”(如GPT-4的128K上下文),指的就是模型能处理的Token总数(输入+输出)。

  • 例子:如果一个模型的上下文窗口是4096个Token,那么你的问题(Prompt)加上模型的回答(Completion)总Token数不能超过4096。
2. 计费与成本

对于绝大多数商业大模型API(如OpenAI、Anthropic),费用是基于Token数量计算的

  • 输入Token:你发送给模型的提示文本所消耗的Token。
  • 输出Token:模型生成的回答所消耗的Token。
  • 通常,输入Token的成本低于或等于输出Token的成本。
3. 性能与速度
  • 生成速度:模型的生成速度通常以 Tokens/秒 来衡量。
  • “思考”过程:模型在生成下一个Token时,会基于之前的所有Token进行计算,给出一个概率分布,然后选择最可能的一个(或通过某种采样方法)。所以,模型的“思考”是一个Token一个Token进行的。

4. 一个具体的例子

假设我们向模型提问:
提示(Prompt)“法国的首都是哪里?”

  1. 分词:假设分词结果为 ["法国", "的", "首都", "是", "哪里", "?"] → 共 6个输入Token
  2. 模型处理:模型理解问题,开始生成回答。
  3. 生成回答:模型一个接一个地生成Token:
    • 可能首先生成 ["巴黎"] (1个输出Token),
    • 然后判断句子是否完整,再生成 ["。"] (又一个输出Token)。
  4. 最终输出“巴黎。” → 共 2个输出Token
  5. 总消耗:本次交互总共消耗了 6(输入) + 2(输出) = 8 个Token。

总结

方面 关键点
本质 文本的基本处理单元,是模型“词典”里的条目。
作用 将人类可读文本转换为模型可处理的数字序列。
重要性 直接决定了模型的上下文长度限制API调用成本生成速度
核心概念 Tokenization(分词)Token Limit(Token限制)

简单来说,Token是大模型世界的“通用货币”,无论是理解、生成、计费还是性能,都围绕着它展开。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐