llama.cpp 分词器类型对比

2025-07-01 · 约 5 分钟 · 标签: llama.cpp , C++ , 本地AI

llama.cpp 分词器类型对比指南 (Tokenizers Comparison)

核心区别 (Key Differences)

类型 (Type)算法 (Algorithm)英文全称适用模型 (Models)关键特性 (Key Features)
SPM字节级BPESentencePiece ModelLLaMA系列支持字节回退机制
BPE字节级BPEByte Pair EncodingGPT系列纯字节合并
WPMWordPieceWordPiece ModelBERT系列使用##前缀标记
UGMUnigramUnigram ModelT5系列基于概率的子词剪枝
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)

  1. SPM (SentencePiece):

    • 最佳中文支持
    • LLaMA/Mistral等现代大模型
  2. BPE (Byte Pair Encoding):

    • GPT-3/4等OpenAI系模型
    • 通用文本处理
  3. WPM (WordPiece):

    • BERT/RoBERTa等NLP模型
    • 形态复杂语言(德语/土耳其语)
  4. UGM (Unigram):

    • T5/mT5等序列到序列模型
    • 低资源语言优化
  5. RWKV:

    • RWKV专属架构
    • 极简分词需求

技术指标 (Technical Metrics)

类型词表大小中文支持训练速度OOV处理
SPM★★★★★★★★★★★★★★★★
BPE★★★★★★★★★★★
WPM★★★★★★★★★★★★★
UGM★★★★★★★★★★★★★★★
RWKV★★★★★★★★★
评论
评论功能尚未配置:在 GitHub 仓库开启 Discussions,并按项目 README 里的步骤填好 src/consts.ts 即可启用(基于 Giscus,评论需要 GitHub 账号)。