Token 的本质:AI 世界的「最小语言单位」
1.1 从人类认知到机器认知
人类阅读文字时,大脑能够瞬间识别含义,并在毫秒内完成语义处理。但计算机本质上是一台数学机器——它只能处理数字,无法直接理解「苹果」「猫」「快乐」这些抽象符号。
这就引出了一个根本问题:AI 如何把人类的语言转化为自己能「计算」的形式?答案就是 Token(词元)。
1.2 Token 的精确定义
Token 是大语言模型(LLM)处理文本的最小语义单元。一段文字首先被切分为若干 Token,再经过编码转换为数字向量,最终进入神经网络参与运算。
Token 并不等于一个字或一个单词。它可以是:
- 一个完整单词:
fun、is - 一个词的词根/后缀:
Run+ning= "Running" 被切为两个 Token - 一个标点符号:
,、?各算一个 Token - 一个特殊控制符:
<|endoftext|>是一个 Token - 一个或多个汉字:「苹果」可能是 1 个 Token,也可能是 2 个
1.3 Token 与数字 ID 的映射
每一个 Token 在模型词汇表中都对应一个唯一的整数 ID。这个映射关系在训练时确定,并固化在分词器中。
| Token(文本形式) | Token ID(数字) | 说明 |
|---|---|---|
苹果 | 19416 | DeepSeek-R1 分词结果 |
哈哈哈 | 40886 | 三字合为 1 个 Token |
Running | Run=3866, ning=278 | 一词被切为 2 个 Token |
<|endoftext|> | (特殊 ID) | 文本结束标记符 |
分词器(Tokenizer):AI 如何「发明」自己的词典
2.1 什么是分词器
分词器(Tokenizer)是将原始文本切分为 Token 序列的算法模块——所有输入文本必须经过分词器处理才能进入模型;所有输出的数字序列也必须经过分词器还原为可读文字。
| 分词器 | 代表模型 | 核心算法 |
|---|---|---|
| BPE(Byte Pair Encoding) | GPT 系列 | 基于字节对统计合并 |
| WordPiece | BERT 系列 | 基于似然最大化 |
| SentencePiece | 多语言模型 | 支持任意语言,无需预分词 |
| Tiktoken | OpenAI / DeepSeek | 高性能 BPE 实现 |
2.2 词汇表是如何「炼成」的
AI 的词汇表不是人工整理的字典,而是从海量文本中自动发现的。
Step 1:扫描海量文本
分词器会先扫描训练语料(通常数千亿个字符),统计所有字符和字符组合的出现频率。
Step 2:发现高频组合(BPE 算法核心)
系统自动发现哪些字符组合频繁出现在一起。在大量中文语料中,「苹果」作为整体出现频率极高,因此被作为独立 Token 收入词汇表,赋予唯一 ID(如 19416)。
Step 3:构建词汇表
最终词汇表包含数万至十余万个 Token,涵盖单字符、高频词、词根、标点、特殊符号等。词汇表大小(Vocabulary Size)通常在 3 万~15 万之间。
Token 的万千形态:不只是文字
| 类型 | 示例 | 说明 |
|---|---|---|
| 完整词 | is / fun / 苹果 | 高频词直接作为整体 Token |
| 词根/后缀 | Run + ning | 低频词被拆解为词根+后缀 |
| 标点符号 | , / ? / . | 每个标点独立占一个 Token |
| 特殊符号 | <|endoftext|> | 控制模型行为的特殊标记 |
| 汉字组合 | 哈哈哈 → 1 Token | 多字合并或单字拆分,取决于训练频率 |
| 数字/代码 | 2024 / def / {} | 数字和代码符号有独特的切分规律 |
3.1 终极案例:三个「苹果」如何区分?
上下文窗口(Context Window):AI 的「工作记忆」
4.1 定义
上下文窗口是大模型在单次推理时能够「看到」和「处理」的最大 Token 数量,决定了 AI 在一次对话中能记住多少信息。
简单理解:上下文窗口 = AI 的短期工作记忆容量。窗口之外的内容,模型完全「看不见」。
4.2 「有效工时」类比
约定 4 小时有效工时,可做:擦玻璃(10分)、洗衣服(10分)、做晚饭(10分)…
关键:「有效工时」不含交通时间
128K Token 上下文窗口,可容纳:长文章 + 对话记录 + 当前问题…
关键:超出后旧内容被截断
| 模型 | 上下文窗口 | 约折合中文字数 | 定位 |
|---|---|---|---|
| GPT-4o | 128K Token | ≈ 8.5 万字 | 通用旗舰 |
| Claude 3.5 Sonnet | 200K Token | ≈ 13 万字 | 长文档处理 |
| Gemini 1.5 Pro | 1M Token | ≈ 66 万字 | 超长上下文 |
| DeepSeek-R1 | 128K Token | ≈ 8.5 万字 | 推理增强 |
4.3 上下文窗口占用可视化
当总 Token 数超过上下文窗口时,系统通常会截断最早的对话,这就是为什么超长对话中 AI 会「忘记」开头说了什么。
中英文 Token 差异:为什么中文「更贵」?
「apple」= 1 Token ✅
「男」≈ 2 Token(拆分)⚠️
5.1 根本原因与实际影响
主流大模型训练数据以英文为主(通常占比超 70%),分词器对英文词汇进行大量合并,而中文字符频率相对低,往往需要多个字节表达。
| 影响维度 | 中文不利场景 | 应对策略 |
|---|---|---|
| API 费用 | 同等内容中文比英文贵 2-3 倍 | 用中文优化模型;精简提示词 |
| 上下文占用 | 中文长文章更快填满窗口 | 摘要化历史对话;分段处理 |
| 响应速度 | Token 数多 → 生成时间略长 | 流式输出;预处理分块 |
Transformer 架构:Token 如何「活」起来
6.1 Transformer 解决的核心问题
Token 本身只是数字 ID,没有任何语义信息。真正让「苹果」在不同语境中含义不同的,是 Transformer 中的注意力机制(Attention Mechanism)。
6.2 从 Token 到语义:完整处理流程
分词
嵌入
6.3 注意力机制的直觉理解
- 模型计算「苹果」与上下文中所有 Token 的相关性分数(Attention Score)
- 「叫」与「苹果」的相关性分数很高 → 注意力权重大
- 最终「苹果」的语义向量被「叫」大幅影响 → 推断为人名
6.4 层叠与规模
| 模型 | 参数量 | Transformer 层数 | 特点 |
|---|---|---|---|
| GPT-3 | 1750亿 | 96 层 | 通用基础 |
| GPT-4 | 未公开 | ~100+ 层 | 多模态 |
| DeepSeek-R1 | 6710亿 MoE | 61 层 | 推理增强 |
每一层都在前一层基础上提取更抽象的特征——底层捕捉语法,中层捕捉语义,高层捕捉推理逻辑。
综合知识图谱与实践指南
7.1 核心概念关系图
7.2 实用速查表
| 使用场景 | Token 估算 | 注意事项 | 建议 |
|---|---|---|---|
| 200 字中文提示词 | ≈ 200~400 Token | 汉字消耗多 | 精简用词 |
| 10 万字文档 | ≈ 10万~25万 Token | 可能超出窗口 | 分章节处理 |
| 200 行 Python 代码 | ≈ 800~1500 Token | 代码效率较高 | 可直接输入 |
| 连续对话 30 轮 | ≈ 6000~15000 Token | 历史累积快 | 定期开新对话 |
7.3 常见误区澄清
7.4 延伸学习路径
动手使用 Tiktokenizer 工具,输入不同语言/类型文本,观察 Token 切分结果
在实际 API 调用中监控 Token 消耗,优化提示词降低成本
学习 BPE 算法具体步骤(Sennrich et al., 2015《Neural Machine Translation of Rare Words with Subword Units》)
阅读 Attention Is All You Need(Vaswani et al., 2017),理解 Multi-head Attention 的完整数学形式
关注 MLA(Multi-head Latent Attention)、Flash Attention、Mamba SSM 等新型注意力变体