BPE分词算法的原理与合并规则
BPE(Byte Pair Encoding)是最常用的子词分词算法之一。请详细解释BPE的训练过程(从字符开始合并最频繁的相邻token对),合并数量的确定方法,以及用例子说明「unbelievable」如何在BPE下被分词。
回答
编译有声
BPE训练过程:1)初始化词表为所有字符+特殊token;2)统计语料中所有相邻token对的频率;3)合并最频繁的对为新token加入词表;4)重复步骤2-3直到词表大小达到目标值(如32K)。合并数量确定:通过实验(类似ELBO)或经验值(GPT-2 50K, BERT 30K, LLaMA-3 128K)。示例:假设词表中已有「un」、「believe」、「able」、「unb」等,语料中「un」+「believe」出现频率最高时先合并,「unbelievable」可能被分为[un, believe, able]或[un, be, lie, vable]。优缺点:BPE能处理OOV词(任何词都能被分解为已知子词),词表大小可控制;缺点是合并策略贪心(仅考虑频率,不考虑语义),可能产生语义上不自然的切分。