在大语言模型(Large Language Models, LLM)中,Token 是模型处理和理解自然语言的基本单位,也是其“思考”和“表达”的最小单元。理解 Token 对于掌握大模型的工作原理、使用限制以及成本计算至关重要。
Token 并不严格等同于“一个字”或“一个词”,而是由特定分词(Tokenization)算法决定的文本片段。它可以是:
在 LLM 中,token 代表模型可以理解和生成的最小意义单位,是模型的基础单元 。根据所使用的特定标记化方案,token 可以表示单词、单词的一部分,甚至只表示字符 。
大模型在接收文本前,会先通过一个叫 Tokenizer(分词器) 的组件将原始文本转换为一系列 Token。这个过程称为 Tokenization。
常见的分词方法包括:
例如,使用 BPE 的模型(如 GPT 系列)可能会这样分词:
注意:空格通常被合并到后续 Token 中(如 " love")。
对于中文,由于没有天然的空格分隔,主流模型(如 ChatGPT、Claude)通常将每个汉字视为一个 Token,部分高频词也可能作为一个整体 Token。
模型输入标准化
神经网络只能处理数字,不能直接处理文本。Token 被映射为唯一的整数 ID(如 "cat" → 50256),再通过嵌入层(Embedding)转换为向量,供模型计算 。
控制上下文长度
大模型有最大上下文长度限制(如 GPT-4o 支持 128,000 Token)。这个限制决定了模型一次能“看到”多少内容。Token 数量直接影响对话历史、文档长度等使用场景 。
计费与性能评估
几乎所有商用大模型 API(如 OpenAI、Anthropic)都按 输入 + 输出的总 Token 数计费。理解 Token 有助于预估成本和优化提示(Prompt)。
| 场景 | 影响 |
|---|---|
| 长文档处理 | 一篇 1 万字的中文文章 ≈ 10,000 Token;英文文章 ≈ 7,000–8,000 Token(因单词更长) |
| 多轮对话 | 对话历史会累积 Token,可能很快达到上下文上限 |
| Prompt 工程 | 精简 Prompt 可节省 Token,降低成本并为输出留出空间 |
| 模型输出限制 | 即使上下文很长,模型单次输出也有 Token 上限(如 4,096) |
通常 1 个中文词语、1 个英文单词、1 个数字或 1 个符号计为 1 个 token 。但实际数量需通过官方 Tokenizer 工具精确计算。
你可以使用官方工具估算 Token:
tiktoken(用于 GPT)或 transformers 库(用于开源模型)示例(Python):
pythonimport tiktoken
enc = tiktoken.encoding_for_model("gpt-4")
tokens = enc.encode("你好,世界!")
print(len(tokens)) # 输出 Token 数量
Token 是大语言模型的“语言乐高积木” 。它不仅是模型理解世界的基石,也是开发者与用户在使用大模型时必须关注的核心概念。掌握 Token 的本质,有助于:
正如一句业内共识所说:“不懂 Token,就无法真正驾驭大模型。”
本文作者:aifsci
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!