大模型关键部分1:tokenizer

分词方法主要有词级word level, 字节级byte level和子词级 subword level三类?

首先把句子string里的每一个字符char转换成对应的unicode,常用的编码方式有utf-8,utf-16等,这里最通用的是utf-8, 因为其他编码方式有比较多的0。

词级可以保留完整语义,但是词表过大,对罕见词学习不好,难以解决oov问题

字符级能编码的范围广,但是词表小,语义破碎,输入token数量过多

subword属于折中方案。典型的方法是bpe (byte pair encoding)。是将word转换成字节级表示后,按相邻字节组共现频率排序,将出现频率最高的字符对加入进编码。注意该步骤可以递归进行,也就是字符对可以继续合并,组成频率更高的字符对。编码直到词表数量扩充到对应的量级为止。这里的字符对不会涉及到不在同一个word里的跨词编码。所以基本不会有歧义出现。但是,会出现语料的不同导致bpe编码方式不同的问题:例如hello, 可能会拆成hell+o,或者he+llo 如果hello/he出现的频率太高的话。一般这种可以增加多种语料来源,增加编码的健壮性。

bbpe则可能出现跨词汇的ngram组合,这里就可能产生歧义。bpe的字符边界?因为统计共现频率都是在word级别的unicode表示里统计,所以不会跨词;但是bbpe还加了一个ngrams,这里就跨词了。因为一些非英语语言的特殊性,subword可能也有含义,这就造成了歧义。(类似汉字的偏旁)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值