当前位置: 首页 > news >正文

BPE、WordPiece 与 Unigram:三种主流子词分词算法对比

BPE、WordPiece 与 Unigram:三种主流子词分词算法对比

在构建现代自然语言处理模型时,Tokenizer 是连接文本与模型之间的桥梁。而在 tokenizer 的设计中,BPE(Byte Pair Encoding)、WordPiece 和 Unigram 三种子词(subword)分词算法是最常见的实现方式。本文将系统地介绍这三种方法的原理、特点以及适用场景,帮助读者更好地理解它们在大模型训练中的地位。

一、为什么需要子词(Subword)分词?

自然语言中的词汇是开放的,新词层出不穷。如果使用“词级分词”,会导致词表非常庞大,且容易出现 OOV(词表外)问题。而“字符级分词”虽然不需要大词表,但会导致序列过长,模型难以捕捉有用语义。

子词分词正好居中:通过将文本拆成较短、可组合的单元(如词根、词缀、常见组合),既减少了 OOV,又能有效压缩 token 数量,是目前大语言模型的主流选择。


二、BPE(Byte Pair Encoding)

原理:

BPE 是一种基于频率的贪心合并算法。

  1. 初始词表为所有字符。
  2. 每轮找出最常见的相邻 token 对(如 “天”+“气”),合并成一个新 token。
  3. 重复,直到词表达到预定大小(如 32,000)。

特点:

  • 拆词方式唯一,贪心合并。
  • 训练快、实现简单。
  • 对高频组合词(如 “人工智能”)压缩效果好。

应用:

GPT 系列、RoBERTa、Qwen 等模型。

示例(简化版):

语料:"天 气 真 好 天 气 真 好"

  1. 初始:['天', '气', '真', '好']
  2. 最频繁对:('天', '气') → 合并为 '天气'
  3. 继续合并:('真', '好') → 合并为 '真好'
    → 最终结果:['天气', '真好', '天气', '真好']

三、WordPiece

原理:

WordPiece 类似 BPE,但合并策略不是基于频率,而是基于语言模型的似然提升。

  1. 每轮尝试一个合并操作。
  2. 选择让训练语料 log-likelihood 增加最多的组合。
  3. 重复,直到词表达到目标大小。

特点:

  • 合并更“语言感知”,但训练慢。
  • 使用特殊符号表示子词拼接(如 “##ing”)。
  • 更适合英文场景。

应用:

BERT、DistilBERT 等模型。

示例(英文):

单词:"unhappiness"
拆分结果可能为:['un', '##happi', '##ness']
→ 带 ## 表示这是一个接续子词。


四、Unigram Language Model

原理:

Unigram 并不使用合并策略,而是假设一个大词表,保留其中概率最高的子词组合。

  1. 构造所有可能的子词候选。
  2. 初始化每个子词的概率。
  3. 用 EM 算法训练子词概率。
  4. 剪枝掉低概率子词,保留词表。

特点:

  • 多种分词路径可选,灵活性高。
  • 拆分不唯一,有更强的鲁棒性。
  • 特别适合多语言和小语种。

应用:

T5、mT5、ByT5、UL2 等模型。

示例:

语料:"今天真高兴"
候选分词路径可能有:

  • ['今天', '真', '高兴']
  • ['今', '天', '真', '高', '兴']
    Unigram 会保留概率最高的组合路径。

五、对比总结

特性BPEWordPieceUnigram
合并策略字符频率语言模型提升概率剪枝
拆分唯一性✅ 是✅ 是❌ 否
多语言支持中等较弱✅ 强
实现复杂度简单中等较复杂
常见应用模型GPT/QwenBERTT5/mT5/UL2

六、结语

BPE、WordPiece 和 Unigram 是构建高效、泛化性强的 tokenizer 的三种主流方法。它们在子词构建逻辑、鲁棒性、语言兼容性方面各有优势。在实际使用中,我们应结合模型类型、语种覆盖、资源限制等因素综合选择最合适的算法策略。

相关文章:

  • linux有效裁剪视频的方式(基于ffmpeg,不改变分辨率,帧率,视频质量,不需要三方软件)
  • C# 导出word 插入公式问题
  • 跟Gemini学做PPT-模板样式的下载
  • apptrace 的优势以及对 App 的价值
  • Axure设计案例——科技感渐变柱状图
  • 微软 Azure AI Foundry(国际版)十大重要更新
  • Kubernetes资源申请沾满但是实际的资源占用并不多,是怎么回事?
  • mysql一主多从 k8s部署实际案例
  • ssm学习笔记(尚硅谷) day1
  • 从融智学视角对决策态度进行定理级提炼,结合三标准数学建模
  • 微服务测试困境?Parasoft SOAtest的自动化、虚拟化与智能分析来袭!
  • 代码随想录打卡|Day51 图论(dijkstra(堆优化版)精讲、Bellman_ford 算法精讲)
  • 【前端】Twemoji(Twitter Emoji)
  • LeetCode 215:数组中的第K个最大元素 - 两种高效解法详解
  • 力扣-最长回文子串
  • HTB-Planning
  • PnP(Perspective-n-Point)算法 | 用于求解已知n个3D点及其对应2D投影点的相机位姿
  • Python基础教程:控制流与函数入门 - 第4-6天
  • 【网络入侵检测】基于Suricata源码分析FlowWorker实现
  • 智能仓储落地:机器人如何通过自动化减少仓库操作失误?
  • wordpress页脚小工具居中/淘宝seo优化
  • 开发网站怎样注册公司/网络营销的特点有哪些
  • 新手如何做服装网站/搜索网站大全
  • 和优网站建设/网站关键字优化技巧
  • 上海做网站设计/怎样建立网站平台
  • 福州网站建设外包/我们公司在做网站推广