bert是怎么进行预训练和微调的?
首先是用海量的数据预训练,数据可以是没有标签,在训练的时候就一个任务:就是随机mask部分字,然后用周围的字预测mask的字。这就是预训练的的过程。
用任务微调的时候。比如接一个文本分类,先加载初始的模型参数,然后根据有标签的数据进行训练计算loss去微调这个模型。适应下游的任务。
bert、bert_wwm、lattice_bert 区别:
bert有12个tranformer encoder block大约1亿参数 100M
bert会把字随机的mask掉,然后用周围的词去预测这个字,那么就是一个类似与word2vec中分类问题,预测这个字的时候是一个交叉熵的形式,用最后的cls向量,做一个多分类,输出每个字的概率然后选择概率最大的字进行选择。
bert输入两句话,然后这个段编码是进行一个第一句话是0 第二句话是1 把两句话区分开。
然后两句话是否匹配的的一个预测。也是对折两句话做了一个二分类:匹配或者不匹配。直接用最后的cls向量做了一个二分类。
假设你输入了一个字 在加载预训练模型的时候没有这个字的token ,