bert原理及代码解读
Posted MachineLP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bert原理及代码解读相关的知识,希望对你有一定的参考价值。
BERT:
(Bidirectional Encoder Representations from Transformers)
BERT的新语言表示模型,它代表Transformer的双向编码器表示。与最近的其他语言表示模型不同,BERT旨在通过联合调节所有层中的上下文来预先训练深度双向表示。因此,预训练的BERT表示可以通过一个额外的输出层进行微调,适用于广泛任务的最先进模型的构建,比如问答任务和语言推理,无需针对具体任务做大幅架构修改。
基础比较弱的,直接看bert,可能要结合这个文章一起看:从Word Embedding到Bert模型——自然语言处理预训练技术发展史。
简单一点可以这样概括:
后续方法的提出主要源于Word Embedding 存在 多义词问题,比如:bank(河岸、银行),熟悉word2vector应该很清楚为什么存在多义词问题了。
而下游 NLP 任务在使用 Word Embedding 的时候也类似图像有两种做法:(两种做法就是 18 年之前 NLP 领域里面采用预训练的典型做法)
(1)一种是 Frozen,就是 Word Embedding 那层网络参数固定不动;
(2)另外一种是 Fine-Tuning,就是 Word Embedding 这层参数使用新的训练集合训练也需要跟着训练过程更新掉。
基于上面的骚操作作用不是很大哦,故有了:ELMO、GPT等,到现在的Bert,具体细节还是看从Word Embedding到Bert模型——自然语言处理预训练技术发展史后面的部分吧,写的不错就不赘述了。
下面我们来解读一下tf代码和pytorch代码: (代码比较简单, 在考虑要不要解读一下哦)
tf代码:https://github.com/google-research/bert
pytorch代码:https://github.com/codertimo/BERT-pytorch
待更新.....
以上是关于bert原理及代码解读的主要内容,如果未能解决你的问题,请参考以下文章