在Bert模型的学习中,遇到了以下一些不错的资料,虽然走了很多弯路,这里总结一下比较好的学习历程吧,需要花一点时间阅读。首先是对NLP中语言模型的一个发展历程的一个介绍:
理论模型学习:
1、从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史:
https://zhuanlan.zhihu.com/p/49271699
与之先关的该作者的另外两篇文章:
(1)深度学习中的注意力模型(2017版):https://zhuanlan.zhihu.com/p/37601161
(2)放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比
较: https://zhuanlan.zhihu.com/p/54743941
读完上面三篇文章,大概对Bert是做什么的,里面涉及的关键技术是做什么的,怎么做的,会有一个大概的了解。大概就是处在对Bert的一个整体了解上。
2、github上官方的代码说明,主要是预训练部分,大概知道程序的输入输出和流程是咋样的:
google-research/bert:https://github.com/google-research/bert
3、用可视化解构BERT,我们从上亿参数中提取出了6种直观模式:http://www.raincent.com/content-10-12985-1.html
4、图解Transform:https://www.cnblogs.com/d0main/p/10164192.html
(相见恨晚的一篇文章,由于Bert的特征抽取是用的Transform,所以了解完这篇文章,很多细节问题就都清楚了)
5、图解BERT:https://ctolib.com/topics-138037.html
(这篇文章对理解BERT的网络结构也是相当的有用。个人觉得,在源码的网络结构的输出,以及图解Transform,加上图解BERT这三个结合起来看,会对BERT预训练里面的核心机制了解得非常全面,对于一个神经网络零基础的人来说,这样代码加图解的方式终于搞明白了,源码网络结构的可以用它自带的sample跑一下程序,过程中会有相应的每层的参数结构的输出)
有时间想要把BERT的整个网络结构给手画出来。。。。。。
5、为什么使用自注意力机制?https://www.jiqizhixin.com/articles/2018-09-17-5(待看)
觉得第一个作者的三篇总结性的文章可以在了解完其他细节之后反复回看。
代码学习:
1、bert代码:https://daiwk.github.io/posts/nlp-bert-code.html
最好的方法,直接看谷歌的源码,从数据生成,到预训练代码。
代码解读博客待更