引子
经过了数据收集、筛选、去重,马上就可以开始训练实验了。但是在实验之前,我们还需要先获取一个语言模型的基石:分词器(Tokenizer)。Tokenizer 的作用是对一条文本数据进行切分、词表映射,得到这条文本的token序列。
用开源 Tokenizer 还是自己训练
Tokenizer可以自己训练,也可以从目前开源的模型中扒一个来用,用开源Tokenizer有几个点需要着重关注:
- 压缩率:压缩率决定了文本向量化后的长度,压缩率越高,向量后数据越短,训练和推理效率越高,但是对训练数据的数量要求也越大,主流的tokenizer对汉字的压缩率都在1.5-1.6之间,也就是1.5-1.6个汉字划分为一个token。
- token覆盖率:token覆盖率不用纠结细节,只需要关注是否有你的目标语种的token,比如llama的tokenizer中文就很少,相应地中文上压缩率就比较低,token向字节流的退化率比较高,也一定程度的反应了中文训练数据不多。
- 预留token数量:预留token也叫特殊token,一般写作reserved_token、unused_token,paded_token,都是一个意思。这些token是指不会出现在自然语料中