Token 概念详解
什么是Token?
Token 是语言处理的基本单元,类似于构成文本的"原子"。
Token可以是:
- 一个字符(如 "a")
- 一个子词(如 "ing")
- 一个完整单词(如 "apple")
- 一个短语或符号
什么是Tokenization?
Tokenization(分词) 是将文本字符串转换为Token序列的过程:
- 文本 → Token序列
- Token → 整数ID
- 可逆转换过程
- 模型输入预处理
为什么Tokenization如此重要?
Tokenization直接影响LLM的性能和行为,许多看似与模型架构相关的"奇怪现象"本质上源于分词逻辑。
影响概览
- 性能影响 - 分词策略直接影响模型的理解能力和处理效率
- 语言适配 - 不同语言的分词效果差异巨大,影响多语言能力
- 成本控制 - Token数量直接影响API调用成本和计算资源
问题示例
1. 拼写与基础任务缺陷
- LLM可能拼错单词或无法反转字符串
- 原因:单词被拆分,模型难以理解完整含义
2. 非英语语言表现
- 日语、中文等语言的分词更复杂
- 问题:Token序列更长,消耗更多上下文窗口
3. 代码处理挑战
- Python代码的缩进空格被分割
- 问题:缩进空格成为独立Token,浪费计算资源
4. 结构化数据格式
- JSON比YAML消耗更多Token
- 问题:JSON的符号更多,Token效率较低
Tokenization核心流程
预训练阶段:构建词汇表
- 收集语料库 - 获取大量文本数据(网页、书籍等)
- 初始分词 - 用基础方法分割文本
- 选择算法 - 选择分词算法(BPE、WordPiece等)
- 生成词汇表 - 合并高频Token对
- 分配ID - 为每个Token分配唯一ID
实时分词过程
- 文本输入 - 接收用户输入的文本
- 文本转换 - 将文本拆分为词汇表中的Token
- ID映射 - Token转为对应的整数ID
- 添加特殊Token - 添加控制Token(如<|start|>, <|end|>)
BPE算法
Byte Pair Encoding (BPE) 是现代分词的主流算法。
BPE原理
- 初始字符表 - 从基础字符开始,建立初始词汇表
- 迭代合并 - 统计字符对频率,合并最常见的对
- 优化压缩 - 平衡词汇表大小与文本压缩效果
BPE示例
语料库:["hug", "pug", "hugs", "pugs", "huge", "hugging"]
迭代过程:
- 初始化:[h, u, g, p, s, e, i, n]
- 统计:u+g出现6次(最频繁)
- 合并:u + g → ug
- 继续:h + ug → hug
- 继续:p + ug → pug
- 最终词汇表:[h, u, g, p, s, e, i, n, ug, hug, pug]
BPE优势
- 可逆无损 - 可以完整地将Token序列还原为原始文本
- 泛化性强 - 能处理未登录词(OOV),如"unhug"会被拆分为"un"+"hug"
Token vs Embeddings
| 维度 | Tokenization | Embeddings |
|---|---|---|
| 目的 | 将文本转为Token序列(离散ID) | 将Token ID转为语义向量(连续表示) |
| 阶段 | 预处理(模型输入前) | 模型内部处理(输入层) |
| 作用 | 结构化文本,降低计算复杂度 | 捕获语义关系(如"国王"与"王后"的向量距离近) |
| 输出示例 | "hello" → ID 123 | ID 123 → [0.1, 0.3, -0.2, ...] (128维向量) |
完整处理流程
输入文本 → Tokenization → Token IDs → Embeddings → 模型处理
Token效率对比
YAML格式
name: John
age: 30
city: Shanghai
Token数量:29
JSON格式
{
"name": "John",
"age": 30,
"city": "Shanghai"
}
Token数量:46
影响:相同的配置信息,JSON格式比YAML多消耗59%的Token,直接影响API成本和模型的上下文窗口利用效率。
来源:Easy AI 学习平台 | 本教程为AI知识普及而制作 #EasyAI #AI教学 #教程 #Token #分词
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
领取 2000万 Tokens
通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力