BPE(Byte Pair Encoding)和BBPE(Byte-Level Byte Pair Encoding)的区别

BPE(Byte Pair Encoding)示例

假设我们有一个简单的文本语料库:

low
lower
newest
widest

BPE处理步骤:

初始化:

  • 将每个单词分解为字符序列:l o w, l o w e r, n e w e s t, w i d e s t

统计频率:

  • 计算所有相邻字符对的频率:
    • l o: 2
    • o w: 2
    • w e: 2
    • e s: 2
    • s t: 2
    • 其他字符对频率为1

合并频率最高的字节对:

  • 合并l o为lo,更新序列:
    lo w, lo w e r, n e w e s t, w i d e s t

重复合并:

  • 继续合并频率最高的字节对,直到达到预定的词汇表大小。例如,下一步可能合并w e为we,结果为:
    • lo w, lo we r, n e we s t, w i d e s t

生成词汇表:

  • 词汇表可能包括:l, o, w, e, r, n, s, t, lo, we

BBPE(Byte-Level Byte Pair Encoding)示例

假设我们有一个包含特殊字符的文本:

café
naïve

BBPE处理步骤:

字节级处理:
  • 将每个单词转换为字节序列(假设使用UTF-8编码):
    • café -> [99, 97, 102, 195, 169]
    • naïve -> [110, 97, 195, 175, 118, 101]
统计频率:
  • 计算所有相邻字节对的频率:
    [99, 97]: 1
    [97, 102]: 1
    [102, 195]: 1
    [195, 169]: 1
    [110, 97]: 1
    [97, 195]: 1
    [195, 175]: 1
    [175, 118]: 1
    [118, 101]: 1
合并频率最高的字节对:
  • 由于所有字节对频率相同,可以选择任意一个进行合并。例如,合并[97, 102]为[97, 102](af),更新序列:
    • c af é, na ï ve
重复合并:
  • 继续合并其他频率最高的字节对,直到达到预定的词汇表大小。
生成词汇表:
  • 词汇表可能包括:c, af, é, na, ï, ve

区别总结

BPE:在字符级别操作,适合处理标准字符集的文本。
BBPE:在字节级别操作,能够处理多语言文本和特殊字符,适合需要处理多种编码的场景。
通过这些例子,可以看到BPE和BBPE在处理文本时的不同之处,以及它们各自的适用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值