Tokenizer分片和Embedding的关系
Tokenizer 分片(tokenization)和 Embedding 都是在把“离散的文字”转换成“模型能处理的数字表示”,所以看起来相似。但它们处在 LLM 输入流程的不同阶段,解决的问题完全不同。
可以先看一条典型 LLM 流程:
文本
↓
Tokenizer(分片 + 编号)
↓
Token IDs
↓
Embedding(查表变向量)
↓
向量序列
↓
Transformer
↓
输出 Token IDs
↓
Tokenizer 解码
↓
文本
1. Tokenizer 做什么:把文字切成“单位”
Tokenizer 的任务是:
把人类语言切成模型词汇表里的基本单位。
例如一句话:
我喜欢人工智能
可能被切成:
["我", "喜欢", "人工", "智能"]
或者:
["我", "喜", "欢", "人工", "智能"]
英文可能:
"unbelievable"
切成:
["un", "believ", "able"]
这些 token 会被映射成整数:
["我", "喜欢", "人工", "智能"]
↓
[2345, 7821, 9134, 5567]
这些数字叫:
Token ID
注意:
Token ID 本身没有语义。
比如:
苹果 = 3456
香蕉 = 9821
汽车 = 1234
3456 并不比 9821 更“小”,数字大小没有意义。
2. Embedding 做什么:把 Token ID 变成有意义的向量
Embedding 的任务是:
把离散编号转换成连续空间里的语义向量。
例如:
Token ID:
苹果 = 3456
经过 Embedding:
3456
↓
[0.12, -0.53, 0.87, ..., 0.22]
可能是一个 4096 维向量。
这个向量里的数字表达:
- 和水果相关
- 和食物相关
- 和甜味相关
- 和植物相关
类似:
苹果向量
[0.12,0.54,-0.33,...]
香蕉向量
[0.15,0.51,-0.30,...]
汽车向量
[-0.71,0.22,0.89,...]
苹果和香蕉在向量空间里距离比较近,汽车比较远。
3. 两者之间的关系
因为两者都是“编码”。
可以类比:
Tokenizer:
像身份证系统:
张三 → 身份证号 123456
李四 → 身份证号 987654
只是给一个唯一编号。
Embedding:
像建立人物画像:
123456 →
[年龄,职业,兴趣,性格,...]
开始有信息。
换句话:
| Tokenizer | Embedding | |
|---|---|---|
| 输入 | 文字 | Token ID |
| 输出 | 数字编号 | 高维向量 |
| 是否包含语义 | ❌ 没有 | ✅ 有 |
| 是否训练 | 通常固定 | 模型学习 |
| 目的 | 切分语言 | 理解语言 |
| 例子 | “人工智能”→[123,456] | 123→[0.2,-0.5,…] |
4. Embedding 本质上是什么?
很多人不知道:
Embedding 层其实就是一个巨大的查表矩阵。
假设:
词表大小:
Vocabulary = 100,000 tokens
模型维度:
Hidden size = 4096
那么 Embedding 矩阵:
100000 × 4096
类似:
维度
token 1 2 3 ...
--------------------------------
苹果 0.2 -0.4 0.7
香蕉 0.3 -0.3 0.6
汽车 -0.8 0.1 0.9
...
输入:
苹果 token id = 1234
实际上就是:
Embedding_matrix[1234]
取出那一行。
5. Tokenizer 的分片会影响 Embedding 吗?
会,而且影响很大。
例如:
Tokenizer A
人工智能
↓
["人工智能"]
Embedding 学习:
人工智能 → 一个整体概念
Tokenizer B
人工智能
↓
["人工", "智能"]
Embedding 学习:
人工 → 人类制造
智能 → 能力
模型需要自己组合:
人工 + 智能 = AI概念
所以 tokenizer 设计会影响:
- 模型效率
- 上下文长度
- 多语言能力
- 中文表现
- 训练成本
6. 一个更深的联系:Embedding 也能反过来表示 Token
很多现代 LLM 有:
Token Embedding
和:
Output Projection
有时共享权重(weight tying):
Token ID
↓
Embedding矩阵
↓
Transformer
↓
同一个矩阵反推
↓
Token概率
所以 Tokenizer 和 Embedding 在模型结构上是紧密连接的。
总结
可以记成:
Tokenizer 负责回答:“这句话由哪些基本单位组成?”
Embedding 负责回答:“这些单位在数学空间里是什么意思?”
或者:
Tokenizer = 分词 + 编号(字典)
Embedding = 把编号变成含义(向量)
核心:它们都是离散符号 → 数字表示的过程,只是 Tokenizer 产生的是“索引”,Embedding 产生的是“语义空间中的坐标”。
更多推荐


所有评论(0)