M5-005M5: NLP & Large Language ModelsTokenization (BPE / WordPiece / Unigram)Hard
Mastery:

Tokenization (BPE / WordPiece / Unigram): 解释分词对多语言与代码的影响与常见问题。

📐 Mathematical Definition
fertility=#tokens#words;Chinese≫English in BBPE\text{fertility}=\frac{\#\text{tokens}}{\#\text{words}};\qquad \text{Chinese}\gg\text{English}\ \text{in BBPE}
⚡ Executive Summary
Core Concept: 非拉丁语言 fertility 高(中文常 1~2 字/token)、代码缩进与符号被切碎、数字切分不规则损害算术。

📌 Key Takeaways

  • •
    多语言:低资源语言被切得更碎 → 成本与上下文占用更高
  • •
    代码:缩进(空格)与特殊符号切碎,影响结构与对齐
  • •
    数字:不规则切分损害数位对齐与算术能力

📐 Mathematical Derivations

数学机理:<strong>三个典型问题</strong>。<strong>(1) 多语言的 fertility 不均</strong>——在<strong>字节级 BPE</strong> 下,一个 UTF-8 中文字符占 3 字节、日文 3 字节、韩文 3 字节,而英文一个字母占 1 字节。若词表在多语言语料上联合训练,高资源语言(英语)的常见词被合并为整体 token(压缩率高),而低资源语言(如斯瓦希里语、缅甸语)的子词合并机会少,导致<strong>同一语义内容需更多 token</strong>。后果:(a) <strong>推理成本不均</strong>(同一段话在低资源语言上更贵);(b) <strong>上下文有效长度不均</strong>(同窗口容纳的信息更少);(c) <strong>训练不均衡</strong>(低资源语言的有效训练信号被稀释)。这是多语言模型的系统性问题。<strong>(2) 代码的分词问题</strong>——代码含大量<strong>缩进(空格/制表符)</strong>、特殊符号(<code>{}</code>、<code>-></code>、<code>::</code>)、长标识符;分词可能把 (a) 缩进切成多个空格 token(浪费)、(b) 常用符号组合切碎(损害语法模式学习)、(c) 长变量名切成无语义片段。<strong>后果</strong>——代码模型的'有效上下文'被缩进占用、对'缩进敏感'的语言(Python)可能受影响。<strong>(3) 数字的分词问题</strong>——BPE 会把数字切成<strong>不规则</strong>片段(如 <code>1234</code> → <code>12</code>+<code>34</code>,<code>12345</code> → <code>123</code>+<code>45</code>),使<strong>同一数位在不同数字中位于不同 token</strong>,破坏'数位对齐'结构;这损害 (a) 算术能力(数位对齐是加法的关键)、(b) 数值比较、(c) 表格/财务数据的处理。研究显示'按单个数字切分'或'固定位数分组'可显著改善算术能力。<strong>其他问题</strong>——(a) <strong>前后空格/标点</strong>(<code>▁</code> 处理不当导致不可逆);(b) <strong>emoji 与罕见字符</strong>(多字节,可能被切碎);(c) <strong>大小写与形态</strong>(黏着语的后缀爆炸)。<strong>改善方向</strong>——(a) 按语言分配词表预算(多语言公平);(b) 专用 token(如代码的缩进 token、数字的逐位切分);(c) 更大的词表;(d) 领域适配的 tokenizer 微调。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'同一 token 预算下的公平性'</strong>——多语言模型的成本与上下文应按'每字节'或'每语言'衡量,而非'每 token';否则会给低资源语言用户更差的服务(同样价格得到更少内容)。这是产品与公平性问题。② <strong>数字分词与推理模型的关系</strong>——近年的推理模型(做数学)常受益于'逐位数字切分'或'工具调用计算器';后者把精确算术外包给工具,绕过分词问题(这也是 Agent + 工具的动机之一)。③ <strong>代码分词的工程价值</strong>——代码模型的 tokenizer 常专门处理缩进(把 4 空格作为一个 token)与常见符号组合;这对'长代码文件的上下文效率'影响显著。④ <strong>与'上下文长度'宣称的关系</strong>——厂商宣称的'128k 上下文'是<strong>token 数</strong>;对中文用户,实际能容纳的<strong>汉字数</strong>可能只有 1/1.5~1/2(取决于 tokenizer);这是'名义 vs 有效'的又一体现。⑤ <strong>词表扩展的代价</strong>——为新语言/领域加 token 需 (a) 初始化新 embedding(常用旧 token 均值)、(b) 继续预训练(否则新 token 未训练)、(c) 接受'原能力可能轻微下降';故需权衡'效率提升'与'能力风险'。⑥ <strong>面试要点</strong>——被问'分词有什么问题',应给出'<strong>多语言 fertility 不均 + 代码缩进/符号切碎 + 数字不规则切分</strong>'三类与各自后果,并给出'按语言分配预算 / 专用 token / 工具外包算术'等对策;能指出'上下文长度宣称是 token 数、中文实际容量更小'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    忽略分词对不同语言造成的成本与上下文不均
  • ✕
    在数学任务上忽略数字分词对算术的损害
🎯 Interviewer Follow-ups
  • ?
    为什么中文在 BBPE 下 token 效率低?
  • ?
    如何改善数字与代码的分词?
📚

Associated Knowledge Base Guides & Mindmaps

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

← PreviousM5-004: Tokenization (BPE / WordPiece / Unigram): 解释 tokenizer 对下游指标的影响,为什么跨模型比较 PPL 不公平。📋Back to BankNext →M5-006: Tokenization (BPE / WordPiece / Unigram): 解释词表扩展(vocabulary expansion)的做法与注意点。