Skip to content

LLM Tokenizer 面试题

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

1. Byte-Pair Encoding (BPE) 如何构建词典?

BPE 是一种数据驱动的子词分词算法,通过迭代合并高频字节对来构建词典:

  1. 准备语料与目标词表大小
  2. 初始化:将每个单词拆分为字符粒度,单词末尾添加特殊后缀 </w>,统计所有单词频率
  3. 合并:统计所有相邻字节对的出现频率,将最高频的字节对合并为新的子词
  4. 迭代:重复第 3 步,直到词表达到设定的目标大小,或最高频字节对的出现频率为 1

应用模型:GPT-2、BART、LLaMA

2. WordPiece 与 BPE 的异同

二者本质都是 BPE 思想,核心区别在于合并策略

  • BPE:选择出现频次最高的相邻子词进行合并
  • WordPiece:选择能够最大化语言模型概率(即最大化训练数据似然)的相邻子词进行合并

应用模型:BERT

3. SentencePiece

核心思路:将空格也视为一种特殊字符处理,不依赖预分词(Pre-tokenization),直接对原始文本应用 BPE 或 Unigram 算法构建词汇表。

优势:语言无关,特别适合中文、日文等不存在天然空格分隔的语言。

应用模型:ChatGLM、BLOOM、PaLM

4. 不同大模型的分词方式对比

模型分词方式词表大小(参考)中文分词特点
LLaMABPE最小中文平均 token 数最高(约 1.45),分词粒度较细,大概率将中文字符切分为 2 个以上 token
Chinese-LLaMABPE(扩展词表)较大中文平均 token 数显著降低,通常一个或两个汉字为一个 token,编码效率提升
ChatGLM-6BSentencePiece约 130K中英文分词效果最均衡,中文处理时间略有增加
BLOOMSentencePiece最大多语种词表,中英文分词效率与 ChatGLM-6B 基本相当
GPT 系列BPE约 50K-100K英文分词为主

选型建议

  • LLaMA 原生中文分词粒度最细,推理开销最大,中文场景建议扩展词表
  • ChatGLM 在中英文平衡方面表现最佳
  • BLOOM 词表最大但支持语种最多,中英文场景可作为备选