BPE算法详解
在NLP模型中,输入通常是一个句子,例如"I went to New York last week"
,一句话中包含很多单词(token)。传统的做法是将这些单词以空格进行分隔,例如['i', 'went', 'to', 'New', 'York', 'last', 'week']
。然而这种做法存在很多问题,例如模型无法通过old, older, oldest
之间的关系学到smart, smarter, smartest
之间的关系。如果我们能使用将一个
token 分成多个 subtokens
,上面的问题就能很好的解决。本文将详述目前比较常用的subtokens算法——BPE(Byte-Pair
Encoding)。