- 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