BERT使用心得经验分享

使用Bert有一段时间了,在项目中确实也能带来提升,这里总结下bert的使用心得。

1,资源的使用

Bert在训练的过程确实很消耗资源。


Bert资源图

上面是Bert模型在12G显存的显卡上,每轮的样本数和句子长度。
开始还担心Bert模型部署在客户的机器上能否正常运行。后面测试发现,如果没有太高的并发,其实在预测阶段对显存的消耗并不高,大概1-2G显存即可。

2,模型速度

使用Bert模型一定要跑在GPU上,不论是训练还是预测阶段。我测试的跑在GPU上的速度是CPU的60多倍。

3,学习速率

目前使用Bert做过分类,seq2seq,序列标注,发现很多任务上,Bert的学习速率不宜调的过高,否则训练的效果很差。而且在官方代码中学习速率是5e-5。而且这里的训练方式建议使用官方提供的优化器,官方提供的优化器学习速率是动态调整的。详细代码可见GIT里面的demo3

4,Bert模型不参与训练

在使用Bert的时候,建议Bert先参与训练,然后固定住Bert的参数,在训练N轮。在我的项目中,这样的操作最后的效果比较好。
Bert不参与训练需要调整两个地方,一个是在创建模型的时候is_train=False,还有一个是Bert的参数不参与反向传播。
详细代码可见GIT里面的demo3

你可能感兴趣的:(BERT使用心得经验分享)