1、分词:将一个句子,分解成独立的字符,并对所有字符进行编号
这里的字符,即可能是一个单词,也可能是一个字,称之为一个token;
那么整个分词的过程,称为tokenizaton;
2、什么是BPE?
BPE:Byte Pair Encoding,一种Subword(子词)模型方法,实质是一种简单的数据压缩算法。
我们知道,一门语言中,通常有几万到几十万量级的单词数。若使用这种编码方式,在语言模型预测的时候需要在这个拥有几万个单词的列表上计算一个概率分布,那样的计算量是非常恐怖的,而且过大的token列表十分影响模型的预测准确度。随着模型集成的不同国家的语言越来越多,模型的词汇列表势必会增长到一个非常可怕的数量级,到时候该如何去处理它带来的矩阵内存占用和预测准确性问题呢?并且,这种编码方式还具有别的问题,参考下面链接的第一段NLP三大Subword模型详解:BPE、WordPiece、ULM - 知乎 (zhihu.com)
别急,有一种编码方式能大大减小token list,那就是本文即将介绍的Byte Pair Encoding(BPE),也是NLP中最重要的编码方式之一,它的有效性也被GPT-2, RoBERTa, XLM, FlauBERT等这些最强大的语言模型所证实。