与CV不同的是,NLP的微调是建立在大量无标记的数据当中的,比如维基百科。因此NLP上的预训练语言模型大多采用的是自监督的方式完成训练,具体方式有LM(language mode,即预测下一个单词)和MLM(Masked language model)随机遮盖一个词,通过周围的单词完成对中性词的预测,其中,GPT采用的是LM,因此更适用于预测下一句的任务,而BERT则采用后者,11个NLP任务的SOTA。
原始的文章中对于BERT的微调的描述是有一些误区的。
- 原始的BERT是在大量的数据(>3B)上进行训练的,显然我们的数据集没有那么多,所以训练师的学习率(lr)不可调的太大比如e-5的量级,其次优化器最好选择完整版的Adam(原始BERT用的不是完整版的Adam,去除了对参数的偏差校正)
- 3轮的话其实可能对于参数的收敛是不够的,5轮较为适宜。 当然更多的技巧还可以看How to fine-tune Bert for text classification这篇文章详细介绍了文本分类任务领域中BERT的使用。
参考连接:11.2NLP中的微调【斯坦福21秋季:实用机器学习中文版】
https://www.bilibili.com/video/BV1bq4y1y7tg?spm_id_from=333.999.0.0
文章How to Fine-Tune BERT for Text Classification?