为什么要BRE
BPE(Byte Pair Encoding,字节对编码)是一种常用的子词分词算法,在自然语言处理中被广泛应用,主要原因包括以下几点:
一、解决未登录词(OOV, Out-of-Vocabulary)问题
传统的分词方法(如基于空格或词典的分词)在遇到训练集中未出现过的词时,往往会将其视为“未知词”,导致模型无法正确处理。而 BPE 将词拆分为更小的子词单元(subword units),使得即使是训练集中未出现过的词,也可以通过已有的子词组合来表示。例如:
- “unhappiness” 可以被拆分为
un
+happi
+ness
,即使模型没见过这个词,也能通过子词组合理解其构成。
这大大提升了模型对罕见词和新词的处理能力。
二、减少词汇表大小,提高模型效率
如果使用字符级别的分词,词汇表会变得非常大(每个字符都是一个 token),导致模型参数量剧增,训练和推理速度变慢。而如果使用完整的词级别分词,虽然词汇表较小,但会面临 OOV 问题。
BPE 在两者之间找到了平衡:
- 将词拆分为有限的子词单元,比如几百到几千个,既控制了词汇表的大小,又保留了词的结构性信息。
- 模型只需要学习这些子词的表示,就可以组合出大量词汇,从而减少参数量&#x