大模型中的分词器tokenizer:BPE、WordPiece、Unigram LM、SentencePiece
1. word tokenizer
word base方法简单易理解,每个word都分配一个ID,则所需的Vocabulary则根据语料大小而不同,而且这种分词方式,会将两个本身意思一致的词分成两个毫不同的ID,在英文中尤为明显,如cat, cats。
2. character tokenizer
在character base中此种现象有减缓,而且Vocabulary相对小的多,但分词后的每个char字符是毫无意义的,而且输入的长度变长不少,只有组装后才有意义,这种分词在模型的初始character embedding是无意义的。英文中尤为明显,但中文却是较为合理,中文中用此种方式较多。
3. subword tokenization,典型的如Byte Pair Encoding (BPE),Wordpiece,SentencePiece, Unigram, as used in several multilingual models。
3.1 Byte Pair Encoding (BPE) 适合gpt这种decode 语言
BPE 在迭代的过程中遵循一种贪婪的策略,每次迭代中只使用出现频率来识别最佳匹配,实现合并为subword
3.2 Wordpiece,考虑到上下文,所以更适合bert这种encoder语言
类似于BPE,使用频率出现来识别潜在的合并,但根据合并词前后分别出现的可能性概率大小,进行是否合并。WordPiece每次选择合并的两个子词,通常在语料中以相邻方式同时出现
3.3 Unigram LM
ULM是另外一种subword分隔算法,它能够输出带概率的多个子词分段。它和 BPE 以及 WordPiece 从表面上看一个大的不同是,前两者都是初始化一个小词表,然后一个个增加到限定的词汇量,而 Unigram Language Model 却是先初始一个大词表,接着通过语言模型评估不断减少词表,直到限定词汇量。

浙公网安备 33010602011771号