BERT(从理论到实践): Bidirectional Encoder Representations from Transformers【2】

这是本系列文章中的第二弹,假设你已经读过了前文。先来简单回顾一下BERT的想法:

1)在Word2Vec【1】中,每个单词生成的Embedding是固定的。但这就带来了一个显而易见的问题:同一个单词在不同上下文中的意思是不同的。例如mouse,可以是鼠标的意思,也可以是老鼠的意思。但使用Word2Vec,就无法区分这两个不同的意思。BERT的基本想法就是单词的向量表达是根据上下文动态生成的(BERT can generate contextualized embeddings)。

2)BERT是以Transformer模型为基础设计的预训练模型(pre-trained model),预训练过程是自监督或半监督的。基于预训练模型,还要针对不同的具体任务进行fine tuning,而这个过程是有监督的。

3)BERT的预训练过程:通过Mask LM任务来考虑句子内各单词之间的关系,通过NSP任务来考虑句子与句子之间的关系。

BERT是Google的研究人员提出并训练的模型。所以,最快速上手BERT的环境毫无疑问是TensorFlow/Keras。此外,Google在训练BERT时使用了超大的计算资源,所以个人玩家或者计算资源有限的人,最好是以Google公开的BERT为基础。

具体方法是从TensorFlow Hub(见【2】)开始,在页面上选择“See Models”,在网页给出的模型列表中选择bert。进入bert的页面,从列表中选择一个模型进行下载。下图是2024年1月访问资源时,网页的样子。因为Google经常更新网站,所以不保证你会看到一模一样的界面。

我们下载的是一个10层的smaller BERT model.

你可能感兴趣的:(自然语言处理信息检索,bert,人工智能,深度学习,自然语言处理,Keras)