在英语数据训练的BPE编码应用于孟加拉语为何未返回未知token?
RoBERTa-base分词器处理孟加拉语无未知token的原因
- 核心原因是roberta-base使用的是*字节级BPE(Byte-Pair Encoding)*分词规则:它的基础词表覆盖了全部256个ASCII字节,任何输入字符都会先被拆解为UTF-8字节序列,再匹配BPE合并规则,天生不存在OOV(词表外)字符,因此永远不会输出
<unk>未知token。 - 你观察到的
à¦、¬、¾这类奇怪token,是字节序列被默认用Latin-1编码可视化的结果:孟加拉语বা的UTF-8编码为0xE0 0xA6 0xAC 0xE0 0xA6 0xBE,每个字节对应Latin-1编码的字符正好就是你看到的上述字符串,并不是分词器匹配到了有语义的孟加拉语子词。 - 这种无未知token的表现不代表分词器具备跨语言适配能力:陌生语言的字符会被拆解为无语义的字节级细粒度token,预训练模型在英文语料上学到的字节组合语义完全无法迁移到孟加拉语场景,后续编码无法得到有效的语义表征。
内容的提问来源于stack exchange,提问作者Soumya
相关产品推荐
相关产品推荐

