BERT-based Models应用模型
BertForPreTraining
BERT 预训练任务包括两个:
- Masked Language Model(MLM):在句子中随机用[MASK]替换一部分单词,然后将句子传入 BERT 中编码每一个单词的信息,最终用[MASK]的编码信息预测该位置的正确单词,这一任务旨在训练模型根据上下文理解单词的意思;
- Next Sentence Prediction(NSP):将句子对 A 和 B 输入 BERT,使用[CLS]的编码信息进行预测 B 是否 A 的下一句,这一任务旨在训练模型理解预测句子间的关系。
BertForSequenceClassification
这一模型用于句子分类(也可以是回归)任务,比如 GLUE benchmark 的各个任务。句子分类的输入为句子(对),输出为单个分类标签。
BertForMultipleChoice
这一模型用于多项选择,如 RocStories/SWAG 任务.
BertForTokenClassification
这一模型用于序列标注(词分类),如 NER 任务。
BertForQuestionAnswering
这一模型用于解决问答任务,例如 SQuAD 任务。
BERT训练和优化
Pre-Training
预训练阶段,除了众所周知的 15%、80% mask 比例,有一个值得注意的地方就是参数共享。 不止 BERT,所有 huggingface 实现的 PLM 的 word embedding 和 masked language model 的预测权重在初始化过程中都是共享的:
Fine-Tuning
优化器:AdamW Warmup:在训练初期使用较小的学习率(从 0 开始),在一定步数(比如 1000 步)内逐渐提高到正常大小(比如上面的 2e-5),避免模型过早进入局部最优而过拟合;
Reference
https://github.com/datawhalechina/Learn-NLP-with-Transformers
|