大模型分词算法全解析:BPE、WordPiece、SentencePiece 实战对比

分词(Tokenization)是大模型处理文本的第一步,相当于给模型 "拆分语言积木"------ 不同的拆分方式,直接影响模型的理解效率、显存占用和生成效果。

市面上主流大模型的分词算法主要有三类:BPE、WordPiece、SentencePiece。今天就用大白话拆解它们的核心逻辑、异同点,再结合 LLaMA、BERT、ChatGLM 等热门模型的分词实践,帮你彻底搞懂 "大模型是怎么切分文本的"。

一、Byte-Pair Encoding(BPE):按频率合并,大模型的 "基础分词法"

BPE(字节对编码)是最经典的分词算法,GPT-2、BART、LLaMA 等主流模型都在用。它的核心思路特别简单:从最小字符开始,反复合并高频相邻子词,直到达到目标词表大小。

1. BPE 构建词典的完整步骤

以英文 "low""lower""newest""widest" 为例,一步步看 BPE 怎么造词表:

  1. 准备阶段:确定训练语料(比如上述 4 个单词)和目标词表大小(假设目标:10 个词);
  2. 字符级拆分 :把每个单词拆成最小字符,末尾加 "</w>"(标记单词结束),统计频率:
    • low</w>: 1、lower</w>: 1、newest</w>: 1、widest</w>: 1
    • 拆分后:l o w </w>、l o w e r </w>、n e w e s t </w>、w i d e s t </w>
  3. 高频合并:统计所有相邻字符对的频率,合并最高频的对。比如 "e" 和 "s" 出现 2 次(newest、widest),合并为 "es";
  4. 重复合并:不断重复步骤 3------ 下次合并 "es" 和 "t"(频率 2)为 "est",再合并 "w" 和 "i"(频率 1)...... 直到词表达到 10 个词;
  5. 停止条件:词表大小达标,或下一个最高频字符对的频率为 1(再合并无意义)。

2. BPE 的核心特点

  • 优点:逻辑简单、易实现,能平衡 "词粒度" 和 "字符粒度"------ 高频词会被合并成一个子词(比如 "est"),低频词保留字符级拆分,兼顾效率和覆盖率;
  • 缺点:对低频词拆分过细(比如生僻词可能拆成单个字符),处理中文时容易出现 "单字拆分"(LLaMA 原生中文分词就是如此)。

二、WordPiece:按语言模型概率合并,BERT 的 "智能分词法"

WordPiece 是 Google 为 BERT 设计的分词算法,本质上是 BPE 的 "改进版"------ 核心思想和 BPE 一致,但合并规则不同

1. WordPiece 与 BPE 的核心异同

对比维度 BPE WordPiece
核心思想 从字符开始,逐步合并子词 同 BPE(字符→子词)
合并规则 选择出现频率最高的相邻子词合并 选择能让语言模型概率提升最大的相邻子词合并
目标 减少文本总 token 数 提升模型对文本的语义理解
代表模型 GPT-2、LLaMA、BART BERT、DistilBERT

2. 合并规则的通俗解释

BPE 像 "看 popularity 选队友"------ 谁凑在一起出现次数多,就合并谁;WordPiece 像 "看默契度选队友"------ 合并后能让整个句子的 "语义合理性"(语言模型概率)最高,才合并。

比如 "newest" 中的 "e" 和 "s",BPE 合并是因为它们一起出现 2 次;WordPiece 合并是因为 "es" 作为一个子词,能让 "newest" 的语义更连贯(模型预测 "newest" 的概率更高)。

3. WordPiece 的核心特点

  • 优点:拆分更贴合语义,能减少 "无意义子词"(比如不会把 "apple" 拆成 "app"+"le" 这种语义割裂的组合);
  • 缺点:计算复杂度比 BPE 高(需要计算语言模型概率),对低频词的处理效果仍有限。

三、SentencePiece:把空格当字符,多语种模型的 "万能分词法"

SentencePiece 是 Google 推出的 "通用分词工具",不是单一算法 ------ 它支持 BPE 和 Unigram 两种核心逻辑,核心创新是把空格当作特殊字符处理。ChatGLM、BLOOM、PaLM 等多语种模型都在用。

1. SentencePiece 的核心思路

传统分词算法(BPE/WordPiece)会先按空格拆分单词,再处理每个单词;而 SentencePiece 直接把整个句子当作 "字符序列",空格被编码成特殊符号(比如 "▁"),再用 BPE 或 Unigram 算法拆分。

举个例子,句子 "I love China":

  • 传统 BPE:先拆成 "I""love""China" 三个单词,再分别拆分;
  • SentencePiece:先转换成 "▁I▁love▁China"(空格→▁),再整体按 BPE 合并,可能拆成 "▁I""▁love""▁Chi""na"。

