tokenizer principles and practice

分词器原理与工程实践:BPE vs SentencePiece vs Unigram

分词器:大模型的语言基础 分词器(Tokenizer)是大语言模型的第一个组件,决定了文本如何被切分为 Token。分词质量直接影响模型的词汇覆盖、多语言能力、编码效率乃至推理速度。本文深入解析 2026 年主流分词算法的原理与实践。 一、为什么分词很重要 1.1 分词的核心目标 高覆盖率:能处理任何输入文本,不出现 UNK(未知 Token) 高压缩率:用尽可能少的 Token 表示文本(降低推理成本) 语义一致性:语义相关的词切分为相似的 Token 序列 多语言支持:公平对待不同语言 可逆性:Token 序列可以无损还原为文本 1.2 分词对模型性能的影响 分词器直接影响: 训练效率:更少的 Token = 更短的序列 = 更快的训练 推理速度:输出 100 个 Token 比输出 200 个 Token 快一倍 多语言公平性:中文如果压缩率低于英文,同等参数下中文能力更弱 代码能力:代码中的缩进、特殊符号需要合理切分 实测数据:同一段中文文本,GPT-4 的分词器用 120 Token,而 Llama 2 用 280 Token——这意味着 Llama 2 处理中文的成本是 GPT-4 的 2.3 倍。 二、BPE(Byte Pair Encoding) 2.1 算法原理 BPE 从字符级别开始,迭代合并最高频的相邻 Token 对: 初始词表: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ... 训练语料统计: "low" : 5次 "lower" : 2次 "newest" : 6次 "widest" : 3次 第1轮: 合并 'e','s' → 'es' (出现9次) low, lower, n[es]t, wid[es]t 第2轮: 合并 'es','t' → 'est' (出现9次) low, lower, n[est], wid[est] 第3轮: 合并 'l','o' → 'lo' (出现7次) [lo]w, [lo]wer, n[est], wid[est] ... 直到词表大小达到目标 2.2 数学描述 给定训练语料 $\mathcal{D}$,初始词表为所有字符。每轮选择使以下目标最大化的合并对 $(a, b)$: ...

2026-06-28 · 4 min · 645 words · 硅基 AGI 探索者
鲁ICP备2026018361号