- Published on
llama.cpp 分词器类型对比
llama.cpp 分词器类型对比指南 (Tokenizers Comparison)
核心区别 (Key Differences)
| 类型 (Type) | 算法 (Algorithm) | 英文全称 | 适用模型 (Models) | 关键特性 (Key Features) |
|---|---|---|---|---|
| SPM | 字节级BPE | SentencePiece Model | LLaMA系列 | 支持字节回退机制 |
| BPE | 字节级BPE | Byte Pair Encoding | GPT系列 | 纯字节合并 |
| WPM | WordPiece | WordPiece Model | BERT系列 | 使用##前缀标记 |
| UGM | Unigram | Unigram Model | T5系列 | 基于概率的子词剪枝 |
| RWKV | 贪婪字符级 | RWKV Tokenizer* | RWKV系列 | 直接字符分割 |
| Type | 示例输入 → 输出 |
|---|---|
| SPM | "你" → ["▁你"] |
| BPE | "hello" → ["he", "ll", "o"] |
| WPM | "unhappy" → ["un", "##happy"] |
| UGM | "hello" → ["h", "ello"] |
| RWKV | "hello" → ["h","e","l","l","o"] |
*注:RWKV是模型名称,非算法缩写
选型建议 (Selection Guide)
SPM (SentencePiece):
- 最佳中文支持
- LLaMA/Mistral等现代大模型
BPE (Byte Pair Encoding):
- GPT-3/4等OpenAI系模型
- 通用文本处理
WPM (WordPiece):
- BERT/RoBERTa等NLP模型
- 形态复杂语言(德语/土耳其语)
UGM (Unigram):
- T5/mT5等序列到序列模型
- 低资源语言优化
RWKV:
- RWKV专属架构
- 极简分词需求
技术指标 (Technical Metrics)
| 类型 | 词表大小 | 中文支持 | 训练速度 | OOV处理 |
|---|---|---|---|---|
| SPM | ★★★★ | ★★★★★ | ★★★ | ★★★★ |
| BPE | ★★★ | ★★ | ★★★★ | ★★ |
| WPM | ★★★★ | ★★★ | ★★ | ★★★★ |
| UGM | ★★★★★ | ★★★★ | ★ | ★★★★★ |
| RWKV | ★ | ★★ | ★★★★★ | ★ |
THE END