M5-002M5: NLP & Large Language ModelsTokenization (BPE / WordPiece / Unigram)Easy
Mastery:

Tokenization (BPE / WordPiece / Unigram): 比较 BPE、WordPiece 与 Unigram。

📐 Mathematical Definition
WordPiece score(a,b)=count(ab)count(a)count(b);Unigram:L=∑log⁡p(subword)\text{WordPiece score}(a,b)=\frac{\mathrm{count}(ab)}{\mathrm{count}(a)\mathrm{count}(b)};\qquad \text{Unigram}: \mathcal{L}=\sum\log p(\text{subword})
⚡ Executive Summary
Core Concept: BPE 按频次合并;WordPiece 按'似然增益'合并(BERT);Unigram 从大词表出发按概率剪枝(T5/SentencePiece)。

📌 Key Takeaways

  • •
    BPE:频次驱动的合并(自底向上)
  • •
    WordPiece:似然比驱动的合并(偏好'共同出现'的组合)
  • •
    Unigram:概率模型 + 剪枝(自顶向下),支持多种分词采样

📐 Mathematical Derivations

数学机理:<strong>三种算法</strong>的差异在'合并/剪枝的判据'与'方向'。<strong>(1) BPE</strong>——自底向上,合并<strong>频次最高</strong>的相邻对:merge*=argmax count(a,b)。<strong>问题</strong>——只考虑绝对频次,可能合并'虽然频繁但语义上不构成整体'的组合(如 <code>de</code> 在 <code>de</code>+<code>f</code> 与 <code>ide</code> 中含义不同)。<strong>(2) WordPiece(BERT 用)</strong>——自底向上,但合并判据是<strong>似然比(点互信息式)</strong>:score(a,b)=count(ab)/(count(a)·count(b))。<strong>直觉</strong>——它偏好'单独出现少、但一起出现多'的组合(即'共同出现'的强关联),而非单纯高频;这使合并更'有意义'(如 <code>ing</code> 作为后缀的关联性强)。<strong>(3) Unigram(SentencePiece 的默认,T5/ALBERT/LLaMA 用)</strong>——自顶向下:先构造一个<strong>很大的候选子词集合</strong>(如所有高频子串),用<strong>一元语言模型</strong>(每个子词独立概率,句子的概率是子词概率之积)在语料上<strong>最大化似然</strong>训练概率,然后<strong>剪枝</strong>掉'删除后损失增加最小'的子词,逐步缩到目标词表。<strong>关键优势</strong>:(a) 概率模型使<strong>同一文本可有多种分词</strong>(按概率采样),支持<strong>subword regularization</strong>(训练时随机采样分词,提升鲁棒性)与 <strong>BPE-dropout</strong>;(b) 自顶向下的剪枝可全局权衡(不像 BPE 的贪心)。<strong>共同点</strong>——都产生<strong>子词词表</strong>、都解决 OOV、都被 SentencePiece/tiktoken 等库实现。<strong>实践</strong>——BPE 最简单最快(GPT 系用 tiktoken 的 BPE/BBPE);WordPiece 是 BERT 的遗产;Unigram 在 T5/LLaMA 系常用,且支持采样增强。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'自底向上 vs 自顶向下'的本质差异</strong>——BPE/WordPiece 从字符开始合并(局部贪心、无法撤销);Unigram 从大集合开始剪枝(全局权衡、可重新评估)。这使 Unigram 在理论上更接近'最优词表',但训练成本更高(需 EM 迭代)。② <strong>subword regularization 的价值</strong>——Unigram 的概率模型允许'同一句有多种分词',训练时随机采样可 (a) 提升对分词差异的鲁棒性、(b) 起到数据增强作用;BPE 需专门的 BPE-dropout 才能实现类似效果。③ <strong>词表共享与多语言</strong>——多语言模型(mBERT、XLM-R、mT5)需在<strong>多语言语料</strong>上联合训练 tokenizer;此时词表分配(每种语言分到多少 token)成为公平性问题(低资源语言被压缩得更厉害)。④ <strong>确定性对可复现性的影响</strong>——BPE/WordPiece 的分词是确定性的(给定词表),便于缓存与复现;Unigram 若启用采样则非确定(训练时),推理时通常用 Viterbi 最优分词(确定性)。⑤ <strong>与 SentencePiece 的关系</strong>——SentencePiece 把'预处理(空格处理)'与'分词'统一(把空格也视为普通符号 <code>▁</code>),使分词<strong>可逆</strong>(可精确还原原文);这对多语言与代码很重要(避免'去空格/加空格'的不可逆处理)。⑥ <strong>面试要点</strong>——被问'三种分词的区别',应给出'<strong>合并判据(频次 / 似然比 / 概率剪枝)+ 方向(自底向上 / 自顶向下)</strong>',并说明'Unigram 支持 subword regularization'与'SentencePiece 保证可逆';能指出'多语言词表分配公平性'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    以为 WordPiece 与 BPE 只是命名不同(判据不同)
  • ✕
    忽略 Unigram 的采样增强能力
🎯 Interviewer Follow-ups
  • ?
    为什么 WordPiece 用似然比而不是频次?
  • ?
    Unigram 的 EM 如何优化?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM5-001: Tokenization (BPE / WordPiece / Unigram): 解释 BPE 算法,并说明它为什么被广泛使用。📋Back to BankNext →M5-003: Tokenization (BPE / WordPiece / Unigram): 解释词表大小对模型的影响与取舍。