(2020.6.18)BERT微调

参考资料:https://huggingface.co/transformers/v1.2.0/examples.html

BERT家族的模型很多都太大了,以至于普通的单GPU训练搞不定,所以就需要一些技巧。它们本质上都是为了支持更大的batch size。

  • 梯度累积
  • 多GPU:如果有多个GPU,会自动把batch拆分到不同的GPU上
  • fp16精度
  • 分布式训练(看起来有点麻烦)
  • optimizer step的时候放在CPU上(在BERT-large fine-tune的时候用到了)

此外,还有一些细节,包括把Adam的epsilon调小、加入weight decay、设定学习率的scheduler、以及梯度裁剪也都很重要。

如果要实现以上功能,需要参照transformers例子里面实现的代码。

你可能感兴趣的:((2020.6.18)BERT微调)