关于 BERT

  1. BERT (Bidirectional Encoder Representations from Transformers)。总体而言是一个大型的双向 Transformer
    1. 模型非常庞大
    2. 多层 Transformer 拼起来
  2. 预训练模型
    1. BERT 只是一个编码器
    2. 只在未标记的数据集上进行 pre-train,采用一定的 task(训练方式)来让模型学会编码(提取句子、词之间的语义信息)
  3. 强烈推荐开源预训练框架 🤗Transformers,关于使用,也做过一点点入门介绍

Fine-tune

对 BERT 进行 fine-tune,只需要将 BERT 作为一个编码器,后面接上对应下游(down-stream)任务的模块(比如分类任务就接上 attention + 全连接层等),然后直接调用 PyTorch 或者 TF 等框架中的 train 接口、反向传播等就可以进行训练。关于 fine-tune,知乎上有一篇很好的文章,详细介绍了 fine-tune 的细节。总之就是使用 🤗Transformers 提供的 BERT 接口 + 自己定义的输出层,使用论文推荐的 fine-tune 参数进行训练就可以了。

论文中作者建议使用如下参数进行 fine-tune:

  • batch size —- 16 | 32
  • learning rate —- 5e-5 | 3e-5 | 2e-5
  • epochs —- 3 | 4

BERT 实战

TODO

References

https://easyai.tech/ai-definition/bert/
https://zhuanlan.zhihu.com/p/46652512
https://blog.csdn.net/qq_39521554/article/details/83062188