2. SentencePiece 的核心特点

  • 优点:
    1. 支持多语种:不用单独处理每种语言的空格、标点,适配中文(无空格)、英文(有空格)等多种语言;
    2. 灵活性高:可选择 BPE 或 Unigram 算法,按需调整;
    3. 无词表依赖:能处理生僻词、网络新词(拆成字符级);
  • 缺点:词表通常较大(比如 BLOOM 词表达 25 万),对模型显存有一定要求。

四、三大分词算法核心对比表

算法 核心逻辑 合并规则 代表模型 优点 缺点
BPE 字符→高频合并→子词 按出现频率最高合并 GPT-2、LLaMA、BART 简单易实现、效率高 低频词拆分过细、中文支持弱
WordPiece 字符→语义合并→子词 按语言模型概率最大合并 BERT、DistilBERT 语义贴合度高 计算复杂、多语种支持弱
SentencePiece 空格当特殊字符 + BPE/Unigram 可选(频率 / 概率) ChatGLM、BLOOM、PaLM 多语种友好、灵活 词表大、显存占用高

五、实战对比:主流大模型的分词方式差异

不同模型选择的分词算法不同,直接导致了它们的分词效果天差地别 ------ 尤其是处理中文时。

1. 热门模型分词方式一览

模型 分词算法 词表大小 中文分词特点
LLaMA(原生) BPE 32000 分词极细,平均 1 个汉字拆成 1.45 个 token(比如 "中" 拆成 2 个 token)
Chinese LLaMA BPE(扩展中文词表) ~80000 1-2 个汉字拆成 1 个 token,编码效率大幅提升
BERT WordPiece 30522 中文按单字拆分("中国"→"中"+"国"),语义贴合度高
ChatGLM-6B SentencePiece(BPE) 65024 平衡中英文,中文 1-2 字拆 1 个 token,效率和语义兼顾
BLOOM SentencePiece(Unigram) 250880 多语种适配,中英文分词效率和 ChatGLM 接近

2. 分词效果直观对比(以 "我爱中国" 为例)

  • LLaMA(原生):+(拆成 2 个 token)++(拆成 2 个 token)++(拆成 2 个 token)+(拆成 2 个 token)→ 共 10 个 token;
  • Chinese LLaMA:▁我爱+中国→ 共 2 个 token;
  • BERT:+++→ 共 4 个 token;
  • ChatGLM-6B:▁我爱中国→ 共 1 个 token;
  • BLOOM:▁我+++→ 共 4 个 token。

3. 核心区别总结

  1. 中文支持:ChatGLM-6B > Chinese LLaMA > BLOOM > BERT > LLaMA(原生);
  2. 分词效率(token 数越少效率越高):扩展词表的模型 > 多语种模型 > 原生单语种模型;
  3. 语义贴合度:WordPiece(BERT)> SentencePiece(ChatGLM)> BPE(LLaMA);
  4. 显存占用:词表越大占用越高(BLOOM > ChatGLM > LLaMA > BERT)。

六、总结:怎么选分词算法?

  1. 若做英文单语种模型:优先 BPE(简单高效)或 WordPiece(语义更好);
  2. 若做多语种模型:必选 SentencePiece(空格处理 + 多算法支持);
  3. 若做中文模型:优先用 SentencePiece 或扩展中文词表的 BPE(避免单字拆分);
  4. 若模型参数量小(<7B):选小词表 BPE(节省显存);若模型参量大(>13B):可选大词表 SentencePiece(提升效率)。

分词算法是大模型的 "地基"------ 选对了,模型能以更少的 token 处理更多文本,显存占用更低、生成更流畅。理解了 BPE、WordPiece、SentencePiece 的核心逻辑,不仅能更好地选型,还能在模型微调时针对性优化词表(比如给 LLaMA 扩展中文词表),让模型更适配你的任务~

相关推荐
光锥智能5 小时前
飞书钉钉AI硬件争夺战:录音背后的入口之争
人工智能·钉钉·飞书
跨境小渊5 小时前
DeepBI Listing优化功能第一弹:对标竞品评分报告
人工智能
xixixi777775 小时前
解析 Claude模型 —— Anthropic公司打造,以安全性和推理能力为核心竞争力的顶尖大语言模型
人工智能·ai·语言模型·自然语言处理·大模型·claude·主流模型
大唐荣华5 小时前
机器人落地“首台套”补贴,到底指什么?
人工智能·机器人
棒棒的皮皮5 小时前
【深度学习】YOLO论文官方演进 + 目标检测经典 + 拓展创新
深度学习·yolo·目标检测·计算机视觉
萤丰信息5 小时前
数字经济与 “双碳” 战略双轮驱动下 智慧园区的智能化管理实践与未来演进
大数据·人工智能·科技·智慧城市·智慧园区
pingao1413785 小时前
实时远程监控,4G温湿度传感器守护环境安全
大数据·人工智能·安全
shangjian0075 小时前
AI大模型-深度学习-卷积神经网络CNN
人工智能·神经网络·cnn
GIS萬事通5 小时前
基于arcgis制作深度学习标签并基于python自动化预处理样本
python·深度学习·arcgis·边缘计算