BPE和BBPE算法

一、BPE(Byte-Pair Encoding)

1.基本逻辑

BPE 的核心思想是:

从最小的单位(字符)开始,迭代地合并语料中最频繁出现的相邻符号对(pair),逐步形成更大的子词单元。

这种方式能在 词粒度和字符粒度之间取得平衡,有效缓解 OOV(未登录词)问题。


2.算法流程(两阶段)

训练阶段(Learning Merge Rules)

目标:学习最优的“合并规则”列表。

输入: 大型语料库
输出: 合并规则列表 + 最终词表

步骤:

  1. 预处理:将每个词拆为单个字符,末尾加结束符 </w>
    例:hug[h, u, g, </w>]

  2. 统计频率:统计每个单词的出现次数。

  3. 统计符号对频率:找出所有相邻符号对(pair)出现的次数。

  4. 选择最频繁的符号对:如 (u, g)

  5. 合并该符号对:生成新token(如 ug),更新语料。

  6. 重复3~5步,直到:

    • 达到设定的合并次数;

    • 或词表大小达到上限。

例子中,合并顺序为:
(1) u+g→ug
(2) u+n→un
(3) un+</w>→un</w>
(4) h+ug→hug


编码阶段(Tokenization)

目标:使用已学到的规则对新文本进行分词。

步骤:

  1. 将输入单词拆为字符 + </w>

  2. 按训练时的顺序依次应用合并规则;

  3. 若某条规则可应用则执行合并;

  4. 最终输出子词序列。

例:
bug[b, u, g, </w>]
合并规则① (u,g)ug[b, ug, </w>]
最终Token序列:b, ug, </w>


3.特点与优势

  • 语义合理的子词划分(unhappy → [un, happy])
  • 平衡词表规模与序列长度
  • 显著减少 OOV 问题
  • 支持泛化能力(见过 happy 就能理解 unhappiness)

4.局限

  • 不同语言(尤其是多字节字符如中文)导致字符集过大;

  • 对罕见字符仍可能出现 <UNK>

  • 合并规则固定,不具上下文适应性。


二、BBPE(Byte-Level BPE)

1.核心逻辑

BBPE 是 BPE 的 字节级版本
区别在于:它不是在字符上操作,而是在 UTF-8 字节流上运行

这样能确保:

任何可编码的文本(包括 emoji、多语言文字)都能被一致地分词。


2.算法思想

  • 初始token单位:256个字节(0–255);

  • 在字节层面统计相邻字节对的共现频率;

  • 与BPE相同,迭代合并最高频字节对;

  • 每次合并后新建一个虚拟ID(如256, 257, 258...)代表新token;

  • 合并直到词表达到目标大小。


3.算法步骤

训练阶段
  1. 将文本转为 UTF-8 字节序列;

  2. 统计所有相邻字节对出现频率;

  3. 找出频率最高的字节对;

  4. 合并该对,生成新token(如256);

  5. 更新语料并重复;

  6. 最终得到:基础字节 + 若干合并token。

例子:

hug → [104,117,103] pug → [112,117,103]

(117,103)出现频率最高 → 新token 256 = (117,103)


编码阶段
  1. 输入新词转为字节序;

  2. 按已学习的合并规则贪婪匹配;

  3. 输出token序列。

例子:
bug[98,117,103]
[98,256]
结果:b, ug


4.特点与优势

  • 统一字节词表(256+N),覆盖所有语言
  • 完全无 <UNK>
  • 高度鲁棒:连emoji、符号、稀有字符都能分解
  • GPT系列(GPT-2/3/4)采用该技术

5.BPE vs BBPE 对比总结

特性BPEBBPE
操作单位字符或子词字节
语言支持需语言特化通用(多语言友好)
词表大小稍大(256+合并数)
OOV风险
实现复杂度简单稍高(需编码转换)
典型模型GPT-1GPT-2、GPT-3、GPT-4

三、总结理解

项目BPEBBPE
思想从字符开始,迭代合并高频字符对从字节开始,迭代合并高频字节对
目标得到稳定子词词表得到跨语言统一词表
关键操作统计pair频率 → 合并最高频 → 更新语料同BPE但单位为byte
效果平衡词表与语义完全消除OOV
应用模型GPT-1、RoBERTaGPT-2/3/4、DeepSeek
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值