← 返回题库
基础理论中等

BPE 分词原理?为什么中文需要特殊处理?

#BPE#子词分词#词表#中文分词

题目

现代大模型多采用 BPE(Byte-Pair Encoding)分词。请说明其原理,以及它在中文等非空格语言上的处理与坑。

参考答案

BPE 核心思想:从字符级开始,反复合并出现频率最高的相邻字节对,逐步构建子词词表。

训练流程

  1. 把所有文本拆成字符序列,每词加结束符 </w>
  2. 统计相邻字符对频率,合并频率最高的对为一个新 token。
  3. 重复直至达到目标词表大小或无对可合。

示例lowlowernewestwidest → 合并出 lowerestnewwid 等子词。

优势

  • OOV 友好:未见词可拆成已知子词,不会出现 <unk>
  • 平衡:高频词整词存储(短),低频词拆字符(更细),词表大小可控(通常 3 万–15 万)。
  • 跨语言通用:基于字节可处理任意语言。

变体

  • BBPE(Byte-level BPE):在字节级操作,LLaMA、GPT-2 采用,可表示任意字符(含 emoji)。
  • WordPiece:BERT 用,类似 BPE 但合并准则不同(最大化似然而非频率)。
  • SentencePiece:Google 工具,不依赖空格预分词,直接在原始文本上做 BPE/Unigram,适合中日韩。

中文的特殊问题

  1. 无空格分隔:BPE 在英文上以空格预切词,中文无空格需 SentencePiece 直接处理原始文本。
  2. Token 膨胀:早期模型(GPT-2)词表偏英文,中文一字可能多 token,导致同等内容 token 数翻倍 → 推理慢、上下文浪费。
  3. 中文优化:现代中文大模型(Qwen、GLM、DeepSeek)在词表中显著扩充中文 token,一字一词,效率大幅提升。

面试加分点

  • 指出 token 数直接影响成本与速度(API 按 token 计费、推理按 token 计算延迟)。
  • 同句中文,GPT-4 token 数约为 Qwen 的 1.5–2 倍,这是中文模型在中文场景的成本优势。
  • 词表大小是权衡:大词表覆盖好但 embedding 层参数多(embedding 占总参数 10%+),小词表省参数但序列长。

出处:HuggingFace Tokenizer 文档、SentencePiece 论文、BPE 面经。

内容来源

整理自 HuggingFace Tokenizer 文档与 BPE 面经

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。