关于tokenizer的问题

1. BPE (Byte-Pair Encoding) 是怎么实现的?

将最常出现的连续字节对合并,直到词表达到预定的大小时停止。

2. Byte-level BPE是怎么实现的?

BPE的一个问题是,如果遇到了unicode,基本字符集可能会很大。一种处理方法是我们以一个字节为一种“字符”,不管实际字符集用了几个字节来表示一个字符。这样的话,基础字符集的大小就锁定在了256。

3. WordPiece是怎么实现的?

它的原理非常接近BPE,不同之处在于它做合并时,并不是直接找最高频的组合,而是选择能够最大化提升语言模型概率的连续字节对加入词表。

4. Unigram Language Model (ULM) 是怎么实现的?

与BPE或者WordPiece不同,Unigram的算法思想是从一个巨大的词汇表出发,再逐渐删除其中的子词,直到词表大小满足预定义。初始的词汇表可以采用所有预分词器分出来的词,再加上所有高频的子串。用EM算法求解每个子词在语料上的概率。对于每个子词,计算当该子词被从词表中移除时,总的似然概率L减少的幅度,记为该子词的loss。将子词按照loss大小进行排序,丢弃一定比例loss最小的子词(比如20%),保留下来的子词生成新的词表。

5. SentencePiece 是怎么实现的?

SentencePiece是把一个句子看作一个整体,再拆成片段,而没有保留天然的词语的概念。一般地,它把空格space也当作一种特殊字符来处理,再用BPE或者Unigram算法来构造词汇表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值